SELECT (DISTINCT) */column 1, column 2 FROM table_name (, table 2...) WHERE condition 1 AND/OR condition 2
/distinct: 可选参数,表示在输出结果中去除重复值
一、 上述基本语言有如下可拓展语言:
- ORDER BY:让输出结果以某种方式进行排序(一般以某列为基准)
SELECT ... FROM... WHERE... ORDER BY column_name ASC/DESC
/ASC 升序 可以不写,是默认项
/DESC 降序
-
- 简化写法:
SELECT
column 1, column 2...
FROM... WHERE... ORDER BY 1 ASC/DESC
/1表示select中制定的第一个字段,2、3、4以此类推
-
- 多列排序:
SELECT ... FROM... WHERE... ORDER BY column1 ASC/DESC,
column2 ASC/DESC
/同样可以简写为1、2、3
- COUNT: 统计表里的记录数量
SELECT COUNT((DISTINCT) */column_name) FROM... WHERE...
/count的参数是列名或者*
/distinct参数可以计数非重复项
- 访问其他用户的表
-
- 前提:获得权限——GRANT
SELECT ... FROM user.table WHERE...
/user: 可以代指其他用户、其他数据库或者其他规划
- 用字段别名来在查询结果中代替原有的字段名,提高查询结果的可读性
SELECT column_name new_name FROM ... WHERE...
/new_name是新起的别名,用空格分隔
/这种改变只在select的结果里反映,并没有改变原有的表
二、WHERE条件详述:
- 比较操作符:大于、小于、等于、不等于、大于等于、小于等于
- 逻辑操作符:用于对SQL关键字进行比较
-
- IS NULL
- BETWEEN...AND... (注意不是is between)
- IN(list): in的参数是一个list,用圆括号括起来(它比用or连接好几个要快)
- LIKE: 利用通配符查找近似值,主要有以下两种通配符
-
- %:用于替代0个、1个或多个字符
- _:用于替代一个字符or数字
- EXIST: 是否存在,它的参数是一个SQL查询语句
SELECT ... FROM ... WHERE EXIST (
SELECT ... FROM... WHERE... )
/当exist语句为true时再返回总的select结果,否则不返回
/要注意,并不是返回符合exist的参数语句的值,而是只有它为真时才返回值,具体返回什么取决于select的字段和where的其他条件
-
- ALL:将一个值与一个集合内的所有值进行比较(要与比较操作符组合使用)
-
- 只有当对于集合内每一个值,给定字段和它进行比较的结果都为true时返回该行(相当于好多个AND)
- ALL的参数一般是一个SQL查询语句
SELECT ... FROM ... WHERE column_name >/< ALL(
SELECT ... FROM ... WHERE...)
-
- ANY: 将一个值与一个集合内的所有值进行比较
-
- 只要这个集合内有一个值比较结果为true就返回该行(相当于好多个OR)
- 参数是 一个SQL查询语句
- SOME: 和ANY一样,是any的别名
- 连接操作符:AND、OR
- 求反操作符:NOT
- 算术操作符:加减乘除
三、查询结果变形——汇总函数
用途:从各种角度对查询结果进行
简单的统计分析
- COUNT函数:统计非空字段的数量
-
- 与DISTINCT连用可以去重
- 最后返回一个统计数字
SELECT COUNT() FROM ... WHERE...
- SUM函数:对指定字段的指定行的值进行求和,返回求和结果
SELECT SUM(column_name) FROM ... WHERE...
-
- 所处理的字段必须是数值型的
- 如果对象是字符型,有一些可以默认转化为数值型加总,不能的返回0
- AVG函数:求平均值
SELECT AVG(column_name) FROM ... WHERE...
- MAX函数:返回选定记录中指定字段的最大值
SELECT MAX(column_name) FROM ... WHERE...
- MIN函数:返回选定记录中指定字段的最小值,语法同上
以上函数都可以加上AS,来定义一个新的字段名称存储返回结果
SELECT MAX/SUM/MIN/AVG/COUNT(column_name) AS new_name FROM ... WHERE...