zoukankan      html  css  js  c++  java
  • 八、mysql语句的DDL语句

    DDL语句:数据定义语言

    一、库定义

    1、创建库

    创建一个不存在的数据库
    create database school;
    create schema sch;
    查看支持的字符集
    show charset;
    查看支持的校对规则
    show collation;
    完整创建一个不存在的数据库,建议的操作
    CREATE DATABASE test CHARSET utf8;  #创建一个test库,字符集为utf8
    create database xyz charset utf8mb4 collate utf8mb4_bin; #创建一个xyz库,字符集为utf8mb4,校对规则为uft8mb4_bin(大小写敏感,注意:校对规则必须与字符集一致)
    
    建库规范:
    1.库名不能有大写字母   
    2.建库要加字符集         
    3.库名不能有数字开头
    4. 库名要和业务相关

    建库标准语句

     
    mysql> create database db charset utf8mb4;
    mysql> show create database xuexiao; #查看创建库的语句

    2、删除(生产中禁止使用)

    mysql> drop database ywx;
    #物理删除ywx库及库中的所有表

    3、修改

    SHOW CREATE DATABASE school;
    ALTER DATABASE school  CHARSET utf8;
    注意:修改字符集,修改后的字符集一定是原字符集的严格超集(修改后的字符集一定要包含原字符集)

    4、查询库相关信息(DQL)

    show databases;#查看所有库名
    show create database ywx; #查看创建ywx库的创建语句

    二、表定义

    1、创建表格式

    create table stu(
    列1  属性(数据类型、约束、其他属性) ,
    列2  属性,
    列3  属性
    );

    2、创建表

    USE school;  #进入school数据库
    CREATE TABLE stu(    #创建列及其属性信息
    id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
    sname   VARCHAR(255) NOT NULL COMMENT '姓名',
    sage    TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
    sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' ,
    sfz     CHAR(18) NOT NULL UNIQUE  COMMENT '身份证',
    intime  TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
    ) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表';

    建表规范:

    1. 表名小写
    2. 不能是数字开头
    3. 注意字符集和存储引擎
    4. 表名和业务有关
    5. 选择合适的数据类型
    6. 每个列都要有注释
    7. 每个列设置为非空,无法保证非空,用0来填充。

    3、删除表(生产中禁用命令)

    drop table t1;
    物理删除t1表的所有信息

    4、修改

    4.1添加列

    在stu表中添加qq列

    DESC stu;
    ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT 'qq号';

    在sname后加微信列

     
    ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE  COMMENT '微信号' AFTER sname ;

    在id列前加一个新列num

    ALTER TABLE stu ADD num INT NOT NULL COMMENT '数字' FIRST;
    DESC stu;

    4.2删除列

    把刚才添加的列都删掉(危险)

    ALTER TABLE stu DROP num;
    ALTER TABLE stu DROP qq;
    ALTER TABLE stu DROP wechat;

    4.3修改列的属性

    修改sname数据类型的属性

    ALTER TABLE stu MODIFY sname VARCHAR(128)  NOT NULL ;

    将sgender 改为 sg 数据类型改为 CHAR 类型

    ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT 'n' ;
    DESC stu;
    #change可以更改列的名称,也可以更改列的属性;modify只能更改列的属性。
    I have a dream so I study hard!!!
  • 相关阅读:
    什么是95%的置信区间?
    机器学习博客
    深度自动编码器
    深度神经网络中的权重初始化方法
    自编码器和去噪自编码器的可视化
    08 scrapy框架
    redis.exceptions.DataError: Invalid input of type: 'dict'. Convert to a bytes, string, int or float first.
    Redis 教程
    selenium 滑动解锁(drag_and_drop_by_offset)
    获取登陆cookie,并且利用cookie访问登陆后的界面
  • 原文地址:https://www.cnblogs.com/yaokaka/p/13928684.html
Copyright © 2011-2022 走看看