检索数据:
SELECT语句
检索一列
检索从A表中检索出一个名为a的列(输出数据的顺序可能是数据被添加到表中的顺序,不必纠结)
SELECT a
FROM p;
注意: 多条SQL语句必须以(;)分隔,多数DBMS不需要再单条SQL语句后加分号,不排除个例。加上分号也没关系。
SQL语句不区分大小写。一般对SQL的关键字使用大写,对列名和表名使用小写。SQL语句可以写成一行,也可以是多行。但多行更容易阅读和调试。
检索多个列
SELECT a,b,c
FROM p;
返回的一般是原始的无格式的数据。
检索所有列
(给定一个通配符[*],则返回表中所有列) 这样可以检索出未知名字的列
SELECT *
FROM p;
检索不同值
SELECT DISTINCT p_name
FROM p;
返回p表下所有p_name列不重复的所有值
限制结果
可用top来限制最多返回多少行
SELECT TOP 5 p_name
FROM p;
只返回前5行数据
DB2
SELECT p_name
FROM p
FETCH FIRST 5 ROWS ONLY;
Oracle
SELECT p_name
FROM p
WHERE ROWNUM <=5;
MySQL、MariaDB、PostgreSQL、SQLite
SELECT p_name
FROM p
LIMIT 5;
并非所有的SQL实现都一样
注释
行类注释
SELECT p_name --行内注释
FROM p;
#行内注释
SELECT p_name
FROM p;
多行注释
/*注释*/
排序
ORDER BY
取一个或多个列的名字排序
SELECT p_name
FROM p
ORDER BY p_name;
多个列排序
至少3个以上
SELECT p_name,p_id,p_age
FROM p
ORDER BY p_name,p_id;
先按p_name,再按p_id
按列位置排序
SELECT p_id,p_name,p_age
FROM p
ORDER BY 007,008;
指定排序方向
ORDER BY默认升序,加DESC变为降序
SELECT p_id,p_name,p_age
FROM p
ORDER BY p_age DESC;
若打算用多个列排序
SELECT p_id,p_name,p_age
FROM p
ORDER BY p_age DESC,p_name;