mysql必知必会第四章笔记
检索单个列
检索products表中的prod_name列 :
输入:
SWLWCT prod_name
FROM products;
输出:
+-----------------+
| prod_name |
+-----------------+
| .5 ton anvil |
| 1 ton anvil |
| 2 ton anvil |
| Oil can |
| Fuses |
4.2 检索单个列
我们将从简单的SQL SELECT 语句开始介绍,此语句如下所示:
输入
SELECT prod_name
FROM products;
分析
上述语句利用SELECT 语句从products 表中检索一个名为prod_name 的列。所需的列名在SELECT 关键字之后给出,FROM 关键字指出从其中检索数据的表名。此语句的输出如下所示:
输出
+-----------------+
| prod_name |
+-----------------+
| .5 ton anvil |
| 1 ton anvil |
| 2 ton anvil |
| Oil can |
| Fuses |
| Sling |
| TNT (1 stick) |
| TNT (5 sticks) |
| Bird seed |
| Carrots |
| Safe |
| Detonator |
| JetPack 1000 |
| JetPack 2000 |
+-----------------+
检索多个列
从products表中选择3列:
输入:
SELECT prod_id, prod_name,prod_price
FROM products;
输出:
要想从一个表中检索多个列,使用相同的SELECT 语句。唯一的不同是必须在SELECT 关键字后给出多个列名,列名之间必须以逗号分隔。
当心逗号 在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。如果在最后一个列名后加了逗号,将出现错误。
下面的SELECT 语句从products 表中选择3列:
输入
SELECT prod_id, prod_name, prod_price
FROM products;
分析
与前一个例子一样,这条语句使用SELECT 语句从表products 中选择数据。在这个例子中,指定了3个列名,列名之间用逗号分隔。此语句的输出如下:
输出
+---------+----------------+------------+
| prod_id | prod_name | prod_price |
+---------+----------------+------------+
| ANV01 | .5 ton anvil | 5.99 |
| ANV02 | 1 ton anvil | 9.99 |
| ANV03 | 2 ton anvil | 14.99 |
| OL1 | Oil can | 8.99 |
| FU1 | Fuses | 3.42 |
| SLING | Sling | 4.49 |
| TNT1 | TNT (1 stick) | 2.50 |
| TNT2 | TNT (5 sticks) | 10.00 |
| FB | Bird seed | 10.00 |
| FC | Carrots | 2.50 |
| SAFE | Safe | 50.00 |
| DTNTR | Detonator | 13.00 |
| JP1000 | JetPack 1000 | 35.00 |
| JP2000 | JetPack 2000 | 55.00 |
+---------+----------------+------------+
检索所有列
输入*号通配符来达到检索所有列的目的 输入:
SELECT *
FROM products;
注意:最好在只取部分列时不要使用*通配符,因为会检索所有列会降低应用程序的性能.
去重
如果想检索的列有许多重复的行,而你想使这些行不重复的显示出来,则可以进行去重处理
输入:
SELECT DISTINCT vend_id
FROM products;
输出:
+---------+
| vend_id |
+---------+
| 1001 |
| 1002 |
| 1003 |
| 1005 |
+---------+
注意:不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列.如果给出SELECT DISTINCT vend_id ,prod_price ,除非指定的两个列都不同,否则所有行都将被检索出来。
限制结果
如果你查询某个表的行,但不想要所有的行,比如只要它的前几行,就可以使用LIMIT子句.
输入:
SELECT prod_name
FROM products
LIMIT 5;
LIMIT 5 表示mysql返回不多于5行
输出:
+----------------+
| prod_name |
+----------------+
| .5 ton anvil |
| 1 ton anvil |
| 2 ton anvil |
| Oil can |
| Fuses |
+----------------+
为了得到下一个5行,可以指定要检索的开始行和行数
输入:
SELECT prod_name
FROM products
LIMIT 5,5;
第一个数是开始位置(从零开始算起),第二个数为要检索的行数
输出
+----------------+
| prod_name |
+----------------+
| Sling |
| TNT (1 stick) |
| TNT (5 sticks) |
| Bird seed |
| Carrots |
+----------------+
使用完全限定的表名
SELECT products.prod_name
FROM products;
表名也可以是完全限定的:
SELECT products.prod_name
FROM crashcourse.products;