1、SELECT语句
从一个或多个表中检索信息。
2、检索单个列
输入:SELECT prod_name FROM products;
输出:prod_name
Safe
Bird seed
Sling
xxxxxx
分析:从products表中检索一个名为prod_name的列。
3、分号的使用
大多数DBMS,不需要在单条语句后加分号,多条语句使用分号分隔,但是建议每条语句都加上分号。
4、大小写
SQL语句不区分大小写,但为了阅读方便,建议关键字大写,列名和表名使用小写。
5、空格
处理SQL语句时,所有空格都被忽略,SQL语句可以一行给出,也可以多行给出,多行便于阅读,建议多行。
6、检索多个列
输入:SELECT prod_id,prod_name,prod_price FROM products;
输出:
prod_id prod_name prod_price
FB Bird seed 10.00
FC Carrots 2.50
SAFE Safe 50.00
分析:可以看到选择多个列只是在关键字SELECT后增添相应的列名而已,不过列名之间需要使用分号隔开。
7、检索所有列
输入:SELECT * FROM products;
输出:products表中的所有列。
分析:*是一个通配符。列显示的顺序一般与表定义的顺序一致,但表的模式变化时(如添加或删除列)可能导致顺序的变化。
8、通配符
一般不建议使用通配符*,除非你真的需要列出表中的每个列,否则会降低检索和应用程序的性能。
通配符的另一作用是检索未知列,以获取列名。
9、检索不同的行
个人认为题目应为,检索某些列,但是去除重复的行。检索一个列重复的可能性比较大,多个列因为描述的维度多了,组合标识就很可能不重复了。
输入:SELECT DISTINCT vend_id
FROME products;
输出:vend_id
1001
1002
1003
分析:DISTINCT 应用于所有列而不仅仅是前置它的列。
10、限制结果
输入:SELECT prod_name
FROM products
LIMIT 2;
输出:prod_name
oil can
Fuses
分析:返回结果不多于2行。
要得出剩余的行数,可以这么写
输入:SELECT prod_name
FROM products
LIMIT 2,2;
输出:prod_name
Bird seed
Carrots
分析:返回从行2开始的2行,第一个参数是起始位置(采用数组的下标表示,所以其实是第3行),第二个参数是要检索的行数。当实际行数没有参数行数多时,只返回实际行数。
等效语法:LIMIT 3,4 == LIMIT 4 OFFSET 3
11、使用完全限定的表名
输入:SELECT products.prod_name
FROM crashcourse.products;
分析:这条语句起的作用与本章开头语句起的作用一致,只是有的地方需要你使用完全限定名,具体情况到时候再说。