SQL语言之DQL(查询)

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。加上括号可以改变优先级。

原文地址:https://www.cnblogs.com/wenxuehai/p/13382580.html