1.空属性
尽量保证定义表时,字段不为空,数据为空就无法参与运算,需在定义字段后加not null
2.默认值
某一列经常出现某个具体的值,可以在定义表结构是就指定默认值。
定义字段后加 default 默认值
若默认值后不加not null 则插入值可以设置成null值,当没有插入值时,就会自动填上默认值。
eg: create table tt2(
id int not null,
sex char(1) default ’男’ not null’
);
mysql的注释: --注释信息
comment为列描述:用 show creat table [table_name];
语句可调出查看。(select desc 语句下看不到)
3.zerofill(自动补0操作)
在int型定义字段后加zerofill
int(11) --> 在没有zerofill时11无意义,
eg: id int(4) zerofill -->insert into table_name values(12,12345);---> 0012 12345
4.主键
不能重复且不能为空,一张表有且只能有一个主键,一般主键所在的列是整数类型。
创建表时在字段后面添加关键字 primary key,
定义表之后追加主键: alter table add primary key(字段列表)
删除主键: alter table drop primary key;
复合主键:只要复合主键组合不同,则可以正确插入
eg: create table tt(
id int,
course char(10),
score int default 60 not null,
primary key(id,course) comment 'id和course作为复合主键'
);
5.自增长 auto_increatment
向表中插入数据时若不插入此列数据,系统会自动触发,将当前字段的最大值+1写回数据库,一个表中只能设置一个自增长。
自增长一般和主键搭配使用,作为逻辑主键。
eg:mysql> create table tt5(
-> id int primary key auto_increment,
-> name varchar(10) not null default ' '
-> );
自增长的特点:a)任何一个字段要做自增长,前提是本身是一个索引(key 一栏有值 )b)自增长必须为整数c)有且仅有一个自增长字段。
自增长值从当前值上增长,主键自增长值只要出现过,即便删除了也不会再出现(从删除的值上自增)
6.唯一键 unique key
在一张表中可以有多个字段设置唯一键,唯一键可以为空,且可以多个为空。
7.外键
foreign key (从表列) references 主表(列)
使用外键约束必须是在innodb的引擎下.
用于定义主表与从表之间的关系,外键定义在从表上,关联的主表的列必须是primary key或unique,要求外键所在的列的数据必须在主表中存在或者为空。
若关联的主表列未定则可以赋值null.
需先定义(赋值,删除)主表,再定义(赋值,删除)从表,
mysql 查询语句 help contents