據(jù)庫1)
1. 執(zhí)行順序:FROM ON JOIN WHERE GROUP BY HAVING SELECT ORDER BY2. 模糊查詢:LIKE %(通配符) 如LIKE %A%LIKE _(占位符) 如LIKE A__3.INNOT INJOB IN (SALESMAN,CLERK)4.BETWEEN ... AND ...NOT BETWEEN... AND ...5.查詢?nèi)ブ?DISTINCTSELECT DISTINCT DEPTNO,JOB FROM EMP6.查詢排序 ORDER BYASC 升序可以省略默認由小到大排序即升序排列DESC 降序SELECT EMPNO,ENAME,DEPTNO,SAL FROM EMPORDER BY DEPTNO,SAL DESC;7. 關(guān)鍵詞SELECTFROMWHEREGROUP BYHAVINGORDER BYVARCHAR2NUMBERDATESUM()、和AVG()、平均值COUNT()、總個數(shù)MAX()、最大值MIN()、最小值MEDIAN() 中間值OVER() 開窗函數(shù):SELECT EMPNO,ENAME,SAL,SUM(SAL)OVER() FROM EMP;8. 去nullNVL(COMM,0)9. 約束PRIMARY KEY 主鍵約束NOT NULL 非空約束DEFAULT 0 無約束,默認為0DEFAULT SYSDATE 添加系統(tǒng)時間為默認入職時間10.①加別名 ASSELECT SUM(SAL) AS 合計工資,AVG(SAL) 平均工資, -- 這里省略了 ASCOUNT(*) AS CT, -- 工作中表頭和表名盡量用英文表示MAX(SAL) AS MAX_SAL1, -- 可以使用英文 下劃線 數(shù)字表示注意不能數(shù)字開頭FROM EMP②虛擬列 ASCREATE TABLE PRORE(ID NUMBER,名稱 VARCHAR2(20),數(shù)量 NUMBER,單價 NUMBER,金額 AS (數(shù)量 * 單價), -- 虛擬列由數(shù)量乘以單價得來其他名稱 AS (名稱||國產(chǎn)) -- 虛擬列由名稱拼接國產(chǎn)得來);SELECT * FROM PRORE;11. ASCII碼12. 刪除語句----刪除表結(jié)構(gòu)和數(shù)據(jù)DORP DDL----刪除指定條件數(shù)據(jù)語句DELETE DML----刪除所有數(shù)據(jù)語句TRUNCATE DDL不能回滾13.① CONSTRAINT 限制② COMMIT; 提交 TCL 語句③ ROLLBACK; 回滾④ COMMENT 注釋COMMENT ON TABLE EMP240515 IS 這是一個員工表用于存儲員工的相關(guān)信息;--給表添加注釋COMMENT ON COLUMN EMP240515.EMPNO IS 這是一個員工號;--給EMMPNO添加注釋COMMENT ON COLUMN EMP240515.HIREDATE IS 默認獲取系統(tǒng)時間為入職時間;--給HIREDATE添加注釋14. 集合UNION ALL(并集)UNION(并集)INTERSECT(交集)MINUS(補集)SELECT DEPTNO FROM DEPT --4 AMINUSSELECT DEPTNO FROM EMP --14 B A-B15. 分組拼接明細數(shù)據(jù): LISTAGGSELECT JOB,COUNT(*),SUM(SAL),LISTAGG(ENAME, , )WITHIN GROUP(ORDER BY SAL) AS ENAME,LISTAGG(SAL, )WITHIN GROUP(ORDER BY SAL) AS SALFROM EMPGROUP BY JOB-- MYSQL分組拼接明細數(shù)據(jù)SELECT JOB,GROUP_CONCAT(ENAME SEPARATOR ,)FROM EMPGROUP BY JOB;ORACLE函數(shù)分為系統(tǒng)函數(shù)和自定義函數(shù)--系統(tǒng)函數(shù)又分為單行函數(shù)、聚合函數(shù)、開窗函數(shù)/分析函數(shù)--單行函數(shù)又分為數(shù)字函數(shù)、字符函數(shù)、日期函數(shù)--數(shù)字函數(shù)①ABS() --取絕對值②ROUND(X,Y) --對數(shù)字X保留Y位小數(shù)并進行四舍五入SELECT ROUND(3.146,2) FROM DUAL; --3.15SELECT ROUND(3.141) FROM DUAL; --3③TRUNC(X,Y) --對數(shù)字X保留Y位小數(shù)但不會進行 四舍五入SELECT TRUNC(3.146,2) FROM DUAL; --3.14SELECT TRUNC(3.646) FROM DUAL; --3④POWER(X,Y) --返回X的Y次方求冪SELECT POWER(3,2) FROM DUAL; --9⑤MOD(X,Y) --對X取Y的余數(shù)SELECT MOD(5,2) FROM DUAL ; --1--日期函數(shù)--日期-日期天數(shù)系統(tǒng)時間:SYSDATESELECT SYSDATE - TO_DATE(2026-8-1,YYYY-MM-DD) FROM DUAL;--日期數(shù)字日期SELECT SYSDATE 7 FROM DUAL; --2026/8/31 9:37:12①ROUND(日期,截取單位)SELECT ROUND(TO_DATE(20260824133423,YYYYMMDDHH24MISS),DD) FROM DUAL; --2026/8/25SELECT ROUND(TO_DATE(20260813,YYYYMMDD),MM) FROM DUAL; --2026/8/01SELECT ROUND(TO_DATE(20260413,YYYYMMDD),YYYY) FROM DUAL;--2026/1/01②TRUNC(日期,截取單位) --用法跟ROUND一致唯一區(qū)別是TRUNC不會四舍五入③ADD_MONTHS(日期,數(shù)字) --返回幾個月之后的當(dāng)前時間SELECT ADD_MONTHS(SYSDATE,2) FROM DUAL; --2026/10/24 9:45:55SELECT ADD_MONTHS(SYSDATE,-2) FROM DUAL; --2026/6/24 9:46:10④LAST_DAY(日期) --返回日期對應(yīng)月份的最后一天SELECT LAST_DAY(SYSDATE) FROM DUAL;⑤MONTHS_BETWEEN(日期,日期) --返回兩個日期相差的月份數(shù)SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE(20260521,YYYYMMDD)) FROM DUAL; --3.11084826762246--字符函數(shù)LENGTH() --返回字符串的長度SELECT LENGTH(SCOTT) FROM DUAL; --5--去空值時好用REPLACE(X,Y,Z) --將字符串X中的Y替換成Z,Z不寫默認替換成空值SELECT REPLACE(SCOTT,S,T) FROM DUAL;INSTR(X,Y,Z,M) --查找字符串X中字符Y的位置從第Z為開始找找第M次出現(xiàn)Y的位置--示例查找字符串ABCDEFCG中第一次出現(xiàn)C的位置SELECT INSTR(ABCDEFCG,C,1,1) FROM DUAL; --3SELECT INSTR(ABCDEFCG,C,4,2) FROM DUAL; --0SUBSTR(X,Y,Z)--截取函數(shù)對字符串X進行截取從第Y為開始截--截取Z為長度,Y為負數(shù)時表示從右往左數(shù)Z不寫表示截取第Y為之后的所有字符SELECT SUBSTR(20260824,1,4) FROM DUAL;--2026⑥CONCAT(X,Y) --拼接字符串X和Y,一次只能拼接兩個參數(shù)SELECT CONCAT(2026,08) FROM DUAL;--202608SELECT CONCAT(CONCAT(2026,08),24) FROM DUAL;--20260824⑦|| --管道符也可以拼接多個字符串WM_CONCAT() --拼接整個字段的值默認用逗號拼接SELECT WM_CONCAT(ENAME) FROM EMP;將EMP表的工作用橫杠-拼接起來并且不能重復(fù)--輸出CLERK-SALESMAN-MANAGER-ANALYST-PRESIDENTSELECT REPLACE(WM_CONCAT(DISTINCT JOB),,,-) FROM EMPUPPER() 小寫轉(zhuǎn)大寫LOWER() 大寫轉(zhuǎn)小寫TRIM() --去左右空格SELECT TRIM( A B C ) FROM DUAL; --A B CLTRIM() --去左空格SELECT LTRIM( A B C ) FROM DUAL; --A B CRTRIM() --去右空格SELECT RTRIM( A B C ) FROM DUAL; -- A B C--函數(shù)總結(jié)分析函數(shù)/開窗函數(shù)可以同時輸出明細數(shù)據(jù)和聚合值主要有聚合型和非聚合型--聚合型SUM/AVG/MAX/MIN/COUNT()OVER([PARTITION BY ...][ORDER BY ...])--加了ORDER BY 有累計效果--非聚合型RATIO_TO_REPORT()OVER([PARTITION BY ...]) --占比函數(shù)FIRST_VALUE()OVER([PARTITION BY ...][ORDER BY ...]) --取第一個值NTILE()OVER([PARTITION BY ...][ORDER BY ...]) --切片函數(shù)WM_CONCAT()OVER([PARTITION BY ...][ORDER BY ...]) --拼接函數(shù)--排名ROW_NUMBER()OVER([PARTITION BY ...][ORDER BY ...]) --不考慮并列1 2 3 4RANK()OVER([PARTITION BY ...][ORDER BY ...]) --考慮并列并空出排名1 2 2 4DENSE_RANK()OVER([PARTITION BY ...][ORDER BY ...]) --考慮并列不會空出排名1 2 2 3--偏移LAG()OVER([PARTITION BY ...][ORDER BY ...]) --向上偏移LEAD()OVER([PARTITION BY ...][ORDER BY ...]) --向下偏移--注意分析函數(shù)不能直接用在WHERE之后一般分析函數(shù)不會跟GROUP BY 一起使用