1、DQL的基本介绍
DQL(Data Query Language,查询数据):DQL就是用来查询表中的数据的,为用户提供查询数据的能力,这也是通常最频繁的数据库日常操作。
2、基本查询(select)
要查询数据库表的数据,我们使用如下的SQL语句:
SELECT * FROM <表名>;
# 示例:
SELECT * FROM students; # 查询students表的所有数据
查询结果也是一个二维表,它包含列名和每一行的数据。
SELECT
语句其实并不要求一定要有FROM
子句:
SELECT 100+200;
上述查询会直接计算出表达式的结果。虽然SELECT
可以用作计算,但它并不是SQL的强项。但是,不带FROM
子句的SELECT
语句有一个有用的用途,就是用来判断当前到数据库的连接是否有效。许多检测工具会执行一条SELECT 1;
来测试数据库连接。
3、条件查询(where、and、or、not、<>)
条件查询语法:
SELECT * FROM <表名> WHERE <条件表达式> # 示例: SELECT * FROM students WHERE score >= 80;
常用的条件表达式有:
3.1、AND条件
条件表达式可以用<条件1> AND <条件2>
表达满足条件1并且满足条件2,代码示例:
SELECT * FROM students WHERE score >= 80 AND gender = 'M'; # 假设gender列存储的是字符串,那就需要用单引号括起来
3.2、OR条件
也可以用<条件1> OR <条件2>来
表示满足条件1或者满足条件2,代码示例:
SELECT * FROM students WHERE score >= 80 OR gender = 'M';
3.3、NOT条件
还有NOT <条件>
,表示“不符合该条件”的记录。NOT
条件其实等价于<>
,因此,NOT
查询不是很常用。代码示例:
SELECT * FROM students WHERE NOT class_id = 2;
# 等价于:
SELECT * FROM students WHERE class_id <> 2;
3.4、小括号()
要组合三个或者更多的条件,就需要用小括号()
表示如何进行条件运算。例如,编写一个复杂的条件:分数在80以下或者90以上,并且是男生:
SELECT * FROM students WHERE (score < 80 OR score > 90) AND gender = 'M';
如果不加括号,条件运算按照 NOT > AND > OR 的优先级进行,即 NOT 优先级最高,其次是 AND,最后是 OR。加上括号可以改变优先级。