【文章內(nèi)容簡介】
T * FROM customers WHERE customer_id BETWEEN 1 AND 3。 Oracle Database 10gSQL Master SQL and PL/SQL 118 author Kevin Liu 使用 WHERE子句過濾行 ? 使用邏輯操作符 操作符 說明 x AND y 當(dāng) x和 y都為 true時(shí),返回 true x OR y 當(dāng) x和 y中有一個(gè)為 true是,返回 true NOT x 如果 x為 false,則返回 true,反之亦然 – 從 customers表中檢索滿足下列兩個(gè)條件的行: – dob列大于 1970年 1月 1日 – customer_id列大于 3 – 從 customers表中檢索滿足下列兩個(gè)條件之一的行: – dob列大于 1970年 1月 1日 – customer_id列大于 3 Oracle Database 10gSQL Master SQL and PL/SQL 119 author Kevin Liu 使用 WHERE子句過濾行 ? 理解操作符的優(yōu)先級(jí) – AND優(yōu)先級(jí)要高于 OR – 比較運(yùn)算符的優(yōu)先級(jí)高于 AND – 可以圓括號(hào)來改變優(yōu)先級(jí)順序 從 customers表中檢索符合以下兩個(gè)條件之一的行: – dob列的值大于 1970年 1月 1日 – customer_id列的值小于 2,而且電話號(hào)碼是以 1211結(jié)尾。 SELECT * FROM customers WHERE dob 39。1970010139。 OR customer_id 2 AND phone LIKE 39。%121139。 Oracle Database 10gSQL Master SQL and PL/SQL 120 author Kevin Liu 使用 ORDER BY子句對(duì)行進(jìn)行排序 ? 默認(rèn)按升序排列 ASC SELECT * FROM customers ORDER BY last_name。 SELECT * FROM customers ORDER BY first_name ASC,last_name DESC。 SELECT customer_id, first_name, last_name FROM customers ORDER BY 1。 Oracle Database 10gSQL Master SQL and PL/SQL 121 author Kevin Liu 執(zhí)行使用兩個(gè)表的 SELECT語句 SELECT name, product_type_id FROM products WHERE product_id = 1。 SELECT name FROM product_types WHERE product_type_id = 1。 SELECT name,name FROM products, product_types WHERE product_type_id = product_type_id 。 演示正確的寫法 ?使用表別名 ?笛卡爾積 Oracle Database 10gSQL Master SQL and PL/SQL 122 author Kevin Liu 執(zhí)行使用多于兩個(gè)表的 SELECT語句 連接可以用于連接任意個(gè)表。下面這個(gè)公式可以計(jì)算出 WHERE子句中需要的連接個(gè)數(shù): – 查詢中使用的表的總個(gè)數(shù)減去 1。 實(shí)現(xiàn)以下要求的語句: – 已經(jīng)購買過產(chǎn)品的顧客 – 顧客的姓名 – 顧客購買的產(chǎn)品名 – 產(chǎn)品類型名 Oracle Database 10gSQL Master SQL and PL/SQL 123 author Kevin Liu 理解連接條件和連接類型 根據(jù)連接中使用的操作符的不同,連接條件可以分為兩類: – 等連接 = – 不等連接 BETWEEN 連接本身的三種類型: – 內(nèi)連接( inner join),只有當(dāng)連接中的列包含滿足連接條件時(shí)才會(huì)返回一行。 – 外連接( outer join),即使連接條件中的一列包含空值也會(huì)返回一行。 – 自連接( self joint),返回連接到同一個(gè)表中的行。 Oracle Database 10gSQL Master SQL and PL/SQL 124 author Kevin Liu 理解連接條件和連接類型 ? 理解外連接 – ( +),即使連接中的列包含一個(gè)空值,外連接也會(huì)返回一行。 SELECT , FROM products p, product_types pt WHERE = (+) 注:雖然可以將外連接操作符放在連接操作符的任意一邊,但是通常都應(yīng)該將其放在想檢索的行中包含空值的列相反的一邊