SQL OR
SQL的 OR 条件用于在SQL查询中创建一个SQL语句,当符合任何一个条件时返回记录。它可以用在 SELECT 语句、 INSERT 语句、 UPDATE 语句或 DELETE 语句中。
我们来看一下OR条件的语法:
SELECT columns FROM tables WHERE condition 1 OR condition 2;
ID | First_Name | Last_Name | Department | Location |
---|---|---|---|---|
1 | Harshad | Kuwar | Marketing | Pune |
2 | Anurag | Rajput | IT | Mumbai |
3 | Chaitali | Tarle | IT | Chennai |
4 | Pranjal | Patil | IT | Chennai |
5 | Suraj | Tripathi | Marketing | Pune |
6 | Roshni | Jadhav | Finance | Bangalore |
7 | Sandhya | Jain | Finance | Bangalore |
这是SQL “OR”条件在SQL SELECT语句中的使用方法。
示例1:
编写一个查询,获取emp表中部门为IT或位置为Chennai的员工记录。
查询:
mysql> SELECT *FROM emp WHERE Department = "IT" OR Location = "Chennai";
ID | First_Name | Last_Name | Department | Location |
---|---|---|---|---|
2 | Anurag | Rajput | IT | Mumbai |
3 | Chaitali | Tarle | IT | Chennai |
4 | Pranjal | Patil | IT | Chennai |
在emp表中,有三个部门为IT的员工。但是只有两条记录的位置是Chennai。尽管如此,所有三条记录都会被显示出来。这是因为我们在查询中指定了OR运算符,根据该运算符,只要满足任一条件,记录就会被视为结果集的一部分。
示例2:
编写一个查询,以获取emp表中部门为Marketing或位置为Noida的记录。
查询:
mysql> SELECT *FROM emp WHERE Department = "Marketing" OR Location = "Noida";
ID | First_Name | Last_Name | Department | Location |
---|---|---|---|---|
1 | Harshad | Kuwar | Marketing | Pune |
5 | Suraj | Tripathi | Marketing | Pune |
7 | Sandhya | Jain | Finance | Bangalore |
在emp表中,有两个部门是Marketing的员工,但仍然显示了三条记录。这是由于查询中使用了OR算子导致的。在上面显示的三条记录中,前两条记录满足条件1;第二条记录同时满足两个条件,而第三条记录仅满足条件1。由于OR算子的存在,即使满足任何一个条件,该记录也会被包含在结果集中。
- 使用SQL UPDATE语句的SQL “OR”示例
这是如何在SQL UPDATE语句中使用”OR”条件的。
示例1:
编写一个查询,更新emp表中部门为Marketing的员工的记录,或者姓氏为Tarle的记录。对于这些特定的员工,将位置的更新值设为Delhi。
查询:
mysql> UPDATE emp SET Location = "Delhi" WHERE Department = "Marketing" OR Last_Name = "Tarle";
我们将使用SELECT查询来验证更新后的记录。
mysql> SELECT *FROM emp;
ID | First_Name | Last_Name | Department | Location |
---|---|---|---|---|
1 | Harshad | Kuwar | Marketing | Pune |
2 | Anurag | Rajput | IT | Mumbai |
3 | Chaitali | Tarle | IT | Chennai |
4 | Pranjal | Patil | IT | Chennai |
5 | Suraj | Tripathi | Marketing | Pune |
6 | Roshni | Jadhav | Finance | Bangalore |
7 | Sandhya | Jain | Finance | Bangalore |
查询在emp表中的记录,其中员工所在部门是’市场营销’的有两个员工,而姓氏是’Tarle’的记录有一个。虽然仅有一个条件仍能满足,但由于OR操作符,该记录仍会被视为并更新到表中。
例2:
编写一个查询来更新emp表中的记录,其中员工的部门是财务部,或者名字是Sandhya。对于那个特定的员工,将部门的更新值设置为人力资源部。
查询:
mysql> UPDATE emp SET Department = "HR" WHERE Department = "Finance" OR First_Name = "Sandhya";
我们将使用SELECT查询来验证更新的记录。
mysql> SELECT *FROM emp;
ID | First_Name | Last_Name | Department | Location
—|—|—|—|—
1 | Harshad | Kuwar | Marketing | Delhi
2
安拉格 | 拉吉普特 | IT | 孟买 | 3 | 查伊塔利 | 塔尔勒 | IT | 德里
4 | 普兰杰尔 | 帕蒂尔 | IT | 温得哈尔
5 | 苏拉杰 | 特里帕蒂 | 市场营销 | 德里
6 | 罗什尼 | 贾达夫 | 人力资源 | 班加罗尔
7 | 桑迪娅 | 贾因 | 人力资源 | 诺伊达
部门为“金融”的员工有两个,在这两个记录中,有一个记录满足emp表中的两个条件。然而,由于OR运算符,这两条记录都被考虑并更新到表中。
- SQL“OR”删除示例
这是如何在SQL删除语句中使用SQL“OR”条件的示例。
示例1:
编写一个查询,从emp表中删除姓氏为Jain或位置为班加罗尔的记录。
查询:
mysql> DELETE FROM emp WHERE Last_Name = 'Jain' OR Location = 'Bangalore';
我们将使用SELECT查询来验证已删除的记录。
mysql> SELECT *FROM emp;
ID | First_Name | Last_Name | Department | Location |
---|---|---|---|---|
1 | Harshad | Kuwar | Marketing | Pune |
2 | Anurag | Rajput | IT | Mumbai |
3 | Chaitali | Tarle | IT | Chennai |
4 | Pranjal | Patil | IT | Chennai |
5 | Suraj | Tripathi | Marketing | Pune |
emp表中只有一条记录的姓氏为Jain,还有一条记录的地点是Bangalore。但是,由于存在OR运算符,即使任何条件满足,该特定记录也会被删除。
示例2:
编写一个查询,从emp表中删除员工部门为市场营销部,并且地点为Delhi的记录。
查询:
mysql> DELETE FROM emp WHERE Department = 'Marketing' OR Location = 'Delhi';
我们将使用SELECT查询来验证删除的记录。
mysql> SELECT *FROM emp;
ID | First_Name | Last_Name | Department | Location |
---|---|---|---|---|
2 | Anurag | Rajput | IT | Mumbai |
4 | Pranjal | Patil | IT | Chennai |
在emp表中只有一条记录的部门是市场营销,一条记录的地点是德里。但是,由于存在”OR”运算符,即使满足任何一个条件,那条记录也会被删除。