资源描述:
《sql中的select(zero)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQL 里面最常用的命令是 SELECT 语句,用于检索数据。语法是: SELECT [ ALL
2、 DISTINCT [ ON ( expression [, ...] ) ] ] *
3、 expression [ AS output_name ] [, ...] [ INTO [ TEMPORARY
4、 TEMP ] [ TABLE ] new_table ] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING con
5、dition [, ...] ] [ { UNION
6、 INTERSECT
7、 EXCEPT [ ALL ] } select ] [ ORDER BY expression [ ASC
8、 DESC
9、 USING operator ] [, ...] ] [ FOR UPDATE [ OF class_name [, ...] ] ] [ LIMIT { count
10、 ALL } [ { OFFSET
11、 , } start ]] 现在我们将通过不同的例子演示 SELECT 语句复杂的语法。用于这些例子的表在 供应商和部件数据库 里定义。
12、 1.4.1.1. 简单的 Select这里是一些使用 SELECT 语句的简单例子: Example 1-4. 带有条件的简单查询要从表 PART 里面把字段 PRICE 大于 10 的所有记录找出来, 我们写出下面查询: SELECT * FROM PART WHERE PRICE > 10; 然后得到表: PNO
13、 PNAME
14、 PRICE-----+---------+-------- 3
15、 Bolt
16、 15 4
17、 Cam
18、 25 在 SELECT语句里使用 "*" 将检索出表中的所有属性。 如果我们只希望从表
19、PART 中检索出属性 PNAME 和 PRICE, 我们使用下面的语句: SELECT PNAME, PRICE FROM PART WHERE PRICE > 10; 这回我们的结果是: PNAME
20、 PRICE --------+-------- Bolt
21、 15 Cam
22、 25 请注意 SQL 的 SELECT 语句对应关系演算里面的 "projection" (
23、映射),而不是 "selection"(选择)(参阅 关系演算 获取详细信息)。 WHERE 子句里的条件也可以用关键字 OR,AND,和 NOT 逻辑地连接起来: SELECT PNAME, PRICE FROM PART WHERE PNAME = 'Bolt' AND (PRICE = 0 OR PRICE <= 15); 这样将生成下面的结果: PNAME
24、 PRICE--------+-------- Bolt
25、 15 目标列表和 WHERE 子句里可以使用算术操作。例如, 如果我们想知道如果我们买两个部件的话要多
26、少钱, 我们可以用下面的查询: SELECT PNAME, PRICE * 2 AS DOUBLE FROM PART WHERE PRICE * 2 < 50; 这样我们得到: PNAME
27、 DOUBLE--------+--------- Screw
28、 20 Nut
29、 16 Bolt
30、 30 请注意在关键字 AS 后面的 DOUBLE 是第二个列的新名字。 这个技巧可以用于目标列表里的每个元素, 给它们赋予一个在结果列中显示的新的标题。 这个新的标题通常称为别名。这个别名不能在该查询的其他地方使用。 1.4.1.
31、2. Joins(连接)下面的例子显示了 SQL 里是如何实现连接的。 要在共同的属性上连接三个表 SUPPLIER,PART 和 SELLS, 我们通常使用下面的语句: SELECT S.SNAME, P.PNAME FROM SUPPLIER S, PART P, SELLS SE WHERE S.SNO = SE.SNO AND P.PNO = SE.PNO; 而我们得到的结果是: SNAME
32、 PNAME-------+---