mysql显示表格内容devs_数据库之 MySQL --- 数据处理 之 表的约束与分页(七)

1、约束 :为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制

a2b29f84a2e0dc0cd0826b7267daf695.png4116360

NOT NULL 非空约束,规定某个字段不能为空

UNIQUE  唯一约束,规定某个字段在整个表中是唯一的

PRIMARY KEY  主键(非空且唯一)

FOREIGN KEY  外键

CHECK  检查约束

DEFAULT  默认值

约束分类 :列级约束 vs 表级约束

约束的填加的方式 :

1.创建表的时候

2.修改表的时候

【1】not null 非空约束,规定某个字段不能为空

CREATE TABLE emp(

emp_id INT NOT NULL, -- 列级约束 emp_name VARCHAR(20) ) DESC emp SELECT * FROM emp INSERT INTO emp(emp_id,emp_name) VALUES(1,'aaaa') INSERT INTO emp(emp_id) VALUES(2) DELETE FROM emp

4116360

【2】修改表的时候添加约束

ALTER TABLE emp

MODIFY emp_name VARCHAR(20) NOT NULL

4116360

【3】UNIQUE  唯一约束,规定某个字段在整个表中是唯一的

CREATE TABLE emp2(

emp_id INT UNIQUE,

emp_name VARCHAR(20) ) DESC emp2 SELECT * FROM emp2 INSERT INTO emp2(emp_id,emp_name) VALUES(3,'aaaa') INSERT INTO emp2(emp_id,emp_name) VALUES(4,'aaaa') CREATE TABLE emp3( emp_name VARCHAR(20), emp_password VARCHAR(20) ) DROP TABLE emp3

4116360

【4】 将用户名和密码看成是一组,组和组 之间不能相同

ALTER TABLE emp3

ADD UNIQUE (emp_name,emp_password)

4116360

【5】添加约束: uk_name_pwd索引

ALTER TABLE emp3

ADD CONSTRAINT uk_name_pwd UNIQUE (emp_name,emp_password);

4116360

【6】删除约束:删除约束

ALTER TABLE emp3

DROP INDEX uk_name_pwd;

DESC emp3

SELECT * FROM emp3 INSERT INTO emp3(emp_name,emp_password)VALUES('aaaa','12234') INSERT INTO emp3(emp_name,emp_password)VALUES('bbbb','12344')

4116360

【7】  PRIMARY KEY  主键(非空且唯一)

一个表中只能有一个主键 (可以将多个列进行组合成primary key)

CREATE TABLE emp4(

emp_id INT PRIMARY KEY,

emp_name VARCHAR(20) ) INSERT INTO emp4(emp_id,emp_name)VALUES(2,'aaa') CREATE TABLE emp5( emp_id INT, emp_name VARCHAR(20),

4116360

【8】 表级约束

CONSTRAINT rn_emp_id PRIMARY KEY(emp_id,emp_name)

)

DESC emp5

4116360

【9】FOREIGN KEY  外键 外键约束

员工表

注意 :1.deps叫做主表,emps叫做从表

2.先创建主表,再创建从表

3.外键关联的那个列必须是主键

4.插入数据,应该先插入到主表,再插入到从表

CREATE TABLE emps(

emps_id INT PRIMARY KEY,

emps_name VARCHAR(20), deps_id INT, FOREIGN KEY(deps_id) REFERENCES deps(deps_id) ) -- 部门表 CREATE TABLE deps( deps_id INT PRIMARY KEY, deps_name VARCHAR(20) ) DROP TABLE deps DESC deps DESC emps

4116360

【10】 插入数据

INSERT INTO deps VALUES(10,'hr')

INSERT INTO emps VALUES(1,'aa',10)

4116360

【11】 查看表的索引

SHOW INDEX FROM emp3

4116360

【12】 check : 检查约束

-- mysql无效,orcal有效

CREATE TABLE temp(

id INT AUTO_INCREMENT,

NAME VARCHAR(20), age INT CHECK(age>20), PRIMARY KEY(id) ); INSERT INTO temp VALUES(1,'aa',10) SELECT * FROM temp

4116360

【13】  defult : 可以设置默认值

CREATE TABLE temp2(

id INT AUTO_INCREMENT,

NAME VARCHAR(20), age INT DEFAULT 20, PRIMARY KEY(id) ); INSERT INTO temp2(id,NAME) VALUES(1,'aa') SELECT * FROM temp2

4116360

【14】   AUTO_INCREMENT : 自增长

CREATE TABLE n(

n_id INT PRIMARY KEY AUTO_INCREMENT,

n_name VARCHAR(20) ) INSERT INTO n(n_name) VALUES('aa') DELETE FROM n SELECT * FROM n

4116360

【15】 limit  分页 :

SELECT * FROM employees LIMIT 0,20 -- 0从哪一条数据开始, 20偏移量 (当前页数-1)*每页条数,每页条数 SELECT * FROM employees LIMIT ((当前页数-1)*每页条数),(每页条数)

4116360

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值