MYSQL——约束(笔记4)

约束:对表中的数据进行限制,不正确的数据无法调价到表中
举例:当表中约束不能存在“null”值,此时null值不能添加进去。

约束的种类:

一、主键约束
作用:是用来标识数据库中每一条记录,保证每条记录都有一个特定的id值。通常使用整型id设为主键
主键满足不能重复,非空的特性。
关键字:primary key
设置语法:id primary key;
通常和auto_increment一起使用:让主键自增

二、唯一约束
作用:表示某字段的值不能重复
关键字:unique
格式:字段 unique

三、非空约束
作用:表示某字段不能为null值
关键字:not null 
一般和default搭配使用,给非null字段设置一个默认值
eg:sex not null default "男";

四、外键约束
作用:一张表的字段的值,受到另一张表的字段的约束
被约束的表叫从表,另一张表叫做主表。
关键字:foreign key
语法:constraint 外键的名称 foreign key(受到约束的外键字段名) references 主表(主键名)
外键级联:
    级联操作:当修改和删除主表主键时,外键应该执行对应的操作。
    级联关系:
        (1)cascade:当更新或He删除主键时,外键也执行更新或者删除操作
        (2)setnull:当更新或者删除主键时,外键自动设置为null
        (3)no action:当从表中有匹配主表的记录时,不允许对主键进行修改或者删除
        (4)restrict:和no action一样
        

/*
约束:对表中的数据进行限制,不正确的数据无法调价到表中
举例:当表中约束不能存在“null”值,此时null值不能添加进去。

约束的种类:

一、主键约束
作用:是用来标识数据库中每一条记录,保证每条记录都有一个特定的id值。通常使用整型id设为主键
主键满足不能重复,非空的特性。
关键字:primary key
设置语法:id primary key;
通常和auto_increment一起使用:让主键自增

二、唯一约束
作用:表示某字段的值不能重复
关键字:unique
格式:字段 unique

三、非空约束
作用:表示某字段不能为null值
关键字:not null 
一般和default搭配使用,给非null字段设置一个默认值
eg:sex not null default "男";

四、外键约束
作用:一张表的字段的值,受到另一张表的字段的约束
被约束的表叫从表,另一张表叫做主表。
关键字:foreign key
语法:constraint 外键的名称 foreign key(受到约束的外键字段名) references 主表(主键名)
外键级联:
    级联操作:当修改和删除主表主键时,外键应该执行对应的操作。
    级联关系:
		(1)cascade:当更新或He删除主键时,外键也执行更新或者删除操作
		(2)setnull:当更新或者删除主键时,外键自动设置为null
		(3)no action:当从表中有匹配主表的记录时,不允许对主键进行修改或者删除
		(4)restrict:和no action一样
		
		
		
		
		
*/


 #创建一张学生表(id,name,age)将id设置为主键并且自增
 create table student(
 id int primary key auto_increment,   #表示id是主键,并且自增
 name varchar(5),
 age int

 );
 
 desc student;
 
 #往表中添加值,id是主键并且是自动递增,不需要我们手动插入值,在插入值时,可以用null代替
 insert into student (id,name,age)VALUES(NULL,"李四",20);
 
#创建一张员工表(id,name,age) 设置name不能重复,age不能为null, 默认为0
create table emp(
id int PRIMARY key auto_increment,
name varchar(5)UNIQUE,
age int not null DEFAULT 0

);
 
 desc emp;
 #此时添加重复的name时,会报错: Duplicate entry '张三' for key 'name'
 INSERT into emp(id,name,age)VALUES(null,"张三",18); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值