约束
约束概念,分类
约束案例
实例:
外键约束
1.概念:外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性
2.语法
(1)添加约束
----创建表时添加外键约束
create table 表名(
列名 数据类型,
.....
CONSTRAING 外键名称 FOREING KEY (外键列名) REFERENCES 主表(主表列名)
);
-----建完表后添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREING KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
alter table emp add CONSTRAINT fk_emp_dept foreing key(dep_id)REFERENCES dept(id);
(2)删除约束
ALTER TABLE 表名 DROP FOREING KEY 外键名称;
alter table emp drop foreing key fk_emp_dept;
数据库设计
表关系:1.一对一
如:用户和用户详情
一对一关系多用于表拆分,将一个实体经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能
实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE)。
2.一对多
如:部门和员工
一个部门对于多个员工,一个员工对应一个部门
实现方式:建立第三张表,中间表至少包含两个外键,分别关联两方主键
3.多对多
如:商品和订单
一个商品对应多个订单,一个订单包含多个商品
实现方式:在多的一方建立外键,指向一的一方的主键
多表查询
笛卡尔积:取A,B集合所有组合情况
如:select * from emp, dept;
多表查询简介
多表查询:从多张表查询数据
连接查询
内连接:
相当于查询A,B交集数据
注:INNER可省略;可以给表起别名,如:
select ti.name,emp,t1.gender,t2.dname from emp t1 , dept t2 where t1.dep_id=t2.did;
如:select * from emp , dept where emp.dep_id = dept.did;
外连接
1.外连接查询语法
左外连接:相当于查询A表所有数据和交集部分数据
右外连接:相当于查询B表所有数据和交集部分数据
子查询
1.子查询的概念:查询中嵌套查询,称嵌套查询为子查询
2.子查询根据查询结果不同,作用不同:
单行单列
多行单列
多行多列
事务
开启事务
start transaction;或者 begin;
提交事务
commit;
回滚事务
rollback;