-- 最常用的是select语句,用途是从一个或多个表中检索信息
-- select检索表数据必须给出两条信息,想选择什么,以及从什么地方选择(what,where)
-- 检索单个列
select prod_name from Products;
#如果没有明确排序查询的结果,则返回的数据没有特定的顺序,只要返回相同数目的行,就是正常的。
-- SQL语句是不区分大小写的,但是对于数据库开发人员来说,更喜欢对SQL关键字使用大写,而对列名和表明使用小写,这样做代码更易于阅读和调试。
-- 在处理SQL语句时,其中所有空格都被忽略
SELECT prod_name
FROM Products;
SELECT prod_name FROM Products;
SELECT
prod_name
FROM
Products;
#将SQL语句分成多行更容易阅读和调试
-- 检索多个列
#select关键字后给出多个列名,列名之间必须以逗号分隔
SELECT prod_id,prod_name,prod_price
FROM Products;
#SQL语句一般返回原始的、无格式的数据,数据的格式化是表示问题,而不是检索问题。很少直接使用实际检索出的数据。
-- 检索所有列
SELECT *
FROM Products;
#使用通配符*检索的优缺点
-- 优点:由于不明确指定列名,所以能检索出名字未知的列
-- 缺点:虽然省事儿,但是不能明确列出所需列,检索出不需要的列通常会降低检索和应用程序的性能。
-- 检索出不同的值
SELECT vend_id
FROM Products;
#返回的结果是9行(3个产品供应商,对应有9种产品)
-- 使用DISTINCT关键字,只返回不同的值
SELECT DISTINCT vend_id
FROM Products;
-- DISTINCT关键字作用于所有的列,而不仅仅是跟在其后的那一列
-- 限制结果
-- 在SQL返回一定数量的行,不同的DBMS实现不相同
--------------------
-- 比如在SQL Server和Access中使用TOP关键字来限制最多返回多少行
-- SELECT TOP 5 prod_name FROM Products;
--------------------
-- 在DB2中使用特定的SQL语句
-- SELECT prod_name FROM Products FETCH FIRST 5 ROWS ONLY;
--------------------
-- 在Oracle中,基于ROWNUM(行计数器)
-- SELECT prod_name FROM Products WHERE ROWNUM <=5;
--------------------
-- 在MySQL、MariaDB、PostgreSQL或者SQLite需要使用LIMIT字句
SELECT prod_name
FROM Products
LIMIT 5;
-- 如果要得到后面的5行数据,需要指定从哪儿开始,以及检索的行数
SELECT prod_name
FROM Products
LIMIT 5 OFFSET 5;
因为只有9行数据,从第五行开始,所以只返回了四行。
-- mysql简化写法LIMIT 3,4逗号前面的是LIMIT,逗号之后对应OFFSET
SELECT prod_name
FROM Products
LIMIT 4,3;
-- 使用注释
SELECT prod_name
FROM Products; -- 这是一条注释
# 这是一条注释
SELECT prod_name
FROM Products;
# 进行多行注释
/* SELECT prod_name,vend_id
FROM Products; */
SELECT prod_name
FROM Products;