数据库基本操作:第二篇约束条件

本文深入解析数据库表设计中的各种约束条件,包括主键、外键、非空、唯一性、默认值及自动增长等,通过具体SQL语句展示每种约束的应用场景与效果。

1.数据表中引用约束条件

(1)单字段主键:

/* PRIMARY KEY 主键,具有唯一,不为空的属性 */
CREATE TABLE td_emp
(
	td_id INT PRIMARY KEY,
	td_name VARCHAR(50),
	td_salary FLOAT
);

运行结果为:

 

/* 查看表结构 */
DESC td_emp;

运行结果为:

 

(2)多字段主键:

/* PRIMARY KEY(t_id,t_name)多字段联合主键 */

/* 注意:一般只有ID才要设置主键 */

CREATE TABLE td_emp2
(
	t_id INT,
	t_name VARCHAR(50),
	t_salary FLOAT,
	PRIMARY KEY(t_id,t_name)
);

运行结果为:

/* 查看表结构 */
DESC td_emp2;

运行结果为:

(3)外键的使用

/* 创建一张数据附表命名为td_students */

/* 使用外键约束 */

 CREATE TABLE td_students
 (
	st_id INT PRIMARY KEY,
	st_name VARCHAR(20) NOT NULL,
	st_sex CHAR(2),
	st_deptid INT,
	CONSTRAINT fk_students_emp FOREIGN KEY(st_deptid) REFERENCES td_emp(td_id)
);

 

 

/* 查看表结构 */
DESC td_students;

运行结果为:

(4)使用非空约束

/* 使用非空约束 */

/* 设置了非空约束 NOT NULL 后,那个值得的属性就不能为空,一定要填写。 */

 CREATE TABLE td_students01
 (
	st_id INT PRIMARY KEY,
	st_name VARCHAR(20) NOT NULL,
	st_sex CHAR(2),
	st_deptid INT
);

运行结果为:

/* 查看表结构 */
DESC td_students01;

 

(5)使用唯一性约束

/* 使用唯一性约束 */

/* 设置了唯一性约束 UNIQUE ,要求该列唯一,允许为空,但只能出现一个空值。 */

 CREATE TABLE td_students02
 (
	st_id INT PRIMARY KEY,
	st_name VARCHAR(20) NOT NULL,
	st_sex CHAR(2),
	st_deptid INT UNIQUE
);

运行结果为:

/* 查看表结构 */
DESC td_students02;

运行结果为:

(6)使用默认约束

/* 使用默认约束  DEFAULT '男' 后,该值的属性会根据默认的属性所执行。*/

 CREATE TABLE td_students03
 (
	st_id INT PRIMARY KEY,
	st_name VARCHAR(20),
	st_sex CHAR(2) DEFAULT '男',
	st_deptid
);

运行结果为:

/* 查看数据表结构 */

DESC td_students03;

运行结果为:

 

(7)使用自动增加性约束

/* 使用自动增加性约束 */

/* 当 id 设置了自动增加约束 AUTO_INCREMENT 后,id的数字顺序就会自动的增加,不会出现重复效果。 */

 CREATE TABLE td_students04
 (
	st_id INT PRIMARY KEY AUTO_INCREMENT,
	st_name VARCHAR(20) NOT NULL,
	st_sex CHAR(2) DEFAULT '男',
	st_deptid INT UNIQUE
);

运行结果为:

/* 查看表结构 */
DESC td_students04;

运行结果为:

插入语句到数据表td_students04中

/* 插入语句到数据表td_students04中 */

INSERT INTO td_students04(st_name,st_deptid) VALUES('张一',1);
INSERT INTO td_students04(st_name,st_deptid) VALUES('张二',2);
INSERT INTO td_students04(st_name,st_deptid) VALUES('张三',3);
INSERT INTO td_students04(st_name,st_deptid) VALUES('张四',4);
INSERT INTO td_students04(st_name,st_deptid) VALUES('张五',5);

运行结果为:

/* 输入查看数据表内容 */

SELECT * FROM td_students04;

运行结果为:

注意:自动增加的效果起步自加不是从10开始算起的,而是从1开始算的。

注意:这里的每个约束条件属性都可以同时设置在一张数据表中,而我这里的每个约束条件属性用了各自不同的数据表,是为了更好的区分每一个约束条件的属性值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值