资源描述:
《mysql_ 多表 表关系 事务 一对多 多对多 sql》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MYSQL_2多表表关系事务一对多多对多sql练习 多表设计之外键约束 约束 约束的作用 约束是用来保证数据的完整性。 单表约束 主键约束 唯一约束 非空约束 多表约束 外键约束:用来保证数据完整性(多表之间)。演示外键约束作用[html] viewplain copy1.创建一个部门表 2.create table dept( 3. did int primary key auto_increment, 1. dname varchar(20) 2.); 3.insert into dept
2、 values (null,'市场部'); 4.insert into dept values (null,'人事部'); 5.insert into dept values (null,'教研部'); [html] viewplain copy1.创建一个员工表 2.create table employee( 3. eid int primary key auto_increment, 4. ename varchar(20), 5. salary double, 6. birthday date,
3、 7. sex varchar(10), 8. dno int 9.); 10. 11.insert into employee values (null,'张三',8000,'1988-09-01','男',3); 12. 13.insert into employee values (null,'李四',9000,'1988-09-01','男',1); 14. 15.insert into employee values (null,'王五',6000,'1988-09-01','男',2); 16. 17
4、.insert into employee values (null,'赵六',10000,'1988-09-01','男',3); 18. 19.insert into employee values (null,'孙七',10000,'1988-09-01','男',1); 删除其中的某个部门(是否可以) 查看数据[html] viewplain copy1.向员工表中插入一条记录(没有部门) 2.insert into employee values (null,'田八',10000,'1988-09-01','男',nu
5、ll); 3.删除一个人事部 4.delete from dept where did = 2; 向刚才做的这两个操作(插入一个没有部门的员工,删除一个带有员工的部门)。这种情况都是不应该发生。这个时候需要在多表之间添加外键约束。 添加外键约束 在员工表上添加外键[html] viewplain copy1.alter table employee add foreign key (dno) references dept(did); [html] viewplain copy1.设置外键为非空 2.alter table emplo
6、yee modify dno int not null; 表设计之表关系的介绍 表与表之间的关系 一对多的关系 一对多的例子: 一个部门下可以有多个员工,一个员工只能属于某一个部门。 多对多的关系 多对多的例子: 一个学生可以选择多门课程,一门课程可以被多个学生选择。 一对一的关系 一对一的例子: 一个公司可以有一个注册地址,一个注册地址只能对一个公司。 表设计之一对多关系 一对多关系介绍 一对多关系的建表原则在多的一方创建外键指向一的
7、一方的主键 多表设计之多对多 多对多的关系介绍 一个学生选择多门课程,一门课程被多个学生所选择 多对多的建表的原则需要创建中间表,中间表中至少两个字段,分别作为外键指向多对多双方的主键 多表设计之一对一关系 一对一关系的介绍一个公司可以对应一个注册地址,一个注册地址只能对应一个公司 一对一关系建表原则 唯一外键对应 假设是一对多,在多的一方创建外键指向一的一方的主键,将外键设置为unique。 主键对应 将两个表的主键建立对应关系即可。 多表查询之多表查询的概述 多表查询的分类 连接查询交叉连接:crossjoin 交叉连接:查
8、询到的是两个表的笛卡尔积。 语法: select*from 表1 crossjoin 表2; select*from 表1,表2; 内连接:inner