SQL 如何使用ALL关键字

SQL 如何使用ALL关键字

在这个SQL部分,我们将讨论如何在Structured Query Language中使用’ALL’关键字与表格进行操作。为了理解’ALL’关键字的示例,我们首先需要知道它是什么。

SQL中的Any是什么?

ALL是SQL中的一个操作符。该操作符将单个记录与子查询返回的所有记录进行比较。该操作符通常与SQL比较操作符一起使用,后跟内部查询。

在Structured Query Language中使用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”运算符,则必须按照以下步骤一一参照给定方式进行:

  1. 创建一个数据库。
  2. 创建两个新的表。
  3. 向两个表中插入数据。
  4. 查看两个表中插入的数据。
  5. 使用ALL运算符以不同方式查看数据。

现在,我们将使用一个SQL示例详细解释这些步骤:

第一步:创建简单的新数据库

首先,您需要使用结构化查询语言创建一个新的数据库。让我们开始吧。

以下查询在SQL服务器中创建新的University数据库:

CREATE Database University;

第二步:创建新表

现在,使用下面的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)
);  

下面的查询在 University 数据库中创建 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 
);

下面的查询在 University 数据库中创建了 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);

克拉(货币单位)

第四步:查看表的数据

下面的查询显示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 运算符和等号比较运算符:

SELECT * FROM Faculty_Info WHERE Faculty_Id = ALL (SELECT Head_Id from Department_Info);

这个查询显示Faculty_Info表中那个同时也是Department_Info表头部的Faculty的详细信息。

上述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

以下查询使用ALL运算符与小于运算符和GROUP BY子句:

SELECT * FROM Faculty_Info WHERE Faculty_Salary < ALL (SELECT AVG ( Faculty_Salary ) from Faculty_Info GROUP BY Faculty_Dept_Id );

首先,您需要在结构化查询语言中创建一个新的数据库。所以,让我们开始吧。

以下查询在SQL服务器中创建了新的 大学 数据库:

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

以下查询使用ALL运算符与大于运算符和GROUP BY子句:

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程