1.内连接

一,内连接

A.特点:通过表之间共有的属性来连接,会丢失不匹配的数据,例如下面两个表中,只会保留两个表中属性institute_id的值为1的数据

img

1649534918039


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表里

  • 解决思路:这时候就可以通过它们共有的属性寝室号连接起来了。如下图:

1649523626393

  • 语句:
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;
  • 结果:1649525742717

D.内连接的效率优化:(直连接)

1649526677959


posted @ 2023-04-02 22:32  为搞钱而写代码  阅读(27)  评论(0)    收藏  举报