所谓建表就是声明表头(很多列字段)的过程。
表头 学号(列1) 姓名(列2)
行1 aa bb
行2 cc dd
声明列的时候有修饰符的概念,它的学名叫“完整性约束”,是为了保证数据库中的完整性而制定的一套规范。
create table table_name(
column_definition,
...
)engine=myisam/innodb/bdb charset=utf8/gbk/latin1...;
几个关键的修饰符:
1、主键
主键 (primary key) 中的每一笔资料都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行资料。
主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位)。
主键可以包含一或多个栏位,当主键包含多个栏位时,称为组合键 (composite key)。
主键两个特性:
唯一性:一张表只能有一个主键,是为了防止存储冗余数据。
排他性:主键不能重复,是为了防止存储错误数据。
主键声明语法:
可以在声明字段时使用primary key修饰符(只能用于主键为一个字段的情况)。
也可以在写完所有字段后使用primary(key1,key2,...)。
2、唯一主键和自增
在生产环境中更倾向于使用一个字段作为主键,因为一个字段比多个处理起来更简单方便。
通常用一个正整数的字段表示主键,它还拥有一些其他特性,比如自增、非空等。
声明语法:
id int primary key auto_increment,
这样在插入数据的时候,不用指定主键值,它会自动增加填充。
修改自增值:
alter table auto_increment=100;
3、非空
使用not null修饰,在插入数据时,如果非空列没有值,就会报错无法插入。
声明语法:
name varchar(30) not null,
在修饰主键时会默认加上not null的修饰,所以无需指定。
4、不可重复
使用unique修饰,在插入数据时,如果该列值已经其它行已存在,就会报错拒绝执行。
声明语法:
name varchar(30) unique,
在修饰主键时会默认加上unique的修饰,所以无需指定。
5、默认值
当我们在插入数据中,没有指定某一列的值,可以使用default ''来指定默认填充值。
声明语法:
name varchar(30) default '张三',
6、其它
无符号(unsigned),只对数值类型有效,比如tinyint类型范围是-128-127,用unsigned修饰后范围只能为0-255。
zerofill,用0补充长度到指定宽度显示器长度,使用了zerofill就意味着是unsigned数据,因为负数前补0没有意义。