mysql数据类型、约束
一、数据类型
数字:
tinyint:无符号长度0-255 有符号长度 -128-127
int、bigint、float、double、decimal(类似)
int(5):显示长度,zerofill不足位用0补齐
字符:
char:定长数据结构,存取速度快,浪费空间
varchar:变长数据结构,存取速度慢,节省空间
length():查看字节数
char_length():查看字符数
时间类型:
year:1901/2155
DATE:YYYY-MM-DD
TIME:HH:MM:SS
DATETIME:YYYY-MM-DD HH:MM:SS
create table s1(d date,s time,dt datetime);
insert into s1 values(now(),now(),now());
枚举:多选一
enum
集合:多选多
set
create table consumer(id int,sex enum('male','female'),fev set('read','play','music');
insert into consumer values(1,'male','read,play');
二、完整性约束
1、not null 与default:不为空、设置默认值
cteate table t1(id int not null default 1,num int);
2、unique:唯一
第一种写法:create table s1(id int unique);
第二种写法:create table s1(id int,unique(id));
联合唯一:
create table s1(id int,num int,unique(id,num));
id与num只要有一个不同就可以添加
3、primary key
单列作为主键,多列作为主键
primary key 等价于 not null +unique
示例:
create table s1(id int primary key,num int);
create table s1 (id int, num int,primary key(id,num));
4、auto_increment
约束的字段自动增长,约束的字段必须同时被key约束
示例:
create table s1(id int primary key auto_increment,num int);
insert into s1(num) values(2);
# 设置步长 为会话设置,只在本次连接中有效
set session auto_increment_increment=5;
#全局设置步长 都有效。
set global auto_increment_increment=5;
# 设置起始偏移量
set global auto_increment_offset=3;