基础查询
下图为表ums_admin
表的数据例子
1. SELECT基础查询
1 | -- 查询用户名和邮箱 |
1 | -- 查询表中所有数据,在生产环境中不建议这样使用 |
1 | -- 查询时定义别名 |
2. DISTINCT的使用
- DISTINCT 需要放到所有列名的前面,如果写成
SELECT username, DISTINCT password FROM ums_admin
会报错。 - DISTINCT 其实是对后面所有列名的组合进行去重,所以
SELECT DISTINCT username, icon
和SELECT DISTINCT icon
,返回的结果是不一样1
2-- 去除重复行
SELECT DISTINCT username, icon FROM ums_admin;
3. ORDER BY排序
- 排序的列名:ORDER BY 后面可以有一个或多个列名,如果是多个列名进行排序,会按照后面第一个列先进行排序,当第一列的值相同的时候,再按照第二列进行排序,以此类推。
- 排序的顺序:ORDER BY 后面可以注明排序规则,ASC 代表递增排序,DESC 代表递减排序。如果没有注明排序规则,默认情况下是按照 ASC 递增排序。我们很容易理解 ORDER BY 对数值类型字段的排序规则,但如果排序字段类型为文本数据,就需要参考数据库的设置方式了,这样才能判断 A 是在 B 之前,还是在 B 之后。比如使用 MySQL 在创建字段的时候设置为 BINARY 属性,就代表区分大小写。
- 非选择列排序:ORDER BY 可以使用非选择列进行排序,所以即使在 SELECT 后面没有这个列名,你同样可以放到 ORDER BY 后面进行排序。
- ORDER BY 的位置:ORDER BY 通常位于 SELECT 语句的最后一条子句,否则会报错。
1 | SELECT DISTINCT username, email FROM ums_admin ORDER BY username DESC ,email ASC; |
4. LIMIT约束返回结果数量
- MYSQL, 使用
LIMIT 3
- SQL Server 和 Access, 使用
TOP 3
- DB2,使用
FETCH FIRST 3 ROWS ONLY
- Oracle,使用
ROWNUM <=3
1 | SELECT DISTINCT username, email FROM ums_admin ORDER BY username DESC ,email ASC LIMIT 2; |