SQL学习之and和or运算符

目录

  • 参考源
  • SQL and & or 运算符
  • 示例数据
  • and 运算符
  • or 运算符
  • 结合 and 和 or

参考源

  • 简单教程
    • .html
  • 菜鸟教程
    • .html

SQL and & or 运算符

SQL 中的 andor 运算符用于基于一个以上的条件对记录进行过滤

  • 如果第一个条件第二个条件成立,则 and 运算符显示一条记录
  • 如果第一个条件第二个条件只要有一个成立,则 or 运算符显示一条记录

示例数据

CREATE DATABASE IF NOT EXISTS hardy_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;USE hardy_db;DROP TABLE IF EXISTS lesson;CREATE TABLE lesson (id INT ( 11 ) NOT NULL PRIMARY KEY AUTO_INCREMENT,name VARCHAR ( 32 ) DEFAULT '',views INT ( 11 ) NOT NULL DEFAULT 0,created_at TIMESTAMP 
);INSERT INTO lesson ( id, name, views, created_at )
VALUES( 1, 'Python3 基础教程', 981, '2019-03-18 13:52:03' ),( 2, 'JavaScript 基础教程', 73, '2019-03-18 16:03:32' ),( 3, 'Ruby 基础教程', 199, '2019-04-01 06:16:14' ),( 4, 'SQL 基础教程', 533, '2019-05-02 08:13:42' ),( 5, 'Linux 基础教程', 1000, '2019-06-02 08:13:42' );

and 运算符

下面的 SQL 语句从 “lesson” 表中选取 views 大于 200 且 id 大于 2 的所有课程

select * from lesson where views >= 200 and id > 2;

运行以上 SQL 语句,输出结果如下

mysql> select * from lesson where views >= 200 and id > 2;
+----+--------------+-------+---------------------+
| id | name         | views | created_at          |
+----+--------------+-------+---------------------+
|  4 | SQL 基础教程  |   533 | 2019-05-02 08:13:42 |
+----+--------------+-------+---------------------+
1 row in set (0.00 sec)

or 运算符

下面的 SQL 语句从 “lesson” 表中选取 views 大于 200 或 id 大于 2 的所有课程

select * from lesson where views >= 200 or id > 2;

运行以上 SQL 语句,输出结果如下

mysql> select * from lesson where views >= 200 or id > 2;
+----+------------------+-------+---------------------+
| id | name             | views | created_at          |
+----+------------------+-------+---------------------+
|  1 | Python3 基础教程  |   981 | 2019-03-18 13:52:03 |
|  3 | Ruby 基础教程     |   199 | 2019-04-01 06:16:14 |
|  4 | SQL 基础教程      |   533 | 2019-05-02 08:13:42 |
+----+------------------+-------+---------------------+
3 rows in set (0.00 sec)

结合 and 和 or

可以把 andor 结合起来 (使用圆括号来组成复杂的表达式)

下面的 SQL 语句从 “lesson” 表中选取 views 大于 200 且 id 等于 1 或 id 等于 3 的课程

select * from lesson where views > 200 and (id = 1 or id = 3);

运行以上 SQL ,输出结果如下:

mysql> select * from lesson where views > 200 and (id = 1 or id = 3);
+----+------------------+-------+---------------------+
| id | name             | views | created_at          |
+----+------------------+-------+---------------------+
|  1 | Python3 基础教程  |   981 | 2019-03-18 13:52:03 |
+----+------------------+-------+---------------------+
1 row in set (0.00 sec)