这一课的主题是“检索数据”,介绍如何使用SELECT语句从表中检索一个或多个数据列。
提示
- SQL语句后要加分号
- 对SQL关键字使用大写,对列名和表命使用小写。这样做使代码更易于调试和阅读。
- 多数SQL开发人员认为,将SQL语句分成多行更容易阅读和调试。
- SQL语句一般返回原始的、无格式的数据。数据的格式化是表示问题,而不是检索问题。
警告
- 一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符。虽然使用通配符能让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
- 通配符可以检索出名字为知的列。
- DISTINCT关键字作用于所有的列。
SELECT语句
为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。
检索单个列
输入语句:
SELECT prod_name
FROM Products;
输出结果:
prod_name
12 inch teddy bear
18 inch teddy bear
8 inch teddy bear
Bird bean bag toy
Fish bean bag toy
King doll
Queen doll
Rabbit bean bag toy
Raggedy Ann
上面的语句将返回表中的所有行。数据没有过滤,也没有排序。
DISTINCT关键字
SELECT DISTINCT vend_id
FROM Products;
SELECT DISTINCT vend_id 告诉DBMS只返回不同的vend_id行。
获取前N行
不同的数据库有不同的语句。MySQL使用下面的语句:
SELECT prod_name
FROM Products
LIMIT 5;
还可以使用下面的语句来指定起始偏移量。
SELECT prod_name
FROM Products
LIMIT 5 OFFSET 5;
指定从第5行起取5行,这里的行数是zero-based index。
注释
一般来说--
是行内注释#
是行首注释,/*...*/
是块注释