SQL - SELECT 查询



SQL SELECT 语句

SQL 的SELECT语句用于从数据库表中提取数据,并将这些数据以表格的形式返回。这些表称为结果集。

SQL 中可用的子句运算符可以与 SELECT 语句一起使用,以检索数据库表中过滤后的记录。

语法

SELECT 查询的基本语法如下:

SELECT column1, column2, columnN FROM table_name;

这里,column1、column2... 是您要提取其值的表的字段。如果要提取表中所有可用的列,则可以使用以下语法:

SELECT * FROM table_name;

示例

假设我们使用 CREATE TABLE 语句创建了一个名为CUSTOMERS的表,如下所示:

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

现在,使用 INSERT 语句将值插入此表,如下所示:

INSERT INTO CUSTOMERS VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

该表将创建为:

ID 姓名 年龄 地址 薪资
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

检索选定的字段/列

以下语句提取 CUSTOMERS 表中可用记录的 ID、姓名和薪资字段。

SELECT ID, NAME, SALARY FROM CUSTOMERS;

输出

以上查询将生成以下表格:

ID 姓名 薪资
1 Ramesh 2000.00
2 Khilan 1500.00
3 Kaushik 2000.00
4 Chaitali 6500.00
5 Hardik 8500.00
6 Komal 4500.00
7 Muffy 10000.00

检索所有字段/列

如果要提取 CUSTOMERS 表的所有字段,则应使用带有星号 (*)而不是列名的 SELECT 语句的查询,如下所示:

SELECT * FROM CUSTOMERS;

输出

结果表将为:

ID 姓名 年龄 地址 薪资
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

使用 SELECT 进行计算

SQL SELECT 语句还可以用于以表格形式检索各种数学计算的结果。在这种情况下,您不需要在语句中指定任何数据库表。

以下是执行此操作的语法:

SELECT mathematical_expression;

示例

以下是一个使用 SQL 语句将两个给定数字相乘的示例。

SELECT 56*65;

以上查询产生以下输出:

56*65
3640

在 SELECT 语句中为列设置别名

每当表中的列名太难阅读和理解时,SQL 提供了一种将此列名转换为另一个易于理解和相关的名称的方法。这是使用AS 关键字完成的。您可以在 SELECT 语句中使用 AS 关键字将表的列名显示为别名。

以下是执行此操作的语法:

SELECT column_name 
AS alias_name 
FROM table_name;

您还可以使用别名以相同的语法显示 SELECT 表达式;您应该使用数学语句代替column_name

示例

在下面的示例中,我们尝试使用concat()表达式将客户的姓名和年龄检索到结果表的一列中,并将该列作为 DETAILS 设置别名,以及来自 CUSTOMERS 表的客户地址。这将使用 SELECT 语句在以下查询中完成:

SELECT CONCAT(NAME,' ',AGE) 
AS DETAILS, ADDRESS 
FROM CUSTOMERS ORDER BY NAME;

以上查询产生以下输出:

DETAILS 地址
Chaitali 25 Mumbai
Hardik 27 Bhopal
Kaushik 23 Kota
Khilan 25 Delhi
Komal 22 Hyderabad
Muffy 24 Indore
Ramesh 32 Ahmedabad
广告