从 Products 表中检索一个名为 prod_name 的列;
SELECT prod_name
FROM Products;
prod_name 的所有行,结果没有过滤没有排序。从 Products 表中检索名为 prod_id, prod_name, prod_price 列;
SELECT prod_id, prod_name, prod_price
FROM Products;
获取 Products 表中所有列;
SELECT *
FROM Products;
SELECT * 将返回表中所有列,列的顺序一般是表中出现的物理顺序,但是有些时候也并非如此。获取 Products 表中所有供应商 ID;
SELECT DISTINCT vend_id
FROM Products;
DISTINCT 使得 vend_id 列的每个结果只出现一次。DISTINCT 关键字作用于所有检索的列,比如 SELECT DISTINCT vend_id, prod_price 将按照两个列 vend_id 与 prod_price 的组合罗列出来。获取 Products 表中五行数据;
SELECT TOP 5 prod_name
FROM Products;
TOP 关键字限制最多返回多少行,注意并不代表最大五行,只返回最多五行结果。-- DB2 数据库
SELECT prod_name
FROM Products
FETCH FIRST 5 ROWS ONLY;
-- ORACLE 数据库
SELECT prod_name
FROM Products
WHERE ROWNUM <= 5;
-- MySQL、MariaDB、PostgreSQL、SQLite 数据库
SELECT prod_name
FROM Products
LIMIT 5;
LIMIT 与 OFFSET 结合,LIMIT 指定返回的行数,OFFSET 执行从哪里开始。LIMIT 5 OFFSET 5 代表从第5行起的5行数据。不同的数据库管理系统中注释规则有所不同,但是大差不差,读者在不同的 DBMS 自行尝试;
-- 这是一条行内注释
# 这个行内注释方法只有部分 DBMS 支持
/*
这是一个多行注释方法
大部分 DBMS 都适用
*/
s
q
l
sql
sql 使用 ORDER BY 子句进行排序;
检索 Products 表中 prod_name 列,并将检索结果以字母顺序排序;
SELECT prod_name
FROM Products
ORDER BY prod_name;
ORDER BY 子句的位置必须保证是语句中最后一列;对 Products 的多列检索结果首先按照价格、然后按照名称排序;
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price, prod_name;
对 Products 的多列检索结果按照相对列位置进行排序;
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY 2,3;
prod_price 然后按相对位置3 prod_name 进行排序。数据排序默认方向为:“升序”(从A-Z)方向。升序排序的关键词为 ASC,Ascending;
有升序就有降序,降序排序的关键词为 DESC,即 Descending;
-- DESC 案例
SELECT prod_id, prod_name, prod_price
FROM Products
ORDER BY prod_price DESC;
SELECT prod_id, prod_name, prod_price
FROM Products
ORDER BY prod_price DESC, prod_name;
答案是先按照 prod_price 降序,对其中结果按照 prod_name 升序方向排序。
–
以上