数据库中的约束,顾名思义即是对插入数据库中的数据进行限定,这么做的目的是为了保证数据的有效性和完整性。这样就大幅度地提高了数据库中数据的质量,节省了数据库的空间和调用数据的时间。
数据库常见六大约束如下:
1.主键约束
2.非空约束、
3.自增长约束
4.非负约束
5.唯一约束
6.外键约束
下面分别为大家介绍这几种约束:
一、主键约束:primary key
特点:主键修饰的字段,非空且唯一,一张表中只能有一个主键
添加主键的语法:
方式1:
CREATE TABLE student{
NAME VARCHAR(10) PRIMARY KEY,
age INT
};
方式2:
CREATE TABLE student{
NAME VARCHAR(10),
age INT,
PRIMARY KEY(NAME)
};
方式3:后期添加主键:ALTER TABLE student ADD PRIMARY KEY(NAME);
联合主键:把多个字段看成一个整体添加主键
例如:CREATE TABLE student{
NAME VARCHAR(10),
age INT,
PRIMARY KEY(NAME,age)
};
删除主键:
删除唯一:ALTER TABLE student DROP PRIMARY KEY;
删除非空:ALTER TABLE student CHANGE NAME NAME VARCHAR(20) NULL;
若有其他约束,要先删除其他约束再来删除主键约束
二、非空约束:not null,使用方法跟主键一样,用not null约束的字段不能为null值,必须给定具体的数据。
三、自增长约束:auto_increment,使用方法跟主键一样。如果是整数型字段,添加自增长约束后,还需要配合主键约束一起使用。
CREATE TABLE student(
sid INT AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20),
)
后面在建表时常给字段这种联合约束,方便查询。
四、非负约束:unsigned,使用方法跟主键一样
添加非负约束后,取值范围将发生变化,例如int范围是-128~127,添加非负约束后将变成0-255
五、唯一约束:unique,不允许重复,使用方法跟主键一样,限定不了空值,要想限定,还要添加非空约束
CREATE TABLE student(
NAME VARCHAR(20) UNIQUE NOT NULL,
age INT UNIQUE NOT NULL
)
六、外键约束:alter table 多表名称 add foreign key(外键名称) references 一表名称(主键);
其中,多表指关系中的多方,一表指关系中的一方,外键名称自定义,一般为一表名称_id,主要用于多表之间联系。添加外键约束后,主表不能删除从表中已引用的数据,从表不能添加主表中不存在的数据。
添加外键约束后,如何删除主表中的数据:
方式1:级联删除:ALTER TABLE orders ADD FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE;
另外,还有个级联更新:ALTER TABLE orders ADD FOREIGN KEY(user_id) REFERENCES users(id) ON UPDATE CASCADE;
之后,就可以删除或者更新主表中的数据了,这两步也可以同时进行,用逗号隔开即可,也可以在建表时加上
方式2:先删除多表中的数据,再删除主表中的数据
看完了数据库常见六大约束,相信大家在以后用到数据库的时候一定可以更加规范地使用这些约束。由物及人,我们在学习java的过程中也要约束好自己,学如逆水行舟,不进则退。