动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

数据库常见六大约束详解

07-03 17:33 506浏览
举报 T字号
  • 大字
  • 中字
  • 小字

数据库中的约束,顾名思义即是对插入数据库中的数据进行限定,这么做的目的是为了保证数据的有效性和完整性。这样就大幅度地提高了数据库中数据的质量,节省了数据库的空间和调用数据的时间。

数据库常见约束如下

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的过程中也要约束好自己,学如逆水行舟,不进则退。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵1286
程序员代码小兵1286

4篇文章贡献19580字

作者相关文章更多>

推荐相关文章更多>

MySQL开发规范

达芬奇09-04 11:38

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消