@wpaladins
2017-10-07T14:23:37.000000Z
字数 4832
阅读 2618
笔记
记录和行这两个术语多半是可以交替使用的,但从技术上说,行才是正确的术语。应该有一列(或几列)可以唯一标识自己。唯一标识表中每行的这个列(或这几列)称为主键。主键用来表示一个特定的行。
SELECT prod_nameFROM Products;
FROM关键字指出从哪个表中检索数据。
SELECT prod_id, prod_name, prod_priceFROM Products;
SELECT *FROM Products;
*通配符。*通配符。虽然使用通配符能让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索的应用程序的性能。
SELECT DISTINCT vend_idFROM Products;
DISTINCT关键字。DISTINCT,DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。TOP关键字来限制最多返回多少行:
SELECT TOP 5 prod_nameFROM Products;
SELECT prod_nameFROM ProductsFETCH FIRST 5 ROWS ONLY;
ROWNUM(行计数器)来计算行:
SELECT prod_nameFROM ProductsWHERE ROWNUM <= 5;
LIMIT子句:
SELECT prod_nameFROM ProductsLIMIT 5;
上述代码使用SELECT语句来检索单独的一列数据。
LIMIT 5指示MySQL等DBMS返回不超过5行的数据。
为了得到后面5行数据,需要指定从哪儿开始以及检索的行数,像这样:
SELECT pro_nameFROM ProductsLIMIT 5 OFFSET 5;
LIMIT 5 OFFSET 5指示MySQL等DBMS返回从第5行起的5行数据。- 第一个数字是检索的行数,第二个数字是指从哪儿开始。
- 所以,
LIMIT是定返回的行数。LIMIT带的OFFSET指定从哪儿开始。- 注意:第0行,第一个被检索的行就是第0行,而不是第1行。
- MySQL、MariaDB、SQLite的捷径:
LIMIT 4 OFFSET 3;//简化为:LIMIT 3,4
- 并非所有的SQL实现都一样。
SELECT prod_name -- 这是一条注释FROM Products;
# 这是一条注释SELECT prod_nameFROM Products;
/* SELECT prod_name, vend_idFROM Products; */SELECT prod_nameFROM Products;
SELECT prod_nameFROM ProductsORDER BY prod_name;
ORDER BY子句取一个或多个列的名字,据此对输出进行排序。ORDER BY子句是SELECT语句中最后一条子句。
SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY prod_price, prod_name;
前一个列名对应的值时才对输出按后一个列名对应的值进行排序。
SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY 2, 3;
2, 3指定的是选择列在SELECT清单中的相对位置。表示通过先通过第2列排序,如果第2列相同则通过第3列排序。默认的排序顺序是升序排序。DESC关键字。
SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY prod_price DESC, prod_name;
DESC关键字只应用到直接位于其前面的列名。DESC(DESCENDING)相对的是ASC(ASCENDING),但实际上,ASC没有多大用处,因为升序是默认的。WHERE子句搜索条件(search criteria),也称为过滤条件(filter condition)。
SELECT prod_name, prod_priceFROM ProductsWHERE prod_price = 3.49;
WHERE子句的位置,在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后。(先将数据找出来,再排序)WHERE子句操作符= 等于<> 不等于!= 不等于< 小于<= 小于等于!< 不小于> 大于>= 大于等于!> 不大于BETWEEN 在指定的两个值之间IS NULL 为NULL值<>与!=相同,!<相当于>=),并非所有DBMS都支持所有这些操作符。
SELECT prod_name, prod_priceFROM ProductsWHERE prod_price BETWEEN 5 AND 10;
在使用BETWEEN时,必须指定两个值---所需范围的低端值和高端值。这两个值必须用AND关键字分隔。BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。
SELECT cust_nameFROM customersWHERE cust_email IS NULL;
WHERE子句WHERE子句。这些子句有两种使用方式,即以AND子句或OR子句的方式使用。WHERE子句中的子句的关键字,也称为逻辑操作符(logical operator)。AND操作符:
SELECT prod_id, prod_price, prod_nameFROM ProductsWHERE vend_id = 'DLL01' AND prod_price <= 4;
OR操作符: //////////////////////////////////暂停\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\