SQL Select语句
SELECT 语句是SQL语言中最常用的命令。它用于访问来自一个或多个数据库表和视图的记录。它还检索符合我们想要的条件的选定数据。
通过使用此命令,我们还可以从表的特定列访问特定记录。存储 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 语句以检索记录:
示例:
首先,我们必须创建新表,然后在其中插入一些虚拟记录。
使用以下查询在 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)
) ;
以下SQL将学生的记录插入到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 查询显示上述 Student_records 表中每一列的所有值:
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 |
带有 WHERE 子句的 SELECT 语句
WHERE 子句与 SELECT 语句一起使用,仅返回表中满足查询中指定条件的那些行。
在 SQL 中,WHERE 子句不仅与 SELECT 一起使用,而且还与其他 SQL 语句(如 UPDATE、ALTER 和 DELETE 语句)一起使用。
带有 WHERE 子句的 SELECT 语句的语法
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 |
带有 GROUP BY 子句的 SQL SELECT 语句
GROUP BY 子句与 SELECT 语句一起使用,以显示表中列的公共数据:
带有 GROUP BY 子句的 SELECT 语句的语法
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 语句示例
使用以下SQL用于创建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 |
带有 HAVING 子句的 SQL SELECT 语句
SELECT 语句中的 HAVING 子句在 GROUP BY 子句定义的那些组中创建一个选择。
带有 HAVING 子句的 SELECT 语句的语法
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 查询显示了下表:
SUM (Employee_Salary) | Employee_City |
---|---|
90000 | Delhi |
80000 | Jaipur |
带有 ORDER BY 子句的 SELECT 语句
带有 SQL SELECT 语句的 ORDER BY 子句以排序方式显示记录或行。
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 ];
带有 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 |
热门文章
优秀文章