查询列:
SQL:SELECT name FROM heros
多列查询:
SQL:SELECT name, hp_max, mp_max, attack_max, defense_max FROM heros
所有列查询:
SQL:SELECT * FROM heros
起别名:
SQL:SELECT name AS n, hp_max AS hm, mp_max AS mm, attack_max AS am, defense_max AS dm FROM heros
查询常数:
如果我们想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数
如果常数是个字符串,使用单引号 ‘’,如果常数是个数字,就可以直接写数字
SQL:SELECT '王者荣耀' as platform, name FROM heros
去除重复行:
关键字是 DISTINCT
SQL:SELECT DISTINCT attack_range FROM heros
排序检索数据:
ORDER BY 后面可以有一个或多个列名,
ASC(默认) 代表递增排序,DESC 代表递减排
SQL:SELECT name, hp_max FROM heros ORDER BY hp_max DESC
SQL:SELECT name, hp_max FROM heros ORDER BY mp_max, hp_max DESC
约束返回结果的数量:
SQL:SELECT name, hp_max FROM heros ORDER BY hp_max DESC LIMIT 5
如果是 SQL Server 和 Access,需要使用 TOP关键词,比如:
SQL:SELECT TOP 5 name, hp_max FROM heros ORDER BY hp_max DESC
如果是 DB2,使用FETCH FIRST 5 ROWS ONLY这样的关键字:
SQL:SELECT name, hp_max FROM heros ORDER BY hp_max DESC FETCH FIRST 5 ROWS ONLY
如果是 Oracle,你需要基于 ROWNUM 来统计行数:
SQL:SELECT name, hp_max FROM heros WHERE ROWNUM <=5 ORDER BY hp_max DESC
SELECT 的执行顺序
1. 关键字的顺序是不能颠倒的:
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
2.SELECT 语句的执行顺序(在 MySQL 和 Oracle中,SELECT执行顺序基本相同):
FROM > WHERE > GROUP BY > HAVING > SELECT 的字段 > DISTINCT > ORDER BY > LIMIT