目录
1.数据检索
1.1 检索
检索单个列:SELECT 字段 FROM 表名;
检索多个列:SELECT 字段1,字段2,......,字段n FROM 表名;
检索所有列:SELECT * FROM 表名;
检索不同的值:SELECT DISTINCT 字段 FROM 表名;DISTINCT 关键字作用于查询中所有的列
限制结果(返回一定数量的行)
SQL SERVER/ACCESS:SELECT TOP 行数 字段 FROM 表名;
DB2:SELECT 字段 FROM 表名 FETCH FIRST 行数 ROWS ONLY;
ORACLE:SELECT 字段 FROM 表名 WHERE ROWNUM <= 行数;
MY SQL/MARIA DB/POSTGRE SQL/SQLite:
① SELECT 字段 FROM 表名 LIMIT 行数;
LIMIT 行数 指示返回不超过该行数的数据
② SELECT 字段 FROM 表名 LIMIT 行数1 OFFSET 行数2;
行数 2 指从哪开始(不包括),行数 1 指检索的行数
③ SELECT 字段 FROM 表名 LIMIT 行数2,行数1;
同上,注意行数2和行数1调换位置
1.2 排序
按单个列排序:SELECT 字段 FROM 表 ORDER BY 字段;
按多个列排序:SELECT 字段1,字段2,......,字段n FROM 表 ORDER BY 字段1,字段2,......,字段n;
仅在多行具有相同的字段1值时才对字段2进行排序,如果字段1的值都是唯一的则不会按字段2排序。对于后面的字段3、4......n 同理。
按列位置排序:SELECT 字段1,字段2,......,字段n FROM 表 ORDER BY 2,3;
ORDER BY 2 ,3 表示按SELECT清单中第2列(字段2)进行排序,再按字段3进行排序。注意:如果排序的列不在SELECT清单中不能使用按位置排序。
指定排序方向
①升序(A到Z):SELECT 字段 FROM 表 ORDER BY 字段 ASC;
②降序(Z到A):SELECT 字段 FROM 表 ORDER BY 字段 DESC;
③多个列排序:SELECT 字段1,字段2,......,字段n FROM 表 ORDER BY 字段1 DESC,字段2;
DESC关键字只应用到直接位于其前面的列名,即字段1 列降序排序,字段2按默认升序排序。如果想在多个列上降序排序,必须对每一列指定DESC关键字。
1.3 过滤
检查单个值:SELECT 字段 FROM 表 WHERE 字段 = 值;
不匹配检查:SELECT 字段 FROM 表 WHERE 字段 <> 值;
‘不等于’操作符不同的DBMS可能不同:<>或!=
范围值检查:SELECT 字段 FROM 表 WHERE 字段 BETWEEN 值1 AND 值2;
空值检查:SELECT 字段 FROM 表 WHERE 字段 IS NULL;
WHERE 子句操作符
操作符 说明
= 等于
<> 或 != 不等于
< 小于
<= 小于等于
!< 不小于
> 大于
>= 大于等于
!> 不大于
BETWEEN 指定两个值之间
IS NULL 为NULL值