一,内连接
A.特点:通过表之间共有的属性来连接,会丢失不匹配的数据,例如下面两个表中,只会保留两个表中属性institute_id的值为1的数据
B.语法:
#假设A有ab属性,B有bc属性,b是它们共有的属性
SELECT a,b,c FROM A JOIN B ON A.b=B.b;
## 语法解读:
# SELECT a,b,c 选中abc属性
# FROM A JOIN B 为A表和B表连接
# ON A.b=B.b 可理解为通过A表和B表共有的属性b来连接
C.例子:
-
问题描述:
想查询姓名,学号,性别,寝室号,寝室口号,但是姓名,学号,性别在student表里,而寝室口号在Room表里
-
解决思路:
这时候就可以通过它们共有的属性寝室号连接起来了。如下图:
- 语句:
SELECT s.name,s.student_num,s.gender,s.room_num,r.room_name FROM student s JOIN room r ON s.room_num=r.room_num;
## 注:字母s和r只是student和room的别名,例:s.name等价student.name
## 不一定要给表取别名。如果不取别名,可以像下面这样直接student.属性(结果一样的)
SELECT student.name,student.student_num,student.gender,student.room_num,room.room_name FROM student JOIN room ON student.room_num=room.room_num;
- 结果:
D.内连接的效率优化:(直连接)
标签:name,room,num,student,连接,属性 From: https://www.cnblogs.com/EA7-King/p/17281631.html