ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL学习笔记篇八

2022-01-22 21:34:02  阅读:131  来源: 互联网

标签:name 连接 笔记 st 学习 score MySQL sc id


本节主要内容:等值连接、非等值连接、自然连接、外连接(左、右连接);

连接分为内连接、外连接、自然连接。

其中,内连接包括等值连接、非等值连接、自连接;外连接包括左外连接、右外连接;

1、等值连接:

1)两个表查询条件相等才显示;

2)与多表联查约束主外键是一样的;

3)ON后面只写主外键;

例如1:SELECT * FROM student st INNER JOIN score sc ON st.id=sc.st_id;

例如2:SELECT * FROM student st, score sc where st.id=sc.st_id;

例如3:等值连接查询成绩大于70的学生

SELECT * FROM student  st INNER JOIN score sc ON st.id=sc.st_id where sc.score>70;

2、非等值连接:

假设有员工表employer表如下:

id

name

job

shangji

hiredate

salary

reward

dep_id

1100

张一

经理

2001

2020-10-12

15000

300

00

1101

张二

客服

2002

2019-09-09

8000

01

1102

张三

客服

2003

2017-09-23

8000

02

1103

李四

业务人员

2004

2020-11-09

7800

500

03

1104

王五

经理

2005

2021-01-06

17800

04

1105

赵六

业务人员

2006

2021-03-28

7800

05

1106

赵七

客服

2007

2020-06-26

8000

06

部门表department表如下:

dep_id

name

local

00

客服部

北京

01

业务部

上海

02

运营部

广州

03

销售部

青岛

薪水等级表SG表如下:

grade

lowsalary

highsalary

1

1000

5000

2

5001

9000

3

9001

13000

4

13001

17000

5

17001

21000

查询所有员工的姓名、工资,所在部门的名称以及工资的等级

法一:SELECT e.name, e.salary, d.name  FROM employer e, department d , SG s where e.dep_id=d.dep_id and e.salary >= s.lowsalary and e.salary <= s.highsalary ;

法二:SELECT e.name, e.salary, d.name  FROM employer e join department on e.dep_id=d.dep_id join SG s on e.salary between s.lowsalary and  s.highsalary ;

3、自连接:

连接查询会产生无用笛卡尔集,我们通常使用主外键关系等式来去除它;

而自然连接无需给出主外键等式,它会自动找到这一等式;

要求:两张连接的表中列名和类型完全一致的列作为条件;会去除相同的列;

假设学生表student表如下:

s_id

name

age

1

张一

21

2

张二

25

3

张三

28

成绩表score表如下:

s_id

score

name

1

80

张一

2

76

张二

3

69

张三

语句:SELECT * FROM student natural join score;

4、外连接:

标签:name,连接,笔记,st,学习,score,MySQL,sc,id
来源: https://blog.csdn.net/weixin_42204220/article/details/122643865

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有