MySQL多表查询

目录

2. 数据库设计

3. 表的关系

4. 表关系的实现

5. 多表查询

5.1 内连接

(1)隐式内连接

(2)显式内连接

​5.2 外连接

(1)左外连接 

(2)右外连接


2. 数据库设计

数据库设计就是设计建哪些表,表里有哪些字段,表与表是什么关系;

3. 表的关系

 一对一:比如每个人都有一张身份证,每张身份证都对应着唯一确定的人;

一对多(多对一):比如一个人都有多个QQ账号,多个QQ账号对应着同一个人;

多对多:比如一位老师有多个学生,一个学生有多位老师;

4. 表关系的实现

一对一:任意一张表建立外键关联另一张表的主键,并设置外键唯一

一对多(多对一):在多的那张表建立外键,关联另一张表的主键;

多对多:建立第三张表,该表至少包含两个外键,分别关联两个表的主键;

5. 多表查询

SQL语言:select  *  fom  表1 ,表2 ;

表与表之间建立关系后,可以多表查询。多表查询分为内连接和外连接;

笛卡尔积:查询结果的列数是两张表列数的和,行数是量表行数的乘积;

5.1 内连接

SQL语句:select * from 表1,表2  where  表1.列名 = 表2.列名 ;

 内连接就是查询两表相交的信息;

如查询员工表的emp,部门表的dept,条件为两表的主外键相同;

内连接又分为显示内连接,隐式内连接;

也就是将内连接得到的结果当做一个表,在此基础上再进行查询;

不过这两没有本质区别,仅仅是SQL语句上的不同;

(1)隐式内连接

SQL语句:select  表1.列名,表2.列名 from 表1,表2 where 表1.列名1 = 表2.列名2 ;

如下为查询员工表的姓名和性别,员工表的部门名称 ;

为了区别字段来自哪一个表,使用表名.字段名来区分;

又因为某些表的名字较长,为了方便,给表起别名即可;

(2)显式内连接

SQL语句:select  表1.列名,表2.列名  from 表1(inner)  join 表2  on 表1.列名=表2.列名 ;

 
5.2 外连接

外连接分为左外连接,右外连接;

(1)左外连接 

 SQL语句:select  *  from  表1  left  join  表2  on   表1.列名 = 表2.列名  ;

(2)右外连接

  SQL语句:select  *  from  表1  right  join  表2  on   表1.列名 = 表2.列名  ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值