1.设置数据库的严格模式:
## 5、设置严格模式 ```mysql # 查看数据库配置中变量名包含mode的配置参数: show variables like "%mode%"; # 修改安全模式: set session; # 局部有效,只在你当前操作的窗口有效 set global session; # 全局有效,永久有效 # 修改完之后退出当前客户端重新登录即可 set global sql_mode = 'STRICT_TRANS_TABLES';
2.数据类型
- 整型: - int: 默认范围是(-2147483648, 2147483647) -tinyint: 默认范围 -128, 12 -- bigint - 浮点型: - float create table t8(x float(255, 30)); - double create table t9(x double(255, 30)); - decimal create table t10(x decimal(65, 30)); - 字符类型 - char(16): 定长字符 存取速度快 浪费空间。 varchar(16): 不定长字符 存几个字符,就是几个字符的大小 节省空间 - 日期类型 - date: 2019-12-11 - datetime: 2019-12-11 11:11:11 - time: 11:11:11 - year: 2019 - timestamp: 时间戳 - 枚举与集合 -enum: 可以 多选一 gender enum('male', 'female', 'others') - set: 可 多选一 或 多选多 hobbies set('read', 'sing', '生蚝', 'HSNM')
2.约束条件
- not null + unique: 非空唯一 - unique 将某个字段设置为唯一的值 - primary key + auto_increment: 主键+自增 - auto_increment: - unsigned :无符号 id int unsigned
联合约束
# 联合唯一 create table user6( id int, name varchar(16), unique(id, name) ); insert into user6 values(1, 'tank'); insert into user6 values(2, 'tank'); insert into user6 values(2, 'jason'); # 若id与name联合存在则报错 insert into user6 values(1, 'tank');
联合主键
# 联合主键: 多个字段联合起来作为一个主键,本质上还是一个主键 create table user9( id int, name varchar(16), primary key(id, name) ); desc user9;