SQL 基础应用

#表属性

  - 列属性

 1 约束(一般建表时添加):
 2 **primary key** :主键约束
 3 设置为主键的列,此列的值必须非空且唯一,主键在一个表中只能有一个,但是可以有多个列一起构成。
 4 **not null**      :非空约束
 5 列值不能为空,也是表设计的规范,尽可能将所有的列设置为非空。可以设置默认值为0
 6 **unique key** :唯一键
 7 列值不能重复
 8 **unsigned** :无符号
 9 针对数字列,非负数。
10 
11 其他属性:
12 **key** :索引
13 可以在某列上建立索引,来优化查询,一般是根据需要后添加
14 **default**           :默认值
15 列中,没有录入值时,会自动使用default的值填充
16 **auto_increment**:自增长
17 针对数字列,顺序的自动填充数据(默认是从1开始,将来可以设定起始点和偏移量)
18 **comment ** : 注释

  - 表的属性

1 存储引擎:
2   InnoDB(默认的)
3 字符集和排序规则:
4   utf8       
5   utf8mb4

#DDL应用

  ##库定义

 1 #创建数据库
 2 create database school;
 3 create schema sch;
 4 show charset;
 5 show collation;
 6 CREATE DATABASE test CHARSET utf8;
 7 create database zyc charset utf8mb4 collate utf8mb4_bin;
 8 
 9 建库规范:
10 1.库名不能有大写字母   
11 2.建库要加字符集         
12 3.库名不能有数字开头
13 4. 库名要和业务相关
1 #建库标准语句
2 mysql> create database db charset utf8mb4;
3 mysql> show create database testdb;
1 #删除数据库
2 mysql> drop database oldboy;
1 #修改数据库
2 SHOW CREATE DATABASE school;
3 ALTER DATABASE school  CHARSET utf8;
4 注意:修改字符集,修改后的字符集一定是原字符集的严格超集
1 #查询库相关信息
2 show databases;
3 show create database oldboy;

  ##表定义

1 #创建表
2 create table stu(
3 列1  属性(数据类型、约束、其他属性) ,
4 列2  属性,
5 列3  属性
6 )
 1 #建表范例
 2 USE school;
 3 CREATE TABLE stu(
 4 id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
 5 sname   VARCHAR(255) NOT NULL COMMENT '姓名',
 6 sage    TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
 7 sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' ,
 8 sfz     CHAR(18) NOT NULL UNIQUE  COMMENT '身份证',
 9 intime  TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
10 ) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表';
11 
12 #建表规范
13 表名小写
14 不能是数字开头
15 注意字符集和存储引擎
16 表名和业务有关
17 选择合适的数据类型
18 每个列都要有注释
19 每个列设置为非空,无法保证非空,用0来填充。
1 #删除表
2 drop table t1;
 1 #修改表
 2 ##添加一个新列
 3 DESC stu;
 4 ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT 'qq号';
 5 
 6 ##在sname后添加一个新列【AFTER】
 7 ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE  COMMENT '微信号' AFTER sname ;
 8 
 9 ##在id列前加入一个新列【FIRST】
10 ALTER TABLE stu ADD num INT NOT NULL COMMENT '数字' FIRST id;
11 DESC stu;
12 
13 ##删除列
14 ALTER TABLE stu DROP num;
15 ALTER TABLE stu DROP qq;
16 ALTER TABLE stu DROP wechat;
17 
18 ##修改列属性
19 ALTER TABLE stu MODIFY sname VARCHAR(128)  NOT NULL ;
20 
21 ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT 'n' ;
22 DESC stu;

 

 

  

posted @ 2019-09-15 21:05  Cross+  阅读(202)  评论(0编辑  收藏  举报