如何在 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' 运算符,则必须按照给定方式一一遵循以下几点:

  1. 在系统中创建一个数据库。
  2. 创建两个新表。
  3. 在两个表中插入数据
  4. 查看两个表的插入数据
  5. 使用 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

 

热门文章

优秀文章