freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracle11gdatabasesql語(yǔ)言基礎(chǔ)(編輯修改稿)

2024-11-17 15:17 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 多行子查詢匹配 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table)。 Exists ? EXISTS 測(cè)試子查詢是否具有相關(guān)的數(shù)據(jù)行 ? 如果找到相關(guān)數(shù)據(jù)行 : 子查詢停止運(yùn)行 返回結(jié)果為 TRUE ? 如果沒(méi)有找到相關(guān)數(shù)據(jù)行 : 返回結(jié)果為 FALSE 繼續(xù)子查詢,直到子查詢結(jié)束 NOT Exists 和 NOT in ? 如果子查詢返回 NULL值,則 NOT IN 返回假 ? 當(dāng)沒(méi)有 null值時(shí) NOT in 與 not exists效果相同 SELECT department_id, department_name FROM departments d WHERE NOT EXISTS (SELECT 39。X39。 FROM employees WHERE department_id = )。 查找哪個(gè)部門沒(méi)有員工 (表 employees中有一行數(shù)據(jù)的 department_id為 null) SELECT department_id, department_name FROM departments d WHERE department_id NOT IN (SELECT department_id FROM employees)。 No rows selected. IN 、 ANY 、 ALL ? ANY 意謂著小于子查詢返回結(jié)果的最大值 ? ANY意謂著大于子查詢結(jié)果的最小值 ? =ANY 和 IN的效果相同 ? ANY中的子查詢?nèi)绻祷?0行,則 ANY , ANY , =ANY, !=ANY , =ANY等操作都判斷為假,主查詢不返回?cái)?shù)據(jù) SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary ANY (SELECT salary FROM employees WHERE job_id = 39。IT_PROG39。) AND job_id 39。IT_PROG39。 IN 、 ANY 、 ALL ? ALL 意謂著小于子查詢返回結(jié)果的最小值 ? ALL意謂著大于子查詢結(jié)果的最大值 ? ALL中的子查詢?nèi)绻祷?0行,則 ALL , ALL , =ALL, !=ALL , =ALL等操作都判斷為真,主查詢返回符合其他條件的數(shù)據(jù) SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary ALL (SELECT salary FROM employees WHERE job_id = 39。IT_PROG39。) AND job_id 39。IT_PROG39。 集合操作符 Set Operators UNION/UNION ALL A B A B A B INTERSECT A B MINUS 集合操作符說(shuō)明 ? 兩個(gè)查詢語(yǔ)句中引用的列數(shù)量要一致 ? 第二個(gè)查詢的列的數(shù)據(jù)類型須要與第一個(gè)查詢的列一一對(duì)應(yīng) ? 可以使用括號(hào)改變執(zhí)行順序 ? 除 UNION ALL外,重復(fù)行只顯示一次 ? 列名的顯示以第一個(gè)查詢?yōu)闇?zhǔn) ? 默認(rèn)情況下,除 UNION ALL外,查詢結(jié)果以升序排序 UNION SELECT employee_id, job_id FROM employees UNION SELECT employee_id, job_id FROM job_history。 … … UNION ALL SELECT employee_id, job_id, department_id FROM employees UNION ALL SELECT employee_id, job_id, department_id FROM job_history ORDER BY employee_id。 … … INTERSECT SELECT employee_id, job_id FROM employees INTERSECT SELECT employee_id, job_id FROM job_history。 MINUS SELECT employee_id FROM employees MINUS SELECT employee_id FROM job_history。 … 列數(shù)量與類型匹配 SELECT location_id, department_name Department, TO_CHAR(NULL) Warehouse location FROM departments UNION SELECT location_id, TO_CHAR(NULL) Department, state_province FROM locations。 集合操作符與 ORDER BY ? ORDER BY 只能在整個(gè)查詢的最后面出現(xiàn)一次 ? ORDER BY 中指定的列,必須在第一個(gè)查詢語(yǔ)句中指定的列 ? 默認(rèn)情況下,第一個(gè)查詢語(yǔ)句中的第一個(gè)列作為返回結(jié)果的排序依據(jù),順序?yàn)樯? 多列子查詢 MultipleColumn Subqueries 主查詢 WHERE (MANAGER_ID, DEPARTMENT_ID) IN 子查詢結(jié)果 100 90 102 60 124 50 多列子查詢 MultipleColumn Subqueries ? 不成對(duì)比較 ? 成對(duì)比較 成對(duì)比較子查詢 返回與名字為 John的員工在同一個(gè)部門,且同一個(gè)領(lǐng)導(dǎo)的員工 SELECT employee_id, manager_id, department_id FROM empl_demo WHERE (manager_id, department_id) IN (SELECT manager_id, department_id FROM empl_demo WHERE first_name = 39。John39。) AND first_name 39。John39。 不成對(duì)比較子查詢 返回與名字為 John的員工中任意一個(gè)領(lǐng)導(dǎo)相符和任意一個(gè)部門相符的員工 當(dāng)名字為 John多于一人時(shí),與成對(duì)比較子查詢的返回結(jié)果不同。 SELECT employee_id, manager_id, department_id FROM empl_demo WHERE manager_id IN (SELECT manager_id FROM empl_demo WHERE first_name = 39。John39。) AND department_id IN (SELECT department_id FROM empl_demo WHERE first_name = 39。John39。) AND first_name 39。John39。 關(guān)聯(lián)子查詢 關(guān)聯(lián)子查詢用于行與行的處理,關(guān)聯(lián)子查詢對(duì)每個(gè)數(shù)據(jù)行都要進(jìn)行 一次。 GET 主查詢 fetch到一行數(shù)據(jù) EXECUTE 子查詢根據(jù)這行數(shù)據(jù)的值進(jìn)行運(yùn)算 USE 根據(jù)子查詢的結(jié)果,決定是否返回這行數(shù)據(jù) 關(guān)聯(lián)子查詢 vs 嵌套子查詢 嵌套子查詢: 子查詢首先執(zhí)行,且執(zhí)行一次,返回相關(guān)結(jié)果 主查詢使用子查詢返回的結(jié)果進(jìn)行一次運(yùn)算 關(guān)聯(lián)子查詢: 主查詢 fetch到一行數(shù)據(jù) 根據(jù)這行數(shù)據(jù),進(jìn)行子查詢運(yùn)算 根據(jù)子查詢的結(jié)果,決定是否返回這行數(shù)據(jù) 重復(fù)以上過(guò)程,直到主查詢結(jié)束 使用關(guān)聯(lián)子查詢 SELECT column1, column2, ... FROM table1 WHERE column1 operator (SELECT column1, column2 FROM table2 WHERE expr1 = .expr2)。 outer outer SELECT , last_name, FROM employees e WHERE 2 = (SELECT COUNT(*) FROM job_history WHERE employee_id = )。 WITH ? 使用 WITH,可以在查詢中多次引用相同的子查詢 ? 使用 WITH 返回的結(jié)果存放在臨時(shí)空間 ? 在復(fù)雜的查詢中適當(dāng)使用 WITH,可以提高性能 WITH示例 WITH dept_costs AS ( SELECT , SUM() AS dept_total FROM employees e JOIN departments d ON = GROUP BY ), avg_cost AS ( SELECT SUM(dept_total)/COUNT(*) AS dept_avg FROM dept_costs) SELECT * FROM dept_costs WHERE dept_total (SELECT dept_avg FROM avg_cost) ORDER BY department_name。 處理數(shù)據(jù) DML Data Manipulation Language ? DML 的作用 : 添加新的數(shù)據(jù)到表中 修改表中已有的數(shù)據(jù) 刪除表中已有的數(shù)據(jù) ? 事務(wù):由一系列的 DML語(yǔ)句組成,成為一個(gè)邏輯工作單元。事務(wù)中的語(yǔ)句必須全部成功,否則必須全部回退。 INSERT INSERT INTO departments VALUES (100, 39。Finance39。, NULL, NULL)。 INSERT INTO departments (department_id, department_name) VALUES (30, 39。Purchasing39。)。 INSERT INTO sales_reps(id, name, salary, mission_pct) SELECT employee_id, last_name, salary, mission_pct FROM employees INSERT INTO employees (employee_id,hire_date) VALUES (113,SYSDATE)。 多表 INSERT 多表插入有以下種類 : ? 無(wú)條件 INSERT ? 有條件 INSERT ALL ? 旋轉(zhuǎn) (Pivoting) INSERT ? 條件 INSERT FIRST Unconditional INSERT ALL INSERT ALL INTO sal_history VALUES(EMPID,HIREDATE,SAL) INTO mgr_history VALUES(EMPID,MGR,SAL) SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR FROM employees WHERE employee_id 200。 Unconditional INSERT ALL INSERT ALL IN
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1