int:
create table i1(id1 int,id2 tinyint,id3 int unsigned);
create table i2(id1 int(2),id2 int(11)); 对int类型的长度进行的约束无效 给字段添加一个unsigned表示无符号 float: create table f1(f float(5,2),d double(5,2),d2 decimal(5,2)); create table f2(f float,d double,d2 decimal); create table f3(d double,d2 decimal(65,30)); float精确到小数点后5位 double能多精确一些位数,但仍然存在不精确的状况 decimal默认是整数,可是经过设置,最多能够表示到小数点后30位
char:能表示的长度小,浪费存储空间,读写速度快(定长字符串);
char(5) 'abc' 'abc ' 'abcde' 在显示的时候会去掉全部空格显示,对用户的视觉形成欺骗 varchar: 能表示的长度大,节省存储空间,读写效率慢(变长字符串) varchar(5) 'ab'-->'ab2' 'abc'-->'abc3' 'abcde'-->'abcde5' 越是长度固定char节省空间,越是长度不固定varchar节省空间
datatime:
now()表示当前时间
year now(),2019 date now(),20191010 '2019-01-01' time now(),121212 '12:12:12' datetime now(),20191010121212,'2019-01-01 12:12:12' timestamp 只能表示到2028年 一帮不用他表示时间
建立表: create table time1(y year,d date,t time); create table time2(dt datetime,ts timestamp); create table time2(dt datetime default current_timestamp,ts timestamp); 人为设置datetime类型的默认值是当前时间 向表中添加数据: insert into time1 values(now(),now(),now());
enum:枚举,单选,且自动剔除不存在的选项
enum('male','female') set:集合,多选,自动剔除不存在的选项,自动去重 set('洗脚','洗头','抽烟','喝酒','烫头') # create table es(name char(10),sex enum('male','female'),hobby set('洗脚','洗头','抽烟','喝酒','烫头')); # insert into es values('太白','male','烫头,抽烟,洗脚,按摩'); # insert into es values('alex','人妖','烫头'); # insert into es values('宝元','male','抽烟,喝酒,喝酒,喝酒')