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

正文內(nèi)容

oracle第13章sql語(yǔ)言基礎(chǔ)(編輯修改稿)

2025-03-04 11:03 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 比較。成對(duì)比較要求多個(gè)列的數(shù)據(jù)必須同時(shí)匹配,而非成對(duì)比較則不要求多個(gè)列的數(shù)據(jù)同時(shí)匹配。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ? 查詢與 7844號(hào)員工的工資、工種都相同的員工的信息。 ? SELECT empno,ename,sal,job FROM emp ? WHERE (sal,job)=(SELECT sal,job FROM emp ? WHERE empno=7844)。 ? 查詢與 10號(hào)部門某個(gè)員工工資相同,工種也與 10號(hào)部門的某個(gè)員工相同的員工的信息。 ? SELECT empno,ename,sal,job FROM emp ? WHERE sal IN (SELECT sal FROM emp WHERE ? deptno=10) AND job IN (SELECT job FROM emp ? WHERE deptno=10)。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 5)多行多列子查詢 ?多行多列子查詢是指子查詢返回多行數(shù)據(jù),并且是多列數(shù)據(jù)。 ?例如,查詢與 10號(hào)部門某個(gè)員工的工資和工種都相同的員工的信息,語(yǔ)句為 ? SELECT empno,ename,sal,job FROM emp ? WHERE (sal,job) IN( ? SELECT sal,job FROM emp WHERE deptno=10)。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 6)相關(guān)子查詢 ?子查詢?cè)趫?zhí)行時(shí)并不需要外部父查詢的信息,這種子查詢稱為無(wú)關(guān)子查詢。 ?如果子查詢?cè)趫?zhí)行時(shí)需要引用外部父查詢的信息,那么這種子查詢就稱為相關(guān)子查詢。 ?在相關(guān)子查詢中經(jīng)常使用 EXISTS或 NOT EXISTS謂詞來(lái)實(shí)現(xiàn)。如果子查詢返回結(jié)果,則條件為 TRUE,如果子查詢沒(méi)有返回結(jié)果,則條件為 FALSE。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ?查詢沒(méi)有任何員工的部門號(hào)、部門名。 ? SELECT deptno,dname,loc FROM dept ? WHERE NOT EXISTS(SELECT * FROM emp WHERE ? =)。 ?查詢比本部門平均工資高的員工信息。 ? SELECT empno,ename,sal ? FROM emp e ? WHERE sal( SELECT avg(sal) FROM emp WHERE ? deptno=)。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 7)在 FROM子句中使用子查詢 ?當(dāng)在 FROM子句中使用子查詢時(shí),該子查詢被作為視圖對(duì)待,必須為該子查詢指定別名。 ? 查詢各個(gè)員工的員工號(hào)、員工名及其所在部門平均工資。 ? SELECT empno,ename, FROM emp, ? (SELECT deptno,avg(sal) avgsal FROM emp GROUP ? BY deptno) d WHERE =。 ? 查詢各個(gè)部門號(hào)、部門名、部門人數(shù)及部門平均工資。 ? SELECT ,dname, , ? FROM dept,(SELECT deptno,count(*)amount, ? avg(sal) avgsal FROM emp GROUP BY deptno)d ? WHERE =。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 8)在 DDL語(yǔ)句中使用子查詢 ?可以在 CREATE TABLE和 CREATE VIEW語(yǔ)句中使用子查詢來(lái)創(chuàng)建表和視圖。 ? CREATE TABLE emp_subquery ? AS ? SELECT empno,ename,sal FROM emp。 ? CREATE VIEW emp_view_subquery ? AS ? SELECT * FROM emp WHERE sal2023。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 9)使用 WITH子句的子查詢 ?如果在一個(gè) SQL語(yǔ)句中多次使用同一個(gè)子查詢,可以通過(guò) WITH子句給子查詢指定一個(gè)名字,從而可以實(shí)現(xiàn)通過(guò)名字引用該子查詢,而不必每次都完整寫出該子查詢。 ?查詢?nèi)藬?shù)最多的部門的信息。 ? SELECT * FROM dept ? WHERE deptno IN ( ? SELECT deptno FROM emp GROUP BY deptno ? HAVING count(*)=ALL( ? SELECT count(*) FROM emp GROUP BY deptno) ? )。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ?相同的子查詢連續(xù)出現(xiàn)了兩次,因此可以按下列方式編寫查詢語(yǔ)句。 ? WITH deptinfo AS(SELECT deptno,count(*) num ? FROM emp GROUP BY deptno) ? SELECT * FROM dept WHERE deptno IN(SELECT ? deptno FROM deptinfo WHERE num=(SELECT ? max(num) FROM deptinfo) ? )。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 合并查詢 ?語(yǔ)法 ? UNION ? INTERSECT ? MINUS Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ?語(yǔ)法: SELECT query_statement1 [UNION|UNION ALL|INTERSECT|MINUS] SELECT query_statement2。 ?注意: ? 當(dāng)要合并幾個(gè)查詢的結(jié)果集時(shí),這幾個(gè)查詢的結(jié)果集必須具有相同的列數(shù)與數(shù)據(jù)類型。 ? 如果要對(duì)最終的結(jié)果集排序,只能在最后一個(gè)查詢之后用 ORDER BY子句指明排序列。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 1) UNION ? UNION運(yùn)算符用于獲取幾個(gè)查詢結(jié)果集的并集,將重復(fù)的記錄只保留一個(gè),并且默認(rèn)按第一列進(jìn)行排序。 ? 查詢 10號(hào)部門的員工號(hào)、員工名、工資和部門號(hào)以及工資大于 2023的所有員工的員工號(hào)、員工名、工資和部門號(hào),語(yǔ)句為 ? SELECT empno,ename,sal,deptno ? FROM emp WHERE deptno=10 ? UNION ? SELECT empno,ename,sal,deptno ? FROM emp WHERE sal2023 ? ORDER BY deptno。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ? 如果要保留所有的重復(fù)記錄,則需要使用 UNION ALL運(yùn)算符。 ? SELECT empno,ename,sal,deptno ? FROM emp WHERE deptno=10 ? UNION ALL ? SELECT empno,ename,sal,deptno ? FROM emp WHERE sal2023 ? ORDER BY deptno。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 2) INTERSECT ? INTERSECT用于獲取幾個(gè)查詢結(jié)果集的交集,只返回同時(shí)存在于幾個(gè)查詢結(jié)果集中的記錄。同時(shí),返回的最終結(jié)果集默認(rèn)按第一列進(jìn)行排序。 ? 查詢 30號(hào)部門中工資大于 2023的員工號(hào)、員工名、工資和部門號(hào),語(yǔ)句為: ? SELECT empno,ename,sal,deptno ? FROM emp WHERE deptno=30 ? INTERSECT ? SELECT empno,ename,sal,deptno ? FROM EMP WHERE sal2023。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 3) MINUS ? MINUS用于獲取幾個(gè)查詢結(jié)果集的差集,即返回在第一個(gè)結(jié)果集中存在,而在第二個(gè)結(jié)果集中不存在的記錄。同時(shí),返回的最終結(jié)果集默認(rèn)按第一列進(jìn)行排序。 ? 查詢 30號(hào)部門中工種不是 “ SALESMAN”的員工號(hào)、員工名和工種名稱,語(yǔ)句為: ? SELECT empno,ename,job ? FROM emp WHERE deptno=30 ? MINUS ? SELECT empno,ename,job ? FROM EMP WHERE job=39。SALESMAN39。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 數(shù)據(jù)操縱 ?插入數(shù)據(jù) ?修改數(shù)據(jù) ? MERGE語(yǔ)句 ?刪除數(shù)據(jù) Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 插入數(shù)據(jù) ?插入 單行記錄 ?利用子查詢插入數(shù)據(jù) ?向多個(gè)表中插入數(shù)據(jù) Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 1) 插入 單行記錄 ? 語(yǔ)法 ? INSERT INTO table_name|view_name ? [(column1[,column2… ])] ? VALUES(value1[,values, … ]) ? 注意 ? 如果在 INTO子句中沒(méi)有指明任何列名,則 VALUES子句中列值的個(gè)數(shù)、順序、類型必須與表中列的個(gè)數(shù)、順序、類型相匹配。 ? 如果在 INTO子句中指定了列名,則 VALUES子句中提供的列值的個(gè)數(shù)、順序、類型必須與指定列的個(gè)數(shù)、順序、類型按位置對(duì)應(yīng)。 ? 向表或視圖中插入的數(shù)據(jù)必須滿足表的完整性約束。 ? 字符型和日期型數(shù)據(jù)在插入時(shí)要加單引號(hào)。日期類型數(shù)據(jù)需要按系統(tǒng)默認(rèn)格式輸入,或使用 TO_DATE函數(shù)進(jìn)行日期轉(zhuǎn)換。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ? 向 dept表中插入一行記錄。 ? INSERT INTO dept VALUES(50, 39。IM39。, 39。dalian39。)。 ? 向 emp表中插入一行記錄。 ? INSERT INTO emp(empno,ename,sal,hiredate) ? VALUES(1234, 39。JOAN39。,2500, 39。204月 202339。)。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ( 2)利用子查詢插入數(shù)據(jù) ?語(yǔ)法 ? INSERT INTO table_name|view_name ? [(column1[,column2,… ]) ? subquery。 ?注意 ? INTO子句中指定的列的個(gè)數(shù)、順序、類型必須與子查詢中列的個(gè)數(shù)、順序和類型相匹配。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ? 統(tǒng)計(jì)各個(gè)部門的部門號(hào)、部門最高工資和最低工資,并將統(tǒng)計(jì)的結(jié)果寫入到表 emp_salary(假設(shè)該表已經(jīng)創(chuàng)建)中。 ? INSERT INTO emp_salary ? SELECT deptno,max(sal),min(sal) FROM emp ? GROUP BY deptno。 ? 向 emp表中插入一行記錄,其員工名為 FAN,員工號(hào)為 1235,其他信息與員工名為 SCOTT的員工信息相同。 ? INSERT INTO emp ? SELECT 1235, 39。FAN39。,job,mgr,hiredate,sal,m,deptno ? FROM emp WHERE ename=39。SCOTT39。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ? 如果要將大量數(shù)據(jù)插入表中,可以利用子查詢直接裝載的方式進(jìn)行。由于直接裝載數(shù)據(jù)的操作過(guò)程不寫入日志文件,因此數(shù)據(jù)插入操作的速度大大提高。 ? 利用子查詢裝載數(shù)據(jù)語(yǔ)法為: ? INSERT /*+APPEND*/ INTO ? table_name|view_name[(column1[,column2,… ]) ? subquery。 ? 復(fù)制 emp表中 empno, ename, sal, deptno四列的值,并插入到 new_emp表中,語(yǔ)句為: ? INSERT /*+APPEND*/ INTO ? new_emp(empno,ename,sal,deptno) ? SELECT empno,ename,sal,deptno from emp。 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 修改數(shù)據(jù) ?基本語(yǔ)法 ?修改單行記錄 ?修改多行記錄 ?帶有子查詢的修改 Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程 ? 基本語(yǔ)法 ? UPDATE table_name|view_name ? SET column1=value1[,column2=value2… ] ? [WHERE condition] ? 修改單條記錄 ? UPDATE emp SET sal=sal+100,m=200 ? WHERE empno=7844。 ? 修改多條記錄 ? UPD
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1