查询单个列
语句:SELECT prod_name FROM Products;
输出结果(结果是无序的):
prod_name
Fish bean bag toy
Bird bean bag toy
Rabbit bean bag toy
8 inch teddy bear
12 inch teddy bear
18 inch teddy bear
Raggedy Ann
King doll
Queen doll
上述语句用SELECT语句从Products表中检索一个名为prod_name的列。所要查询的列名写在SELECT之后,FROM后面跟的是要查询数据的来源表。
注意:
1、多条SQL语句必须以分号(;)分隔
2、sql语句不区分大小写,但是用到的表、列、行是要看使用的数据款软件判断是否需要区分大小写的。
查询多个列
语句:SELECT prod_id, prod_name, prod_price FROM Products;
输出结果:
prod_id | prod_name | prod_price |
---|---|---|
BNBG01 | Fish bean bag toy | 3.4900 |
BNBG02 | Bird bean bag toy | 3.4900 |
BNBG03 | Rabbit bean bag toy | 3.4900 |
BR01 | 8 inch teddy bear | 5.9900 |
BR02 | 1 inch teddy bear | 8.9900 |
BR03 | 18 inch teddy bear | 11.9900 |
RGAN01 | Raggedy Ann | 4.9900 |
RYL01 | King doll | 9.4900 |
RYL02 | Queen dool | 9.4900 |
这条语句依然使用SELECT语句从表Products中选择数据,但是必须在SELECT关键字后给出多个列名,且列名之间必须加上逗号,但最后一个列名后不加。
查询所有列
语句:SELECT * FROM Products;
输出结果:
返回表中所有的列。
如果在select后的列名的位置给定一个通配符(*),则返回表中所有列。
注意:一般情况下,否则最好别使用*通配符,因为检索不需要的列通常会降低检索和应用程序的性能。
对列去重查询
语句:ELECT DISTINCT vend_id FROM Products;
原数据:
vend_id
————
BRS01
BRS01
BRS01
DLL01
DLL01
DLL01
DLL01
FNG01
FNG01
输出结果:
vend_id
————
BRS01
DLL01
FNG01
上述语句是使用DISTINCT对一个列里面的值去重查询,只返回不同的值,DISTINCT必须要放在所有的列名前面、在select后面。
注意:DISTINCT作用于所有的列,不仅仅是跟在其后的那一列。如果同时作用于多个列,那当多个列 存在相同组合的时候,这相同的组合所在行就会被去重。
限制返回多少行数据
语句1:SELECT prod_name FROM Products LIMIT 5;
输出结果:
输出查询结果的前五行。
LIMIT 5指返回不超过5行的数据。
语句2:SELECT prod_name FROM Products LIMIT 5 OFFSET 5;
输出结果:返回所有查询结果的第五行开始数的5行数据
为了得到后面的5行数据,需要指定从哪儿开始以及检索的行数,所以,LIMIT指定返回的行数,带OFFSET的LIMIT指定从哪儿开始。
注意:第一个被检索的行是第0行,而不是第1行。因此,LIMIT 1 OFFSET 1会检索第2行,而不是第1行。MySQL还支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3,4。使用这个语法,,之前的值对应LIMIT, ,之后的值对应OFFSET
子句(clause)
SQL语句由子句构成,有些子句是必需的,有些则是可选的。一个子句通常由一个关键字加上所提供的数据组成,比如SELECT语句的FROM子句、以及后面要看到的order by。