SQL 检索数据:
一、SELECT语句:
- SQL语句是由简单的英语单词构成的。
- 这些英语单词称为
关键字
。
- 这些英语单词称为
- 最经常使用的
SQL语句就是SELECT语句
。- 它的作用是
从一个表或者多个表中检索信息
。
- 它的作用是
- 为了使用SELECT检索数据,必须给多两条信息
(想选择什么,以及什么地方选择)
二、检索单个列:
SELECT prod_name FROM Products;
-
分析:
- 利用SELECT语句从
Products表
中检索一个名为prod_name的列
。 FROM关键字指出从哪个表中检索数据
- 利用SELECT语句从
-
SQL大小写的建议:
- 建议
SQL关键字使用大写,而对列名和表名使用小写,这样的代码更易于阅读和调视.
- 建议
-
使用空格:
-
再处理SQL时,其中所有的空格都被忽略,SQL语句可以写一条很长的代码,也可以分为多行:
# 以下三种写法是一样的 SELECT prod_name FROM Products; SELECT prod_name FROM Products; SELECT prod_name FROM Products;
-
三、检索多个列:
-
跟检索单个列
不同
的是,再SELECT关键字后给出多个列名
,名之间必须以逗号分隔
。 -
注意:再选择多个列时,一定要在列名之间加上逗号,但
最后一个列名不需要加
,如果加上就会报错。SELECT prod_id, prod_name, prod_price FROM Products;
- 这条语句使用SELECT语句从表Products中选择数据,指定了3个列名,每个列名之间用逗号分隔,最后一个不需要逗号。
四、检索所有列:
-
再实际
列名的位置使用星号(*)通配符可以做到这点。
SELECT * FROM products;
- 警告:使用通配符:
- 一般而言,除非你确定需要表中的每一个列,否则最好不要使用通配符。虽然通配符能省很多事,不用明确列出所需列,但
检索不需要的列通常会降低检索和应用程序的性能。
- 一般而言,除非你确定需要表中的每一个列,否则最好不要使用通配符。虽然通配符能省很多事,不用明确列出所需列,但
- 警告:使用通配符:
五、检索不同的值:
-
使用关键字
DISTINCT
,它指示数据库只返回不同的值。相当于将数据库中所有的值,把重复的去掉。SELECT DISTINCT vend_id FROM products;
如果使用关键字DISTINCT关键字,它必须直接放在列名前面。
-
警告:不能部分使用DISTINCT:
-
DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列
-
举个栗子:
SELECT DISTINCT vend_id, prod_price FROM products;
-
结论:
除非指定的两列完全相同,否则所有的行都会被检索出来。
-
六、限制结果:
-
SELECT 语句返回指定表的所有匹配行。使用
LIMIT关键字
可以限制返回几行数据:SELECT prod_name FROM products LIMIT 5; # 5表示返回不超过5行的数据
-
为了得到后面的5行,需要指定从哪里开始以及检索的行数呢?
SELECT prod_name FROM products LIMIT 5 OFFSET 5;
- 注意:
LIMIT 5 OFFSET 5
: 5表示从第五行起的五行数据
,第一个数字(5)是指从哪行开始,第二个数字是检索的行数
- 警告:第0行:
- 第一个被检索的行是
第0行
,而不是第1行
,因此LIMIT 1 OFFSET 1会检索第2行,而不是第1行。
- 第一个被检索的行是
- 注意: