SQL 中的多重连接
结构化查询语言或 SQL 是一种标准数据库语言,用于从 MySQL、Oracle 等关系数据库中创建、维护和检索数据。在本文中,我们将使用 Microsoft SQL Server。
多个连接:
这里我们将实现多连接的概念。多个连接可以被描述为一个查询,其中包含多次使用的相同或不同类型的连接,从而使它们能够组合多个表。对于本文,我们将首先创建一个数据库 geeks,然后在其中创建三个表,然后在这些表上运行我们的查询。
1. 创建数据库:
CREATE geeks;
输出 -
查询正常,1 行受影响
2. 使用这个数据库:
USE geeks;
输出 -
数据库已更改
3. 向数据库添加表:
create table students(id int, name varchar(50),branch varchar(50));
create table marks(id int, marks int);
create table attendance(id int, attendance int);
输出 -
查询正常,0 行受影响
查询正常,0 行受影响
查询正常,0 行受影响
4. 插入数据到表中:
学生表——
--students
insert into students values(1,'anurag','cse');
insert into students values(2,'harsh','ece');
insert into students values(3,'sumit','ece');
insert into students values(4,'kae','cse');
输出 -
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
5. 标记表:
--marks
insert into marks values(1,95);
insert into marks values(2,85);
insert into marks values(3,80);
insert into marks values(4,65);
输出 -
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
6.考勤表:
--attendance
insert into attendance values(1,75);
insert into attendance values(2,65);
insert into attendance values(3,80);
insert into attendance values(4,80);
输出 -
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
7.查看表内数据:
select *from students;
输出 -
学生桌 – id name branch 1 anurag cse 2 harsh ece 3 sumit ece 4 kae cse
select *from marks;
输出 -
标记表- id marks 1 95 2 85 3 80 4 65
select *from attendance;
输出 -
考勤表-id attendance 1 75 2 65 3 80 4 87
最终输出的屏幕截图 -
8. 执行多个连接:
现在我们将对我们的表执行多个连接。首先,我们将内联学生表和分数表,然后将结果表与仅出勤率大于或等于 75 的学生的出勤表联接。
句法 -
JOIN
table1.column_name=table2.column_name
JOIN
table2.column_name=table3.column_name
示例查询:
select s.id, name, marks, attendance
from students as s
inner join
marks as m
on s.id=m.id
inner join
attendance as a
on m.id=a.id
where a.attendance>=75;
输出 -id name marks attendance 1 anurag 95 75 3 sumit 80 80 4 kae 65 87
最终输出的屏幕截图 -
参考:https://www.geeksforgeeks.org/sql-query-to-find-the-highest-salary-of-each-department/