SQL语句中的AND和OR是常用的运算符,它们可以用来构建复杂的查询语句。它们之间有一定的优先级,在使用时需要注意。
AND优先级高于OR,也就是说,当一个SQL语句中同时出现AND和OR时,AND会先被执行。例如:
SELECT * FROM table WHERE a=1 AND b=2 OR c=3;
上面这条SQL语句中,AND和OR都出现了,但是AND优先级更高,因此它会被先执行。也就是说,上面这条SQL语句相当于下面这条SQL语句:
SELECT * FROM table WHERE (a=1 AND b=2) OR c=3;
上面这条SQL语句中显式地使用了括号将AND和OR分开了。考虑到AND优先级更高的特性,我们在写复杂的SQL语句时应当注意使用括号将不同的运算分开。例如下面这条SQL语句中就显式地使用了括号将不同的运算分开了:
SELECT * FROM table WHERE (a=1 OR b=2) AND c=3;
AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
在本教程中,我们将使用众所周知的 Northwind 样本数据库。
下面是选自 "Customers" 表的数据:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
下面的 SQL 语句从 "Customers" 表中选取国家为 "Germany" 且城市为 "Berlin" 的所有客户:
下面的 SQL 语句从 "Customers" 表中选取城市为 "Berlin" 或者 "München" 的所有客户:
您也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。
下面的 SQL 语句从 "Customers" 表中选取国家为 "Germany" 且城市为 "Berlin" 或者 "München" 的所有客户:
SQL UNION 操作符SQL UNION 操作符合并两个或多个 SELECT 语句的结果。SQL UNION 操作符 UNION 操作符用于...
MySQL IN 操作符IN 操作符 IN 操作符允许您在 WHERE 子句中规定多个值。IN 操作符是可以使用索引的,in 操作的字段如果有索...
SQL 连接(Joins) SQL join 用于把来自两个或多个表的行结合起来。SQL JOIN SQL JOIN 子句用于把来自两个或多个表的行结合起来...
SQL AUTO INCREMENT 字段Auto-increment 会在新记录插入表中时生成一个唯一的数字。AUTO INCREMENT 字段 我们通常希望在每次插入...
SQL SUM() FunctionSUM() 函数 SUM() 函数返回数值列的总数。 SQL SUM() 语法SELECT SUM(column_name) FROM table_name;演示...
SQL Server DATEPART() 函数 SQL Server Date 函数定义和用法 DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小...
SQL SELECT 语句SELECT 语句用于从数据库中选取数据。SQL SELECT 语句 SELECT 语句用于从数据库中选取数据。 结果被存储在一...
SQL CREATE DATABASE 语句SQL CREATE DATABASE 语句 CREATE DATABASE 语句用于创建数据库。 SQL CREATE DATABASE 语法CREATE DAT...
SQL 别名(Aliases) 通过使用 SQL,可以为表名称或列名称指定别名(Alias)。SQL 别名(Aliases) 通过使用 SQL,可以为表名称...
SQL INNER JOIN 关键字SQL INNER JOIN 关键字 INNER JOIN 关键字在表中存在至少一个匹配时返回行。 SQL INNER JOIN 语法SELEC...