300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql 最值复杂查询_MySQL高级查询

mysql 最值复杂查询_MySQL高级查询

时间:2024-03-09 11:37:49

相关推荐

mysql 最值复杂查询_MySQL高级查询

我们使用SQL查询不能只使用很简单、最基础的SELECT语句查询。如果想从多个表查询比较复杂的信息,就会使用高级查询实现。常见的高级查询包括多表连接查询、内连接查询、外连接查询与组合查询等,今天我们先来学习最常用、面试也很容易被问到的连接查询。

我们今天以一个简单的学生信息表(学生ID、学生姓名、学生性别)与一个学生成绩表(学生ID、学生成绩、成绩等级)作演示:

student_info表:

student_score表:

一、内连接(INNER JOIN)

1、等值连接

概述:指使用等号"="比较两个表的连接列的值,相当于两表执行笛卡尔后,取两表连结列值相等的记录。

语法:

SELECT列

FROM表1INNERJOIN表2

ON表1.列=表2.列

示例:

SELECTA.*,B.*

FROMstudent_infoAinnerjoinstudent_scoreB

ONA.student_id=B.student_id

结果:

2、非等值连接

概述:指使用大于号">"或小于号"

语法:

SELECT列

FROM表1INNERJOIN表2

ON表1.列<>表2.列

示例:

SELECTA.*,B.*

FROMstudent_infoAinnerjoinstudent_scoreB

ONA.student_id>B.student_id

结果:

二、外联结

1、左外连接(LEFT OUTER JOIN)

概述:指将左表的所有记录与右表符合条件的记录,返回的结果除内连接的结果,还有左表不符合条件的记录,并在右表相应列中填NULL。

示例:

SELECTA.*,B.*

FROMstudent_infoAleftjoinstudent_scoreB

ONA.student_id=B.student_id

结果:

2、右外连接(RIGHT OUTER JOIN)

概述:与左外连接相反,指将右表的所有记录与左表符合条件的记录,返回的结果除内连接的结果,还有右表不符合条件的记录,并在左表相应列中填NULL。

示例:

SELECTA.*,B.*

FROMstudent_infoArightjoinstudent_scoreB

ONA.student_id=B.student_id

结果:

3、全外连接(FULL JOIN)——MySQL不支持

概述:指将左表所有记录与右表所有记录进行连接,返回的结果除内连接的结果,还有左表与右表不符合条件的记录,并在左表与右表相应列中填NULL。

三、自然连接(NATURAL JOIN)

概述:指自动将表中相同名称的列进行记录匹配。

示例:

SELECTA.*,B.*

FROMstudent_infoAnaturaljoinstudent_scoreB

结果:

四、自连接

概述:指用表的别名实现表自身的连接。

示例:

SELECTB.*

FROMstudent_scoreA,student_scoreB

WHEREA.student_id=B.student_id

ANDB.student_score>80

结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。