葵花宝典 二十二 内外连接

来源:互联网 发布:淘宝装修模板 编辑:程序博客网 时间:2024/05/16 14:47

课程回顾
sql语句
sql的分类
DDL
创建数据库 数据表 删除和修改数据库
create drop alter
DML
操作数据 insert update delete
DCL
if
DQL
select
where 后面是不能使用聚集函数的
一般的聚集函数 是要跟group by 一起使用的
group by having 条件 后面可以使用聚集函数的

多表设计 外键约束 必须要有主键
为什么要引入外键的约束?
作用:保证数据完整性
1.可以在表结构中添加
添加外键
alter table emp add foreign key 当前表表名(dno) feferences depf(did);

数据库的设计
一对多 生活下一个部门有多个员工,一个员工对应一个部门
建表原则:在多方的表中添加一个字段,类型必须必须和主键相同,把该字段作为外键,指向一方的主键

多对多
学生可以选择多门课程,课程又可以被多名学生选择
建表原则
拆开两个一对多的关系,中间创建一个中间表,至少有两个字段,这两个字段就作为外键指向两个多对多关系表的主键

一对一(了解)
公司 和地址 一个公司 对应一个地址
一张表搞定
主键对应
唯一外键对应
这里写图片描述

多表查询
笛卡尔积

内连接 用的比较多
普通内连接
前提:需要有外键
提供关键字 inner join …..on
select * from dept inner join emp on dept.did=emp.dno;
隐式内连接
可以不使用 inner join…..on关键字
select * from dept,emp where dept.did=emp.dno;
外链接
左连接
前提:需要外键
语法: 使用关键字 left 【outer】 join ….on
select * from dept left outer join emp on dept.did=emp.dno;

右连接
语法: 使用关键字 right 【outer】 join ….on
select * from dept right outer join emp on dept.did=emp.dno;

区别:左连接,看左表,把左表的数据全部查出来
反之 右连接
这里写图片描述