检索数据
每个SQL语句都是由一个或多个关键字构成的,SELECT语句的用途是从一个或多个表中检索信息。
1、检索单个列
结束SQL语句:
多条SQL语句必须以分号(;)分隔。如果你使用的是mysql命令行,必须加上分号来结束SQL语句。
SQL语句和大小写 :
请注意,SQL语句不区分大小写,因此SELECT与select是相同的。同样,写成Select也没有关系。
使用空格:
在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行。
2、检索多个列
要想从一个表中检索多个列,使用相同的SELECT语句,必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。
当心逗号 在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。如果在最后一个列名后加了逗号,将出现错误。
3、检索所有列
SELECT语句可以检索所有的列而不必逐个列出它们。通过在实际列名的位置使用星号(*)通配符来达到,如下所示:
使用通配符 :
一般,除非你确实需要表中的每个列,否则最好别使用*通配符。检索不需要的列通常会降低检索和应用程序的性能。
4、检索不同的行
SELECT返回所有匹配的行。如果你不想要每个值每次都出现,怎么办?假如你想得出products表中产品的所有供应商ID:
不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。
5、限制结果
为了返回第一行或前几行,可使用LIMIT子句。
带一个值的LIMIT总是从第一行开始,给出的数为返回的行数。带两个值的LIMIT可以指定从行号为第一个值的位置开始。
行0 检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。
在行数不够时 LIMIT中指定要检索的行数为检索的最大行数。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行。
6、使用完全限定的表名
这条SQL语句在功能上等于本章最开始使用的那一条语句,但这里指定了一个完全限定的列名。