本文涉及到以下知识点:
1.SELECT检索单个列、多个列和所有列
2.使用DISTINCT关键字剔除重复值、DISTINCT使用注意事项
3.使用LIMIT关键字对查询结果进行限制
1.从表中检索出单个列
SELECT column_name FROM table_name;
3个建议:
①:每一条SQL语句写完后,加上分号(;)作为结束,加比不加好
②:SQL语句是不区分大小写的,例如:
# 下面两个SQL语句效果是一样的
SELECT * FROM table_name;
select * from table_name;
但是建议对所有的SQL关键字使用大写,对所有的列和表名使用小写
③:当SQL语句较长时,可以用一行写完,但是建议分为多行写完,这样美观且便于阅读
2.检索多个列
当检索两个或两个以上时,列名之间用逗号分隔
SELECT column1,column2,column3 FROM table_name;
3.检索所有列
使用通配符星号(*),返回所有的列。
注意⭐:除非确定要返回所有的数据列,否则最好别使用通配符(*),因为这样会使检索速度变慢、降低应用程序的性能。
使用通配符(*)的另一个好处就是,可以检索出未知的列。
4.检索不同的行
检索出products表中所有供应商的id
SELECT vend_id FROM products;
输出:
可以看出vend_id只有4个值,其他多事重复的。为剔除重复的值,需要使用DISTINCT关键字。
SELECT DISTINCT vend_id FROM products;
输出:
🌈注意:不可部分使用DISTINCT。DISTINCT应用于所有的列,而不仅是前置它的列。请看下例:
SELECT DISTINCT vend_id,vend_price FROM products;
输出:
可以看出prod_price没有重复的值,而prod_id有重复的值,这是因为prod_price要与prod_id对应。
5.限制结果
SELECT语句返回所有匹配的行,为了只返回符合条件的第一行或者前几行,可以使用关键字LIMIT。请看下例:
SELECT prod_name FROM products;
输出:
使用LIMIT进行结果限制:
SELECT prod_name FROM products LIMIT 5;
输出:
可以看到只返回前5行结果。
为了得到下一个5行,可以指定要检索的开始行和检索行数:
SELECT prod_name FROM products LIMIT 5,5;
输出:
📝总结:
①:带一个值的LIMIT总是从第一行开始,给出的数字为返回的行数
②:带两个值的LIMIT,第一个值为开始行的位置,第二个值为返回的行数
🌈注意:
①:检索出来的结果,第一行的行号为0,第二行的行号为1,以此类推...
栗子:
# 从第2行开始检索,返回1行
SELECT prod_name FROM products LIMIT 1,1;
当检索的行数超出实际有的行数时,只返回实际有的行数。如下:
SELECT prod_name FROM products LIMIT 10,5;
上面的语句要从第11行开始检索,返回第11行(含)后的5行,实际只有13行,所以只返回11行后的3行。