SQL样例表脚本和资料https://download.csdn.net/download/qq_40943944/12481417
SELECT 语句从表中检索一个或多个数据列
关键字(keyword)
作为 SQL 组成部分的保留字。关键字不能用作表或列的名字。
检索单个列
SELECT prod_name
FROM Products;
上述语句利用 SELECT 语句从 Products 表中检索一个名为prod_name的列。所需的列名写在 SELECT 关键字之后,FROM 关键字指出从哪个表中检索数据。
提示:结束 SQL 语句
多条 SQL 语句必须以分号(;)分隔。多数 DBMS 不需要在单条 SQL语句后加分号,但也有 DBMS 可能必须在单条 SQL 语句后加上分号。当然,如果愿意可以总是加上分号。事实上,即使不一定需要,加上分号也肯定没有坏处。
提示:SQL 语句和大小写
请注意,SQL 语句不区分大小写,因此 SELECT 与 select 是相同的。同样,写成 Select 也没有关系。许多 SQL 开发人员喜欢对 SQL 关键字使用大写,而对列名和表名使用小写,这样做使代码更易于阅读和调试。不过,一定要认识到虽然 SQL 是不区分大小写的,但是表名、列名和值可能有所不同(这有赖于具体的 DBMS 及其如何配置)。
提示:使用空格
在处理 SQL 语句时,其中所有空格都被忽略。SQL 语句可以写成长长的一行,也可以分写在多行。下面这 3 种写法的作用是一样的。
SELECT prod_name
FROM Products;
SELECT prod_name FROM Products;
SELECT
prod_name
FROM
Products;
多数 SQL 开发人员认为,将 SQL 语句分成多行更容易阅读和调试。
检索多个列
要想从一个表中检索多个列,仍然使用相同的 SELECT 语句。唯一的不同是必须在 SELECT 关键字后给出多个列名,列名之间必须以逗号分隔。
SELECT prod_id, prod_name, prod_price
FROM Products;
检索所有列
SELECT 语句还可以检索所有的列而不必逐个列出它们。在实际列名的位置使用星号(*)通配符可以做到这点
SELECT *
FROM Products;
检索不同的值
使用 DISTINCT 关键字,顾名思义,它指示数据库只返回不同
的值
SELECT DISTINCT vend_id
FROM Products;
注意:不能部分使用 DISTINCT
DISTINCT 关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定 SELECT DISTINCT vend_id, prod_price,除非指定的两列完全相同,否则所有的行都会被检索出来。
限制结果(显示指定行)
如何返回一定数量的行?
1、在 SQL Server 和 Access 中使用 SELECT 时,可以使用 TOP 关键字来限制最多返回多少行
SELECT TOP 5 prod_name
FROM Products;
上面代码使用 SELECT TOP 5 语句,只检索前 5 行数据。
DB2
SELECT prod_name
FROM Products
FETCH FIRST 5 ROWS ONLY;
Oracle
SELECT prod_name
FROM Products
WHERE ROWNUM <=5;
MySQL、MariaDB、PostgreSQL
SELECT prod_name
FROM Products
LIMIT 5;
LIMIT 5指示MySQL等 DBMS 返回不超过 5 行的数据
SELECT prod_name
FROM Products
LIMIT 5 OFFSET 5;
LIMIT 5 OFFSET 5 指示 MySQL 等 DBMS 返回从第 5 行起的 5 行数据。第一个数字是指从哪儿开始,第二个数字是检索的行数。
注意:第 0 行
第一个被检索的行是第 0 行,而不是第 1 行。因此,LIMIT 1OFFSET 1 会检索第 2 行,而不是第 1 行。
提示:MySQL 和 MariaDB 捷径
MySQL和MariaDB支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3,4。使用这个语法,逗号之前的值对应 OFFSET,逗号之后的值对应 LIMIT。
使用注释
SELECT prod_name -- 这是一条注释
FROM Products;
注释使用-- (两个连字符)嵌在行内。-- 之后的文本就是注释,例如,这用来描述 CREATE TABLE 语句中的列就很不错。
# 这是一条注释
SELECT prod_name
FROM Products;
在一行的开始处使用#,这一整行都将作为注释。
/* SELECT prod_name, vend_id
FROM Products; */
SELECT prod_name FROM Products;
注释从/开始,到/结束,/和/之间的任何内容都是注释。