1.模式
创建模式
CREATE SCHEMA ch3;
显示模式
SHOW SCHEMAS;
删除模式,没有级联删除或者限制删除
DROP SCHEMA ch3;
2.基本表
创建
CREATE TABLE Student(
Sno CHAR(9) PRIMARY KEY, /*主键,不可重复,不能为空=UNIQUE+NOT NULL*/
Sname CHAR(20) UNIQUE, /* 不可重复
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
建表约束
名 | 含义 | 名 | 含义 |
PRIMARY KEY | 主键,不能重复,不能为空 | PRIMARY KEY(KEY1, KEY2) | 联合主键,要求同主键 |
AUTO_INCREMENT | 自增约束 | UNIQUE | 唯一性约束 |
NOT NULL | 非空约束 | DEFAULT | 默认约束,初始值 |
FOREIGN KEY(key1) REFERENCES 父表(key) | 外键约束,子表里列的信息必须是对应父表的子集 | ON UPDATE CASCADE ON DELETE CASCADE | 外键级联约束(我自己编的,不知道有没有,放在外键约束后边) |
数字类型
类型名 | 取值范围(有符号或无符号) | 占用存储(字节) |
TINYINT | -128~127或0~ -1 | 1 |
SMALLINT | -32768~32767或0~ -1 | 2 |
MEDIUMINT | ~ -1或0~ -1 | 3 |
INT | ~ -1或0~ -1 | 4 |
BIGINT | ~ -1或0~ -1 | 8 |
FLOAT | | 4 |
DOUBLE | | 8 |
DECIMAL(M) | | M+2(VER>3.23) |
日期类型
类型名 | 含义 | 类型名 | 含义 |
DATE | 日期,‘YYYY-MM-DD’ | TIME | 时间,‘HH:MM:SS’ |
DATETIME | 日期加时间,‘YY-MM-DD HH:MM:SS’ | TIMESTAMP | 时间戳,以秒为单位 |
字符串类型
类型名 | 含义 | 类型名 | 含义 |
CHAR | 定长字符串 | VARCHAR | 变长字符串 |
TINYBLOB | BLOB( ) | TINYTEXT | TEXT( ) |
BLOB | BLOB( ) | TEXT | TEXT( ) |
MEDIUMBLOB | BLOB( ) | MEDIUMTEXT | TEXT( ) |
LONGBLOB | BLOB( ) | LONGTEXT | TEXT( ) |
ENUM('VALUE1', 'VALUE2', ....) | 枚举:列只能复制为某个枚举成员或NULL | SET('VALUE1', 'VALUE2', ...) | 集合:列可以赋值为多个集合成员或NULL |
BLOB是一个能保存可变数量的数据的二进制大对象。
显示模式下所有的表名
SHOW TABLES;
显示表信息,包含不同列的不同信息,类型等
DESC Student;
删除表
DROP TABLE Student;
级联删除:当被删除的表为某一张表的父表时,直接删除无法删除,所以需要先删除子表才能删除父表
类似的还有级联更新
修改基本表
新增一列
ALTER TABLE Student ADD [COLUMN] 名 类型 约束条件;
修改某一列
ALTER TABLE Student MODIFY COLUMN 名 新的类型 新的约束条件;
ALTER TABLE Student DROP KEY 名;删除唯一性要求
ALTER TABLE Student ADD UNIQUE(名);添加唯一性要求
删除某一列
ALTER TABLE Student DROP COLUMN 名;