SQL JOIN 语句用于根据两个或多个表之间的公共列(字段)组合来自两个或多个表的数据行。
这是用 Microsoft SQL 显示数据库中的表
use DWDiagnostics SELECT table_name =name FROM sys.tables;
这是最基本的 SQL 连接。它允许我们将两个表合并在一起。JOIN 和 INNER JOIN 将返回相同的结果。
INNER 是 JOIN 的默认连接类型,因此当您编写 JOIN 时,解析器会写入 INNER JOIN
语法
SELECT column name(s) FROM table 1 INNER JOIN Table2 ON table1.column_name = table2.column_name
上面是两张订单表,客户假设您想找到订购笔记本电脑的客户的电话号码
只要满足条件,SQL INNER JOIN 语句就会返回多个表中的所有行。
SELECT* FROM employee_demographics AS dem INNER JOIN employee_salary AS sal ON dem.employee_id =sal.employee_id ;
On 用于显示我们要合并在一起的列,请记住在要合并的列之前命名两个表。
SQL left JOIN 语句返回左表中的所有行以及右表中的匹配行。
LEFT JOIN 返回左表中的所有行以及右表中的匹配行。如果右表中没有匹配项,则结果将包含右表中列的 NULL 值。
结果集:包含左表中的所有行,无论右表是否有匹配。
不匹配行:如果右表中没有匹配项,则右表中的列将包含 NULL 值。
SELECT Employees.name, Salaries.salary FROM Employees LEFT JOIN Salaries ON Employees.id = Salaries.emp_id;
也称为右外连接 - 一种连接类型,它返回右表中的所有行以及左表中的匹配行。如果未找到匹配项,则为左表返回 NULL 值。
SELECT column_names FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
它结合了 LEFT JOIN 和 RIGHT JOIN 的结果。它返回两个表中的所有行。如果两个表之间存在匹配,则连接结果将具有双方。缺失数据将具有 NULL 值。
选择列名
来自表1
全连接表2
ON table1.column = table2.column;
返回两个表的笛卡尔积。它将第一个表中的每一行与第二个表中的每一行组合起来。
SELECT columns FROM table1 CROSS JOIN table2;
子查询 - 是包含在另一个查询中的选择查询。内部选择查询通常用于确定外部选择查询的结果。
Select Dept from employees where salary =(Select Max(Salary) from Employees);
so Select Max(salary )fromEmployees - 是首先执行的内部查询,然后接下来执行外部查询,即从员工中选择部门。
1.内连接和自连接有什么区别?
自连接是内连接的一种。
内连接用于返回两个表中都存在的记录。而在自联接中,表会与其自身联接。
2.全连接和交叉连接有什么区别?
左外连接和右外连接组合形成完整外连接。当不满足 ON 条件时,它将插入 NULL 值并返回两个表中与查询的 WHERE 子句匹配的所有行。而交叉联接通过在两个表之间创建笛卡尔积来返回所有行的所有可能组合。
3.描述等值连接。
在这种连接中,表可以根据模型在指定列中有效地进行组合。一些等连接功能是:
4.你能描述一下SQL嵌套连接吗?
嵌套联接本质上使用一个具有联接表的表作为外部输入表,另一个作为内部输入表。嵌套循环连接涉及从外表中检索一行,在内表中搜索它,并重复此过程,直到确实找到了外表中的所有生产行。
5.什么是自然连接?
自然联接根据两个表的共享属性建立隐式联接子句。两个表中共享属性的名称相同。与等值连接相比,自然连接不需要比较运算符。
6.字段和表有什么作用?
在关系数据库中,表是按行和列排列的一组数据元素。表格可用于以有用的方式表示关系。表是最基本的数据存储类型。
7.SET@id =6;用于定义 SQL 变量以将值放入变量中。
8.一个表可以有多少个主键? - 1
9.NVarchar用来存储JSON对象?
10.COUNT(*) 函数计算 SQL 查询中的行数。
以上是加入。的详细内容。更多信息请关注PHP中文网其他相关文章!