目录
2.检索数据
2.1 SELECT语句
关键字(keyword):作为SQL组成部分的保留字。关键字不能用作表或列的名字。
SELECT就是一个关键字。
2.2 检索单个列
从Products表中检索名为prod_name的列:
- 如果没有明确排序查询结果(下一课介绍),则返回的数据没有特定的顺序。返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。
- 多条SQL语句必须以分号(;)分隔。
- SQL语句不区分大小写,因此SELECT与select是相同的。
- 在处理SQL语句时,其中所有空格都被忽略。SQL语句可以写成长长的一行,也可以分写在多行。下面这三种写法的作用是一样的:
2.3 检索多个列
当心逗号:在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。如果在最后一个列名后加了逗号,将出现错误。
2.4 检索所有列
如果给定一个通配符(*),则返回表中所有列。列的顺序一般是列在表定义中出现的物理顺序。
缺点:检索不需要的列通常会降低检索和应用程序的性能。
优点:能检索出名字未知的列。
2.5 检索不同的值
case:
你想检索products表中所有产品供应商的ID:
SELECT语句返回9行(即使表中只有3个产品供应商),因为products表中有9种产品。
如何检索出不同的值?办法就是使用DISTINCT关键字。
SELECT DISTINCT vend_id告诉DBMS只返回不同(具有唯一性)的vend_id行。
如果使用DISTINCT关键字,它必须直接放在列名的前面。
- 不能部分使用DISTINCT。DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。
2.6 限制结果(返回特定数量的行)
各种数据库中的这一SQL实现并不相同。
在MySQL中,返回不超过5行的数据:
为了得到后面的5行数据,需要:
limit 5 offset 5 表示跳过5条数据,返回5条数据。
这个语句的输出是:
在我们的例子中,Products表中只有9种产品,所以LIMIT 5 OFFSET 5只返回了4行数据(因为没有第5行)。
- MySQL支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3,4同样表示跳过3条数据,返回4条数据。
2.7 使用注释
使用注释的目的:
- 添加一些描述性的注释,这便于你自己今后参考,或者供项目后续参与人员参考。
- 可能包含程序员的联系方式、程序描述以及一些说明。
- 暂时停止要执行的SQL代码。如果你碰到一个长SQL语句,而只想测试它的一部分,那么应该注释掉一些代码。
行内注释
多行注释
注释从/*开始,到*/结束,/*和*/之间的任何内容都是注释。这种方式常用于给代码加注释,就
如这个例子演示的,这里定义了两个SELECT语句,但是第一个不会执行,因为它已经被注释掉了。