SQL SELECT 语句

SQL SELECT 语句

SELECT 语句是在结构化查询语言中最常用的命令。它用于从一个或多个数据库表和视图中访问记录。它还检索我们想要的符合条件的选定数据。

通过使用这个命令,我们还可以访问表中特定列的特定记录。SELECT 语句返回的记录存储在称为结果集表的表中。

SQL SELECT 语句的语法

SELECT Column_Name_1, Column_Name_2, ....., Column_Name_N FROM Table_Name;

在这个SELECT语法中, Column_Name_1, Column_Name_2, ….., Column_Name_N 是我们想要读取其数据的表中那些列的名称。

如果你想要访问表中所有行的所有字段,可以使用以下带有*星号的SQL SELECT语法:

SELECT * FROM table_name;

SQL中SELECT语句的示例

这里,我们选取了以下两个不同的SQL示例,它们将帮助您执行SELECT语句以检索记录:

示例1:

首先,我们必须创建新表,然后将一些虚拟记录插入其中。

使用以下查询在SQL中创建 Student_Records 表:

CREATE TABLE Student_Records 
(
Student_Id Int PRIMARY KEY,  
First_Name VARCHAR (20),  
Address VARCHAR (20),  
Age Int NOT NULL,
Percentage Int NOT NULL,
Grade VARCHAR (10) 
) ;

下面的查询将智能学生的记录插入到 Student_Records 表中:

INSERT INTO Student VALUES (201, Akash, Delhi, 18, 89, A2), 
(202, Bhavesh, Kanpur, 19, 93, A1),
(203, Yash, Delhi, 20, 89, A2),  
(204, Bhavna, Delhi, 19, 78, B1),
(05, Yatin, Lucknow, 20, 75, B1),
(206, Ishika, Ghaziabad, 19, 51, C1),
(207, Vivek, Goa, 20, 62, B2);

以下 SQL 查询显示了上面的学生记录表的每列的所有值:

SELECT * FROM Student_Records;

以上查询的输出结果是:

Student_ID First_Name Address Age Percentage Grade
201 Akash Delhi 18 89 A2
202 Bhavesh Kanpur 19 93 A1
203 Yash Delhi 20 89 A2
204 Bhavna Delhi 19 78 B1
205 Yatin Lucknow 20 75 B1
206 Ishika Ghaziabad 19 91 C1
207 Vivek Goa 20 80 B2

示例2:

下面的查询显示了上面 Student_Record 表中特定列的值:

SELECT Student_Id, Age, Percentage, Grade FROM Employee;
Student_ID Age Percentage Grade
201 18 89 A2
202 19 93 A1
203 20 89 A2
204 19 78 B1
205 20 75 B1
206 19 91 C1
207 20 80 B2

选择具有WHERE子句的SELECT语句

WHERE子句与SELECT语句一起使用,仅返回符合查询中指定条件的表中的行。

在SQL中,WHERE子句不仅与SELECT一起使用,还与其他SQL语句(如UPDATE,ALTER和DELETE语句)一起使用。

SELECT语句的WHERE子句语法

SELECT * FROM Name_of_Table WHERE [condition];

在语法中,我们使用SQL逻辑或比较运算符在WHERE子句中指定条件。

带有WHERE子句的SELECT语句示例

首先,我们必须创建新表,然后将一些虚拟记录插入其中。

使用以下查询在SQL中创建 Employee_Details 表:

CREATE TABLE Employee_Details
(
Employee_ID INT AUTO_INCREMENT PRIMARY KEY,
Emp_Name VARCHAR (50),
Emp_City VARCHAR (20),
Emp_Salary INT NOT NULL, 
Emp_Panelty INT NOT NULL
) ;

以下INSERT查询将员工记录插入到Employee_Details表中:

INSERT INTO Employee_Details (Employee_ID, Emp_Name, Emp_City, Emp_Salary, Emp_Panelty) VALUES (101, Anuj, Ghaziabad, 25000, 500),
(102, Tushar, Lucknow, 29000, 1000), 
(103, Vivek, Kolkata, 35000, 500),
(104, Shivam, Goa, 22000, 500);

以下的SELECT查询显示了 Employee_Details 表的数据:

SELECT * FROM Employee_Details;
Employee_Id Emp_Name Emp_City Emp_Salary Emp_Panelty
101 Anuj Ghaziabad 25000 500
102 Tushar Lucknow 29000 1000
103 Vivek Kolkata 35000 500
104 Shivam Goa 22000 500

以下查询显示了上表中Emp_Panelty为500的员工的记录:

SELECT * FROM Employee_Details WHERE Emp_Panelty = 500;

这个SELECT查询结果显示如下表:

Employee_Id Emp_Name Emp_City Emp_Salary Emp_Panelty
101 Anuj Ghaziabad 25000 500
103 Vivek Kolkata 35000 500
104 Shivam Goa 22000 500

SQL SELECT语句与GROUP BY子句

GROUP BY子句与SELECT语句一起使用,以显示表中列的共同数据:

SELECT语句与GROUP BY子句的语法

SELECT column_Name_1, column_Name_2, ....., column_Name_N aggregate_function_name(column_Name2) FROM table_name GROUP BY column_Name1;

GROUP BY子句的SELECT语句示例

使用以下查询创建 Cars_Details 表:

CREATE TABLE Cars_Details
(
Car_Number INT PRIMARY KEY,
Car_Name VARCHAR (50),
Car_Price INT NOT NULL,
Car_AmountINT NOT NULL
) ;

以下INSERT查询将汽车记录插入 Cars_Details 表中:

INSERT INTO Cars_Details (Car_Number, Car_Name, Car_Amount, Car_Price) 
VALUES (2578, Creta, 3, 1500000),
(9258, Audi, 2, 3000000), 
(8233, Venue, 6, 900000),
(6214, Nexon, 7, 1000000);

以下的SELECT查询显示了输出中的值:

SELECT * FROM Cars_Details;
Car_Number Car_Name Car_Amount Car_Price
2578 Creta 3 1000000
9258 Audi 2 900000
8233 Venue 6 900000
6214 Nexon 7 1000000

以下使用GROUP BY的SELECT查询列出了相同价格的汽车数量:

SELECT COUNT (Car_Name), Car_Price FROM Cars_Details GROUP BY Car_Price;

上面的GROUP BY查询的输出如下:

输出:

Count (Car_Name) Car_Price
2 1000000
2 900000

SQL SELECT Statement with HAVING clause

SELECT语句中的HAVING子句根据GROUP BY子句定义的分组来创建选择。

SELECT语句中HAVING子句的语法

SELECT column_Name_1, column_Name_2, ....., column_Name_N aggregate_function_name(column_Name_2) FROM table_name GROUP BY column_Name1 HAVING ;

选择使用HAVING子句的SELECT语句示例

让我们通过以下CREATE命令在SQL中创建 Employee_Having 表:

CREATE TABLE Employee_Having
(
Employee_Id INT PRIMARY KEY,
Employee_Name VARCHAR (50),
Employee_Salary INT NOT NULL,
Employee_City VARCHAR (50)
) ;

下面的INSERT查询将员工记录插入到Employee_Having表中:

INSERT INTO Employee_Having (Employee_Id, Employee_Name, Employee_Salary, Employee_City) 
VALUES (201, Jone, 20000, Goa),
(202, Basant, 40000, Delhi), 
(203, Rashet, 80000,Jaipur),
(204, Aunj, 20000, Goa),
(205, Sumit, 50000, Delhi);

下面的SELECT查询显示了Employee_Having表中的值:

SELECT * FROM Employee_Having;
Employee_Id Employee_Name Employee_Salary Employee_City
201 Jone 20000 Goa
202 Basant 40000 Delhi
203 Rashet 80000 Jaipur
204 Anuj 20000 Goa
205 Sumit 50000 Delhi

以下查询显示了上面的Employee_Having表中工资超过5000的员工的总工资:

SELECT SUM (Employee_Salary), Employee_City FROM Employee_Having GROUP BY Employee_City HAVING SUM(Employee_Salary)>5000;

这个带有SELECT语句的HAVING查询显示以下表:

Output:

SUM (Employee_Salary) Employee_City
90000 Delhi
80000 Jaipur

使用ORDER BY子句的SELECT语句

使用ORDER BY子句的SQL SELECT语句以排序方式显示记录或行。

ORDER BY子句按升序和降序排列值。一些数据库系统默认按升序排列列的值。

带ORDER BY子句的SELECT语句的语法

SELECT Column_Name_1, Column_Name_2, ....., column_Name_N FROM table_name WHERE [Condition] ORDER BY[column_Name_1, column_Name_2, ....., column_Name_N asc | desc ];

SQL中带有ORDER BY子句的SELECT语句示例

CREATE TABLE Employee_Order
(
Id INT NOT NULL,
FirstName VARCHAR (50),
Salary INT,
City VARCHAR (50)
) ;

以下INSERT查询将员工记录插入Employee_Having表中:

INSERT INTO Employee_Order (Id, FirstName, Salary, City) 
VALUES (201, Jone, 20000, Goa),
(202, Basant, 15000, Delhi), 
(203, Rashet, 80000,Jaipur),
(204, Aunj, 90000, Goa),
(205, Sumit, 50000, Delhi);

下面的SELECT查询在输出中显示表的值:

SELECT * FROM Employee_Order;
Id FirstName Salary City
201 Jone 20000 Goa
202 Basant 15000 Delhi
203 Rashet 80000 Jaipur
204 Anuj 90000 Goa
205 Sumit 50000 Delhi

以下查询对上面的Employee_Order表按工资降序排序:

SELECT * FROM Employee_Order ORDER BY Emp_Salary DESC;

这个SQL查询将产生如下表的结果:

输出:

Emp_Id Emp_Name Emp_Salary Emp_City
204 Anuj 90000 Goa
203 Rashet 80000 Jaipur
205 Sumit 50000 Delhi
201 Jone 20000 Goa
202 Basant 15000 Delhi

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程