oracle 關係型資料庫 註釋:面對大型數據處理,市場占有率40%多(但是目前正往分散式轉換) 故事:本來一臺大型電腦才能處理的數據,美國科學家用100台家用電腦連接,成功處理了數據。。 tables 表格 (emp:員工管理;dept:部門;salgrade: 工資等級) 註釋 單行註釋:-- ...
oracle 關係型資料庫
註釋:面對大型數據處理,市場占有率40%多(但是目前正往分散式轉換)
故事:本來一臺大型電腦才能處理的數據,美國科學家用100台家用電腦連接,成功處理了數據。。
tables 表格
(emp:員工管理;dept:部門;salgrade: 工資等級)
註釋
單行註釋:-- 標題
多行註釋:/*內容 */
語句
--------------1.起名方式:
1空格+name2 AS+名字 2.1AS + " name"
SELECT empno ,ename,hiredate 入職年 FROM emp
SELECT empno ,ename,hiredate AS 入職年1Y FROM emp
SELECT empno ,ename,hiredate AS "year" FROM emp
--------------2.列的連接
SELECT empno||'是誰的'||ename,hiredate 入職年 FROM emp
--------------3.distinct去重查詢--WHERE過濾查詢
練習:--查詢工作是經理的人;--查詢工資大於3000的人
SELECT ename FROM emp WHERE JOB='MANAGER'
SELECT * FROM emp WHERE sal>3000
---------------4.多條件AND,OR, <>連接
SELECT * FROM emp WHERE DEPTNO=10 AND JOB='MANAGER'
SELECT * FROM emp WHERE DEPTNO=10 OR JOB='MANAGER'
SELECT * FROM emp WHERE DEPTNO<>10
---------------5. ....之間 :between and;--OR OR;--job in
SELECT * FROM emp WHERE DEPTNO between 10 and 20
SELECT * FROM emp WHERE DEPTNO =10 OR DEPTNO =20 OR DEPTNO =30
SELECT * FROM emp WHERE JOB IN( 'MANAGER','ANALYST')
-- ------------6.內容是否為空,IS NULL ; IS NOT NULL
SELECT * FROM EMP WHERE COMM IS NULL --jian獎金是否為空
-------------- 7.排序 order by lie desc 降序 asc
--工資從大到小
SELECT * FROM emp ORDER BY sal DESC
--入職時間
SELECT * FROM emp ORDER BY hiredate ASC
--部門升序,工資降序
SELECT * FROM EMP ORDER BY DEPTNO ASC ,sal DESC
--以年新
SELECT ename,sal*12 FROM EMP ORDER BY sal *12 DESC
************綜合練習標準寫法
--練習: 查詢一下deptno20 ;SAL>2000 ; HIREDATE
SELECT
ENAME 名字 ,
EMPNO 編號,
SAL 工資,
hiredate 入職年
FROM
EMP
WHERE DEPTNO=20
AND SAL>2000
ORDER BY
hiredate
ASC
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------1.模糊查詢 like 和 not like :
SELECT ENAME FROM EMP WHERE ENAME LIKE '%S%'
SELECT * FROM EMP WHERE ENAME NOT LIKE '%S%'
------查詢名字或者工作帶有S的
SELECT * FROM EMP WHERE ENAME LIKE '%S%' OR JOB LIKE '%S%'
SELECT * FROM EMP WHERE ENAME || JOB LIKE '%S%'
--------------2.字元函數,大小型轉換
SELECT LOWER (ename) FROM EMP
SELECT UPPER (ename) FROM EMP
--首字母大寫
SELECT INITCAP (ename)from emp
--查名字中含有s的(包括大小寫)
--------------字元串的拼接
SELECT CONCAT(CONCAT (ENAME,DEPTNO),HIREDATE)FROM EMP
------------求長度
SELECT ENAME ,LENGTH(ename) FROM EMP
SELECT ENAME FROM EMP WHERE LENGTH(ename)=5
--substr(列,起始位置,截取長度)
--substr(列,起始位置)
SELECT ename,SUBSTR(ename,2 ,2) FROM emp
SELECT ename,SUBSTR(ename,2) FROM emp
----------------截取後四位
SELECT ename,SUBSTR(ename,-4) FROM emp
--------------dual 偽表
SELECT SUBSTR('18342214598',1,3 ) ||'****'||SUBSTR('18342214598',-4 ) FROM dual
--------------replace 替換(
--名字中有A的替換成B
--準備對象,A替換成B
SELECT REPLACE (ename ,'A','B') FROM EMP
--脫敏
SELECT REPLACE ('18342214598',SUBSTR('18342214598',4,4),'****') FROM dual
--查找名字中沒有S的人
SELECT * FROM EMP WHERE ENAME NOT LIKE '%S%'
SELECT * FROM EMP WHERE INSTR (ENAME,'S') =0 --0沒有S =1 表示以S開頭
------------------trim 去首尾字母
SELECT ename ,TRIM ('S' FROM ename) FROM emp
--左右填充
SELECT ENAME ,SAL,LPAD(SAL,6,'0') FROM emp
SELECT ename,sal, RPAD(sal,6,'a') FROM emp