一、数据库约束
约束类型:
NOT NULL:指示某列不能存储NULL值(必填项)
UNIQUE:保证某列的每行必须有唯一的值(不能与其它记录重复,如果重复,则报错!)
DEFAULT: 规定没有给列赋值时的默认值
PRIMARY KEY : NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。(一条记录的唯一身份标识)
FOREIGN KEY : 保证一个表中的数据匹配另一个表中的值的参照完整性。(两张表之间的关联关系)
CHECK :保证列中的值符合指定的条件。对于MySQL数据,对CHECK子句进行分析,但是忽略CHECK子句。(MySQL 5中,写check不会报错,但是不会生效)
例子:学生表结构
--指定id为自增主键,name为空时,默认值为null
create table if not exists student(
id int primary key auto_increment,
sn int unique,
name varchar(20) default 'unknow',
qq_mail varchar(20),
);
对于整数类型的主键,常搭配自增长auto_increment来使用。插入数据对应字段不给值时,使用最大值+1。
☆foreign key:外键约束
外键用于关联其他表的主键或唯一键,基本语法:
foreign key (当前表指定的列) references 需关联表名(列);
--班级表
CREATE TABLE classes (
id INT PRIMARY KEY auto_increment,
name VARCHAR(20),
`desc` VARCHAR(100)
);
--一个学生对应一个班级,一个班级对应多个学生,
--id为主键,class_id为外键,关联班级表
--重设学生表结构
create table if not exists student(
id int primary key auto_increment,
sn int unique,
name <