4.1 :SELECT语句
使用SELECT检索表数据,必须至少给出两条信息-----想选择什么,以及从什么地方选择。
4.2 :检索单个列
从简单的SQL SELECT语句开始,如下所示:
SELECT prod_name from products;
上述语句利用SELECT语句从products表中检索一个prod_name的列;
结束SQL语句:多条SQL语句必须以分号(;)分隔;
SQL语句和大小写:不区分大小写;
使用空格:在处理SQL语句时,其中所有空格都被忽略;
4.3 :检索多个列
想要从一个表中检索多个列,使用相同的SELECT语句;唯一的不同是必须在select关键字后给出多个列名,列名之间必须以逗号分隔;
注:在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。
SELECT prod_id, prod_name, prod_price FROM products;
4.4 :检索所有列
使用select语句还可以检索所有的列而不必逐个列出它们,可以通过在实际列名的位置使用星号(*)通配符来达到;
例子:
SELECT* FROM products;
一个通配符(*),则返回表中所有列。列的顺序一般是列在表定义中出现的顺序。
检索未知列:使用通配符的优点,能检索未知列;
4.5:检索不同的行
SELECT返回所有匹配的行 ,如:
SELECT vend_id FROM products;
SELECT语句返回14行(即使表中只有4个供应商),因为products表中列出了14个产品。
使用 SELECT DISTINCT vend_id 告诉Mysql只返回不同(唯一)的vend_id行,因此只返回4行。使用DISTINCT关键字,必须直接放在列名的前面;
SELECT DISTINCT vend_id FROM products;
DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price, 除非指定的两个列都不同,否则所有行都将被检索出来。(总而言之:distinct就是去重,如果两个列有一个没有重复的则不会去重)
4.6 :限制结果
SELECT 语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。
例子:
SELECT prod_name From products LIMIT 5;
此语句使用SELECT语句检查单个列, LIMIT 5 指示返回不多于5行;
为得出下一个5行,可指定要检索的开始行和行数:
SELECT prod_name From products LIMIT 5,5;
- LIMIT 5,5 : 返回从行5开始的5行;
- 第一个数为开始位置,第二个数为要检索的行数;
- 带一个值的limit总是从第一行开始,给出的数为返回的行数;
- 带两个值的LIMIT可以指定从行号为第一个值的位置开始;
- 检索出来的第一行为行0而不是行1;
- LIMIT中指定要检索的行数为检索的最大行数;
tip:
select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
select * from tablename limit 2,4
即取出第3条至第6条,4条记录
4.7 : 使用完全限定的表名
迄今为止使用的sql例子只通过列名引用列。也可能会使用完全限定的名字来应用列(同时使用表名和列字);
例子:
SELECT products.prod_name FROM products;
上述指定了一个完全限定的列名;
表名也可以是完全限定的:
SELECT products.prod_name From crashcourse.products;