1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
1 unsigned ---> 无符号(正负号)
2 zerofill ---> 填充
3 not null ---> 非空 create table t1( id int, name varchar(32) not null ); 4 default ---> 默认值 create table t2( id int, name char(32), gender enum('male','female') default 'male' ); 5 unique ---> 唯一
create table t3( id int, name varchar(32) unique );
create table t4( id int, host varchar(32), port int, unique(host,port) ); 6 primary key ---> 主键 """ 1 单从限制角度上来看 主键相当于是非空且唯一 id int primary key == id int not null unique create table t5( id int primary key ------>书写规范 ); 2 innodb存储引擎规定了再创建表的时候必须有且只有一个主键 2.1 为什么之前创建表的时候没有主键也可以呢? 当表中没有任何的约束条件字段,为了能够顺利的创建出表,innodb存储引擎会采用内部隐藏的字段作为 主键 隐藏主键意味着我们无法使用到,正常主键其实可以帮助我们加快数据的查询速度,但因为被隐藏了,所以 其实在速度上并没有变化 ---> 要自己设定主键 2.2 没有主键但是有非空且唯一的字段,那么会自动将该字段升级为主键 create table t6( id int, age int not null unique, <----- 会自动将age升级为主键 pwd int not null unique ); 结论: 我们在创建表的时候一般都会创建一个id字段(序号\编号) 并且我们会将该字段设置为主键 id int primery key ps:(id的名称可以不固定,uid、cid、pid...) """ 7 auto_increment ---> 自增
专门用来给key键使用(就理解成是专门给主键用的) create table t7( id int primary key auto_increment, name varchar(32) );
create table t8( id int, nid int, name varchar(32), primary key(id,nid)... ); ''' 以后的主键字段固定写法:id int primary key atuo_increment '''
|