select:
1、limit字句
select prod_name from products limit5;使用select语句检索单个列,limit 5 表示返回不多于5行。
select prod_name from products limit 3,4; limit 3,4表示返回从行3开始的4行。第一个数表示开始位置,第二个数表示要检索的行数。
select prod_name from products limit 4 offset 3; 从行3开始取4行。与上句意思一样。
注:数据从行0开始计算。
2、完全限定列名(同时使用表名和列名)
select products.prod_name fromcrashcourse.products;
3、order by字句
select prod_name from products order by prod_name; 表示对prod_name列以字母顺序排序数据
select prod_id,prod_price,prod_name from products order byprod_price,prod_name; 按多个列进行排序,先按价格,若价格相同再按名称
select prod_id,prod_price,prod_name from productsorder by prod_pricedesc;指定排序方向按降序排序
select prod_id,prod_price,prod_name from productsorder byprod_price desc,prod_name;desc只应用直接位于其前面的列名,如果想对多个列进行降序排序,必须为每个列指定desc关键字 先按价格降序排序 再按名字排序
select prod_price from productsorder by prod_price desc limit 1; 使用order by和limit组合,能找出一个列中最高或最低的值。
4、where字句(=、<>、!=、<、<=、>=、between) where过滤的是行,having过滤的是分组
1)select prod_name,prod_price from products where prod_name='fuses'; 检查单个值
2)select vend_id,prod_name from products where vend_id<>1003; 不匹配检查 列出不是1003制造的所有产品
3)select prod_name,prod_price fronm products where prod_price between 5 and 10; 范围值检查
4) select prod_name from products where prod_price is null; 空值检查 返回没有价格的(字段为空)的所有产品
5、组合where字句(and字句和or字句)、in操作符(与or类似)、not操作符
1)select prod_id,prod_price,prod_name from products where vend_id=1003 and prod_price<=10;
2)select prod_id,prod_price,prod_name from products wherevend_id=1002orvend_id=1003;
注:select prod_price,prod_name from products where vend_id=1002 or vend_id=1003 and prod_price >=10;
因为优先处理and ,所以返回结果为由1003制造的任何价格为10美元以上的产品或者由1002制造的所有产品。为避免歧义,可以加括号。
select prod_price,prod_name from products where (vend_id=1002 or vend_id=1003 )and prod_price >=10;返回由1002和1003制造的价格在10美元以上的任何产品。