SQL 比较运算符
对于数据库表中的两列进行值比较的SQL运算符被称为比较运算符。
在SQL中,比较运算符总是与SELECT、UPDATE和DELETE语句的WHERE子句一起使用。
SQL中的比较运算符分为以下六个类别:
- SQL等于运算符 (
=
) - SQL不等于运算符 (
!=
) - SQL大于等于运算符 (
>=
) - SQL小于运算符 (
<
) - SQL大于运算符 (
>
) - SQL小于等于运算符 (
<=
)
让我们逐个详细讨论每个比较运算符及其示例。
SQL等于运算符 (=
)
此类型的比较运算符仅选择与指定值匹配的表中的数据。
数据库用户在结构化查询语言中广泛使用此运算符。
如果数据库表中的列的值与查询中指定的值相同,则此运算符将返回TRUE行。
以下语法通过使用等于运算符从表中访问数据:
SELECT * FROM Table_Name WHERE Column_Name = Value;
将使用等号运算符更新表中数据的语法如下:
UPDATE Table_Name SET Column_Name = Value WHERE Column_Name = Value;
使用“等于”运算符删除表中数据的语法如下:
DELETE FROM Table_Name WHERE Field_Name = Value;
SQL等于运算符示例
以下CREATE查询创建了一个包含五个字段的Employee表:
CREATE TABLE Employee
(
Employee_ID INT,
Emp_Name VARCHAR (50),
Emp_City VARCHAR (20),
Emp_Salary INT NOT NULL,
Emp_Bonus INT NOT NULL
) ;
以下SELECT查询显示了 Employee 表的数据:
SELECT * FROM Employee;
Employee_Id | Emp_Name | Emp_City | Emp_Salary | Emp_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
102 | Tushar | Lucknow | 29000 | 3000 |
103 | Vivek | Kolkata | 35000 | 2500 |
104 | Shivam | Goa | 22000 | 3000 |
下面的查询显示了Employee表中薪水为35000的员工的记录:
SELECT * FROM Employee WHERE Emp_Salary = 35000;
输出:
Employee_Id | Emp_Name | Emp_City | Emp_Salary | Emp_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
103 | Vivek | Kolkata | 35000 | 2500 |
以下查询更新Emp_Bonus为3000的员工的Emp_Salary:
UPDATE Employee SET Emp_Salary = 35000 WHERE Emp_Bonus = 3000;
要检查上述更新查询的结果,请编写以下语句:
SELECT * FROM Employee;
输出:
Employee_Id | Emp_Name | Emp_City | Emp_Salary | Emp_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
102 | Tushar | Lucknow | 35000 | 3000 |
103 | Vivek | Kolkata | 35000 | 2500 |
104 | Shivam | Goa | 35000 | 3000 |
以下查询删除了那些 Emp_City 值为 ‘Goa’ 的员工记录:
DELETE FROM Employee WHERE Emp_City = 'Goa';
SQL不等于运算符(!=
)
这种类型的比较运算符仅选择与指定值不匹配的表中的数据。
如果列的值与查询中指定的值不同,该运算符将返回数据库表中的TRUE行。
使用不等于运算符从表中访问数据的语法如下:
SELECT * FROM Table_Name WHERE Column_Name != Value;
更新表中数据使用不等号运算符的语法如下:
UPDATE Table_Name SET Column_Name = Value WHERE Field_Name != Value;
通过使用不等于运算符从表中删除数据的语法如下:
DELETE FROM Table_Name WHERE Field_Name != Value;
SQL不等于运算符的示例
以下的CREATE查询创建了具有四个字段的Cars表:
CREATE TABLE Cars
(
Car_Number INT PRIMARY KEY,
Car_Name VARCHAR (50),
Car_Price INT NOT NULL,
Car_AmountINT NOT NULL
) ;
以下INSERT查询将记录插入Cars表中:
INSERT INTO Cars (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查询显示了 Car 表的数据:
SELECT * FROM Cars;
Car_Number | Car_Name | Car_Amount | Car_Price |
---|---|---|---|
2578 | Creta | 3 | 900000 |
9258 | Audi | 2 | 1100000 |
8233 | Venue | 6 | 900000 |
6214 | Nexon | 7 | 1000000 |
下面的查询显示了Cars表中Car_Price不等于900000的车辆记录:
SELECT * FROM Cars WHERE Car_Price != 900000;
输出:
Car_Number | Car_Name | Car_Amount | Car_Price |
---|---|---|---|
9258 | Audi | 2 | 1100000 |
6214 | Nexon | 7 | 1000000 |
以下查询更新那些Car_Number不等于9258或者Car_Amount不等于6的汽车的Car_Name:
UPDATE Cars SET Car_Name = 'Mercedes' WHERE Car_Number != 9258 OR Car_Amount != 6;
要检查上述UPDATE查询的结果,请编写以下语句:
SELECT * FROM Cars;
输出:
Car_Number | Car_Name | Car_Amount | Car_Price |
---|---|---|---|
2578 | Mercedes | 3 | 900000 |
9258 | Audi | 2 | 1100000 |
8233 | Venue | 6 | 900000 |
6214 | Mercedes | 7 | 1000000 |
以下查询删除了Car_Name不等于Audi的汽车记录。
DELETE FROM Cars WHERE Car_Name != 'Audi';
SQL大于操作符(>
)
这种比较操作符仅选择、修改和删除表中大于查询中指定的值的数据。
使用大于操作符访问表中数据的以下语法:
SELECT * FROM Table_Name WHERE Column_Name > Value;
更新表中数据使用大于运算符的语法如下:
UPDATE Table_Name SET Column_Name = Value WHERE Column_Name > Value;
使用大于运算符从表中删除数据的语法如下:
DELETE FROM Table_Name WHERE Field_Name > Value;
SQL大于运算符示例
以下CREATE语句创建了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 查询显示了 Cars_Details 表的数据:
SELECT * FROM Cars_Details;
Car_Number | Car_Name | Car_Amount | Car_Price |
---|---|---|---|
2578 | Creta | 3 | 900000 |
9258 | Audi | 2 | 1100000 |
8233 | Venue | 6 | 900000 |
6214 | Nexon | 7 | 1000000 |
以下查询显示了那些Car_Number大于6000的汽车的记录:
SELECT * FROM Cars_Details WHERE Car_Number > 6000;
输出:
Car_Number | Car_Name | Car_Amount | Car_Price |
---|---|---|---|
9258 | Audi | 2 | 1100000 |
8233 | Venue | 6 | 900000 |
6214 | Nexon | 7 | 100000 |
SQL 大于等于运算符 (>=
)
此类型的比较运算符仅从表中检索、修改和删除大于或等于给定值的数据。
使用大于等于运算符从表中访问数据的语法如下所示:
SELECT Column_Name1, Column_Name2, ….., Column_NameN FROM Table_Name WHERE Column_Name >= Value;
使用大于等于运算符更新表中数据的语法如下所示:
UPDATE Table_Name SET Column_Name = Value WHERE Column_Name >= Value;
使用大于等于运算符从表中删除数据的语法如下所示:
DELETE FROM Table_Name WHERE Column_Name >= Value;
SQL大于等于运算符的示例
以下CREATE语句创建了包含五个字段的Student_Details表:
CREATE TABLE Student_Details
(
Student_ID INT PRIMARY KEY,
Student_Name VARCHAR (50),
Student_MathsINT NOT NULL,
Student_English INT NOT NULL,
Student_Total_Marks INT NOT NULL
) ;
以下INSERT查询将学生的记录插入Student_Details表中:
INSERT INTO Student_Details (Student_ID, Student_Name, Student_Maths, Student_English, Student_Total_Marks) VALUES (201, Anuj, 30, 60, 90),
(202, Tushar, 25, 100, 125),
(203, Vivek, 30, 90, 120),
(204, Shivam, 40, 80, 120);
以下SELECT查询显示了 Student_Details 表的数据:
SELECT * FROM Student_Details;
Student_Id | Student_Name | Student_Maths | Student_English | Student_Total_Marks |
---|---|---|---|---|
201 | Anuj | 30 | 60 | 90 |
202 | Tushar | 25 | 100 | 125 |
203 | Vivek | 30 | 90 | 120 |
204 | Shivam | 40 | 80 | 120 |
下面的查询显示了Student_Details表中总分大于等于120的学生的记录。
SELECT * FROM Student_Details WHERE Student_Total_Marks>= 120;
输出:
Student_Id | Student_Name | Student_Maths | Student_English | Student_Total_Marks |
---|---|---|---|---|
202 | Tushar | 25 | 100 | 125 |
203 | Vivek | 30 | 90 | 120 |
204 | Shivam | 40 | 80 | 120 |
SQL小于运算符(<
)
SQL中的这种比较运算符仅选择表中小于给定值的数据。
以下语法通过使用小于运算符从表中访问数据:
SELECT * FROM Table_Name WHERE Column_Name < Value;
使用小于运算符更新表中数据的语法如下:
UPDATE Table_Name SET Column_Name = Value WHERE Column_Name < Value;
使用“小于”运算符从表中删除数据的语法如下:
DELETE FROM Table_Name WHERE Field_Name < Value;
SQL Less Than操作符示例
以下CREATE语句创建了具有四个字段的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查询显示了 Cars_Details 表的数据:
SELECT * FROM Cars_Details;
Car_Number | Car_Name | Car_Amount | Car_Price |
---|---|---|---|
2578 | Creta | 3 | 900000 |
9258 | Audi | 2 | 1100000 |
8233 | Venue | 6 | 900000 |
6214 | Nexon | 7 | 1000000 |
以下查询显示了Car_Amount小于6的汽车记录:
SELECT * FROM Cars_Details WHERE Car_Amount < 6;
输出:
Car_Number | Car_Name | Car_Amount | Car_Price |
---|---|---|---|
2578 | Creta | 3 | 900000 |
9258 | Audi | 2 | 1100000 |
SQL小于等于运算符(<=
)
这种比较运算符仅选择表中小于或等于给定值的数据。
使用小于等于运算符访问表中数据的语法如下:
SELECT Column_Name1, Column_Name2, ….., Column_NameN FROM Table_Name WHERE Column_Name <= Value;
使用小于等于操作符更新表中数据的语法如下:
UPDATE Table_Name SET Column_Name = Value WHERE Column_Name <= Value;
在使用小于等于操作符从表中删除数据的语法如下:
DELETE FROM Table_Name WHERE Column_Name <= Value;
SQL小于等于运算符的示例
以下CREATE语句创建了具有五个字段的Student_Details表:
CREATE TABLE Student_Details
(
Student_Id INT NOT NULL,
Student_Name VARCHAR (50),
Student_MathsINT NOT NULL,
Student_English INT NOT NULL,
Student_Total_Marks INT NOT NULL
) ;
以下是将记录插入Student_Details表的INSERT查询:
INSERT INTO Student_Details (Student_ID, Student_Name, Student_Maths, Student_English, Student_Total_Marks) VALUES (201, Anuj, 30, 60, 90),
(202, Tushar, 25, 100, 125),
(203, Vivek, 30, 90, 120),
(204, Shivam, 40, 80, 120);
下面的SELECT查询显示了 Student_Details 表的数据:
SELECT * FROM Student_Details;
Student_Id | Student_Name | Student_Maths | Student_English | Student_Total_Marks |
---|---|---|---|---|
201 | Anuj | 30 | 60 | 90 |
202 | Tushar | 25 | 100 | 125 |
203 | Vivek | 30 | 90 | 120 |
204 | Shivam | 40 | 80 | 120 |
以下查询显示了Student_Details表中学生ID小于等于202的记录。
SELECT Student_Id, Student_Maths, Student_English, Student_Total_Marks FROM Student_Details WHERE Student_Id <= 202;
输出:
Student_Id | Student_Maths | Student_English | Student_Total_Marks |
---|---|---|---|
201 | 30 | 60 | 90 |
202 | 25 | 100 | 125 |