SQL 查询

2019-09-29  本文已影响0人  wpf_register

原文链接1
原文链接2
原文链接3
原文链接4

查询单列
SELECT 列名 FROM 表名;

//起别名时AS 可以省略
SELECT 列名 [AS] 列的别名 FROM 表名;
查询多个列
SELECT 列名1, 列名2, ... 列名n FROM 表名;
查询所有列
尽量避免使用*号,会影响性能
SELECT * FROM 表名;
去除相同的查询结果
SELECT DISTINCT 列名 FROM 表名;
SELECT DISTINCT 列名1, 列名2, ... 列名n  FROM 表名;
department major
计算机学院 计算机科学与工程
计算机学院 计算机科学与工程
计算机学院 软件工程
计算机学院 软件工程
航天学院 飞行器设计
航天学院 电子信息
SELECT DISTINCT department,major FROM  student
department major
计算机学院 计算机科学与工程
计算机学院 软件工程
航天学院 飞行器设计
航天学院 电子信息
限制查询结果条数
LIMIT 开始行, 限制条数;
LIMIT 限制条数;   //默认从第0行开始
对查询结果排序
ORDER BY 列名 ASC|DESC
ORDER BY 列1 ASC|DESC, 列2 ASC|DESC ...

说明:
ASC和DESC指的是排序方向。
ASC是由小到大进行排序,也叫做升序,
DESC是由大到小进行排序,也叫做降序,
中间的|表示这两种方式只能选一个

默认ASC 升序列列,所以ASC可省略。

搜索条件
操作符 示例 说明
= a=b 等于
<> 或 != a<>b 不等于
< a<b 小于
> a>b 大于
<= a<=b 不大于
>= a>=b 不小于
BETWEEN a BETWEEN b and C c <= a <= b
NOT BETWEEN a NOT BETWEEN b and C
IN a IN (b1,b2...)
NOT IN a NOT IN(b1,b2...)
IS NULL a IS NULL 值为NULL
IS NOT NULL a IS NOT NULL
OR 或条件
AND 与条件 优先级高于OR
LIKE 匹配
NOT LIKE 不匹配

关于通配符

子查询
操作符 示例 说明
EXISTS EXISTS(select...) 子查询有结果时为真
NOT EXISTS NOT EXISTS(select...) 子查询没有结果时为真
 SELECT * FROM student_score 
 WHERE EXISTS
 (SELECT * FROM student_info WHERE number = 20180108);

如果子查询没有结果直接返回false,
外层查询也就不再查,直接返回 Empty set,

查询科目成绩大于平均值

//错误  聚合函数不能放在where内
 SELECT * FROM studentScore 
 WHERE subject = '母猪护理' AND score > AVG(score);

//正确
 SELECT * FROM studentScore 
 WHERE subject = '母猪护理' 
 AND score > 
(SELECT AVG(score)  FROM studentScore WHERE subject = '母猪护理');

组合查询

SELECT m1, n1 FROM t1 
WHERE m1 < 2
OR m1 > 10 
OR m1 = 5;

或组合查询
SELECT m1, n1 FROM t1  WHERE m1 < 2
UNION
SELECT m1, n1 FROM t1  WHERE m1 > 10
UNION
SELECT m1, n1 FROM t1  WHERE m1 = 5
SELECT m1, n1 FROM t1  WHERE m1 < 2
UNION
SELECT m2, n2 FROM t2  WHERE m2> 10
ORDER BY m1 DESC
上一篇下一篇

猜你喜欢

热点阅读