首先我们先来了解下什么是SQL约束:
是SQL在创建表数据字段时候的一种限制,用于限制表中的数据,为了保证表中数据的准确和可靠性。
以下分为六大约束:
—not null:非空约束,用于保证该字段的值不能为空
假如创建字段学生姓名和学号不能为空
create table students(
students_name varchar(20) not null,
students_id int not null)
—default:默认约束,如果该字段插入值为空时,此时能将null改成所设置的默认值
假如要创建学生年龄字段,如果没填写的默认为18岁
create table students(
age int default 18)
此时如果插入age数据为null时候,会默认修改成默认值18
—primary key:主键,用于保证该字段的值具有唯一性,并非为空
一般来说像创建id时候,既不能为空值,也不能和其他值重复
create table students(
students_id primary key)
—unique:唯一,用于保证该字段唯一性,但是可以为空值
unique和主键类似,都是具有唯一性,但是主键一个表中只能创建一次,而且不能为空;但唯一在表中可以创建多次,而且可以为null,但因为具有唯一性,所以也只能有一个null
—check:检查约束(mysql中不支持)
一般不使用,mysql中不支持
—foreign key:外键,用于限制两个表的关系,用于保证该字段的值必须来自主表的关联列
这里需要有一个从表和一个主表,从表中一个字段是受主表中的关联列限制
主表:
create table major(
id int primary key,
majorname varchar(20))
从表:
create table stuinfo(
majorid int,
stuname varchar(20),
foreign key(majorid) references major(id))
这里stuinfo中的majorid字段是受到主表major中的id列限制