如何在 SQL 中使用 ALL
一、SQL ALL 语法
在本 SQL 部分中,我们将讨论如何在SQL语言中对表使用“ALL”关键字。要了解“ALL”关键字的示例,我们首先必须知道它是什么。
ALL 是 SQL 中的运算符。此运算符将单个记录与子查询返回的列表中的每条记录进行比较。此运算符始终与 SQL 比较运算符一起使用,后跟内部查询。
在SQL语言中使用 ALL 运算符的语法:
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name Comparison_Operator ALL (SELECT Column_Name FROM Table_Name WHERE [condition]);
在 ALL 语法中,ALL 运算符后面是 SQL 比较运算符,这有助于将列值与子查询进行比较。
我们可以在 SQL 语句中将以下比较运算符与 ALL 运算符一起使用:
1. 等号运算符(=)
当指定列的值等于返回列表中的任何值时,此比较运算符与 ALL 运算符的计算结果为 TRUE。
语法:
Column_Name = ALL (subquery);
2.不等于运算符(!=)
当指定列的值不等于返回列表的任何值时,此比较运算符与 ALL 运算符的计算结果为 TRUE。
语法:
Column_Name != ALL (subquery);
3.大于运算符(>)
当指定列的值大于返回列表的最大值时,此比较运算符与 ALL 运算符的计算结果为 TRUE。
语法:
Column_Name > ALL (subquery);
4.小于运算符(<)
当指定列的值小于返回列表的最小值时,此比较运算符与 ALL 运算符的计算结果为 TRUE。
语法:
Column_Name < ALL (subquery);
5. 大于等于运算符 (>=)
当指定列的值大于或等于返回列表的最大值时,此比较运算符与 ALL 运算符的计算结果为 TRUE。
语法:
Column_Name >= ALL (subquery);
6.小于等于运算符(<=)
当指定列的值小于或等于返回列表的最小值时,此比较运算符与 ALL 运算符的计算结果为 TRUE。
语法:
Column_Name <= ALL (subquery);
二、SQL ALL 使用步骤
如果要在 SQL 的表中执行 'ALL' 运算符,则必须按照给定方式一一遵循以下几点:
- 在系统中创建一个数据库。
- 创建两个新表。
- 在两个表中插入数据
- 查看两个表的插入数据
- 使用 ALL 运算符以不同方式查看数据。
现在,我们将通过一个 SQL 示例详细解释这些步骤:
第 1 步:创建简单的新数据库
首先,您必须使用结构化查询语言创建一个新数据库。那么,让我们开始吧。
以下查询在 SQL Server 中创建新的大学数据库:
CREATE Database University;
第 2 步:创建新表
现在,使用下面的 SQL 语法,它有助于在数据库中创建新表:
CREATE TABLE table_name
(
column_Name_1 data type (character_size of the column_1),
column_Name_2 data type (character_size of the column_2),
column_Name_3 data type (character_size of the column_3),
...
column_Name_N data type (character_size of the column_N)
);
以下SQL在大学数据库中创建了Faculty_Info表:
CREATE TABLE Faculty_Info
(
Faculty_ID INT NOT NULL PRIMARY KEY,
Faculty_First_Name VARCHAR (100),
Faculty_Last_Name VARCHAR (100),
Faculty_Dept_Id INT NOT NULL,
Faculty_Address Varchar (80),
Faculty_City Varchar (80),
Faculty_Salary INT
);
以下SQL语句在大学数据库中创建Department_Info表:
CREATE TABLE Department_Info
(
Dept_Id INT NOT NULL,
Dept_Name Varchar(100),
Head_Id INT
);
第 3 步:插入值
以下 INSERT 语句将 Faculty 的记录插入到 Faculty_Info 表中:
INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_Name Faculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1001, Shivam, Gupta, 4001, 22 street, Kochi, 20000);
INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_Name Faculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1002, Bella, Devgan, 4002, 120 street, Kochi, 38000 );
INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_Name Faculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Gupta, 4001, 221 street, Mumbai, 45000);
INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_Name Faculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1005, Ramika, Singhania, 4001, 501 street, Jaipur, 42000);
INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_Name Faculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1006, Avinash, Gupta, 4002, 12 street, Delhi, 28000);
INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_Name Faculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary)VALUES (1007, Yadu, Besas, 4003, 202 street, Chandigarh, 35000);
以下 INSERT 语句在 Department_Info 表中插入部门的记录:
INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4001, Teaching, 1005);
INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4002, Account, 1009);
INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4003,
Sports, 1007);
第 4 步:查看表的数据
以下查询显示了 Faculty_Info 表的数据。
SELECT * FROM Faculty_Info;
输出结果为:
Faculty_Id | Faculty_First_Name | Faculty_Last_Name | Faculty_Dept_Id | Faculty_Address | Faculty_City | Faculty_Salary |
---|---|---|---|---|---|---|
1001 | Shivam | Gupta | 4001 | 22 Street | Kochi | 20000 |
1002 | Bella | Devgan | 4002 | 120 Street | Kochi | 38000 |
1004 | Saurabh | Devgan | 4001 | 221 Street | Mumbai | 45000 |
1005 | Ramika | Singhania | 4001 | 501 Street | Jaipur | 42000 |
1006 | Avinash | Gupta | 4002 | 12 Street | Delhi | 28000 |
1007 | Yadu | Besas | 4003 | 202 Street | Chandigarh | 35000 |
以下查询显示了 Faculty_Info 表的数据。
SELECT * FROM Department_Info;
输出结果为:
Dept_Id | Dept_Name | Head_Id |
---|---|---|
4001 | Teaching | 1005 |
4002 | Account | 1009 |
4003 | Sports | 1007 |
第 5 步:使用 ALL 运算符查看表的数据
以下查询将 ALL 运算符与 Equal 比较运算符一起使用:
SELECT * FROM Faculty_Info WHERE Faculty_Id = ALL (SELECT Head_Id from Department_Info);
此查询显示来自 Faculty_Info 表的该教员的详细信息,该教员也是 Department_Info 表的负责人。
上面带有 Equal 运算符的 SELECT 查询的输出如下表所示:
Faculty_Id | Faculty_First_Name | Faculty_Last_Name | Faculty_Dept_Id | Faculty_Address | Faculty_City | Faculty_Salary |
---|---|---|---|---|---|---|
1005 | Ramika | Singhania | 4001 | 501 Street | Jaipur | 42000 |
1007 | Yadu | Besas | 4003 | 202 Street | Chandigarh | 35000 |
以下查询使用带有小于运算符和 GROUP BY 子句的 ALL 运算符:
SELECT * FROM Faculty_Info WHERE Faculty_Salary < ALL (SELECT AVG ( Faculty_Salary ) from Faculty_Info GROUP BY Faculty_Dept_Id );
首先,您必须使用SQL语句创建一个新数据库。那么,让我们开始吧。
以下查询在 SQL Server 中创建新的大学数据库:
CREATE Database University;
此查询显示所有工资低于每个部门平均工资的学院的详细信息。
上述带有小于运算符的 SELECT 查询的输出如下表所示:
Faculty_Id | Faculty_First_Name | Faculty_Last_Name | Faculty_Dept_Id | Faculty_Address | Faculty_City | Faculty_Salary |
---|---|---|---|---|---|---|
1001 | Shivam | Gupta | 4001 | 22 Street | Kochi | 20000 |
1006 | Avinash | Gupta | 4002 | 12 Street | Delhi | 28000 |
1007 | Yadu | Besas | 4003 | 202 Street | Chandigarh | 35000 |
以下查询使用具有大于运算符和 GROUP BY 子句的 ALL 运算符:
SELECT * FROM Faculty_Info WHERE Faculty_Salary > ALL (SELECT AVG ( Faculty_Salary ) from Faculty_Info GROUP BY Faculty_Dept_Id );
该查询显示工资高于各部门平均工资的所有院系的详细信息。
上述带有大于运算符的 SELECT 查询的输出如下表所示:
Faculty_Id | Faculty_First_Name | Faculty_Last_Name | Faculty_Dept_Id | Faculty_Address | Faculty_City | Faculty_Salary |
---|---|---|---|---|---|---|
1001 | Shivam | Gupta | 4001 | 22 Street | Kochi | 20000 |
1002 | Bella | Devgan | 4002 | 120 Street | Kochi | 38000 |
1004 | Saurabh | Devgan | 4001 | 221 Street | Mumbai | 45000 |
1005 | Ramika | Singhania | 4001 | 501 Street | Jaipur | 42000 |
1006 | Avinash | Gupta | 4002 | 12 Street | Delhi | 28000 |
1007 | Yadu | Besas | 4003 | 202 Street | Chandigarh | 35000 |
热门文章
优秀文章