發表文章

目前顯示的是 3月, 2017的文章

Oracle資料庫培訓課程_L7_SELECT_FROM_WHERE_ORDER_BY考試

圖片
重點: SELECT  --->  step3 FROM ---> step1 WHERE --->step2 ORDER BY --->step4 ====================================================================== EMP(雇員表) DEPT(部門表) 工資等級表(salgrade) ====================================================================== Q1. 請選擇部門30中的所有員工 用 WHERE 搭配  部門編號為30 之限定條件 資料從  雇員表 中提取 Q2. 請列出所有辦事員(CLERK)之姓名,編號和部門編號。 Q3 找出傭金高於薪水的60%之員工。 傭金 --> comm , 薪水 --> sal comm 包含 NULL  !!!! NULL 進行任何數學運算都是NULL Q4 找出部門10中所有經理(MANAGER) 和 部門20 中 所有辦事員(CLERK)之詳細資料。 兩組限定條件 第一條件. deptno = 10 AND job = 'MANAGER' 第二條件. deptno = 20 AND job ='CLERK' Q5.找出部門10中所有經理(Manager), 部門20中所有辦事員(Clerk), 既不是經理又不是辦事員但其薪水大於或等於2000的所有員工之詳細資料。 第一條件. (部門10中所有經理): deptno = 10 AND job = 'MANAGER' 。 第二條件. (部門20中所有辦事員): deptno = 20 AND job = 'CLERK' 。 第三條件. (不是經理又不是辦事員但其薪水大於或等於2000): job NOT IN('MANAGER','CLERK') AND sal >= 2000 。 這三條件需要使用 OR 進行相連接 Q6

Oracle資料庫培訓課程_L6-3_資料排序(數值、日期、員工編號)_混和排序

圖片
SELECT  [DISTINCT] * | 列[別名] , 列[別名] , ........   ------>    Step3.  選出所需資料列 FROM  表名稱 [別名]                ------>    Step1.  確定資料來源 [ WHERE  限定條件(s)]    -----> 非必要語法 , 條件可多個 ------>    Step2.  限定查詢條件 [ ORDERBY 排序字段 [ASC|DESC] , ......];  ------>    Step4.  資料排序 既然 ORDER BY 是在 SELECT 子句 之後執行 代表  ORDER BY 可以使用 SELECT 的 別名 ======================================================================== 升序 : ASC 降序 : DESC Ex: 按照 工資 由高到低排序(降序排序 DESC) 1 2 3 select * from emp order by sal desc ; 排序可在任意資料類型上進行 包含字串、日期皆可 Ex: 按照 雇傭日期  由早到晚排序(升序) 1 2 3 select * from emp order by hiredate asc ; 有無 ASC 結果 皆 相同 除了可進行單一字段排序,也可以進行字段的混和排序操作。 指的就是可以進行若干個字段的排序 Ex: 按照工資由高到低排序 , 如果工資相同 , 則可按照雇傭日期由早到晚排序(升序) 1 2 3 select * from emp order by sal desc , hiredate; 所有排序操作都是在 WHERE 篩選後 進行的 Ex: 查詢出所有 辦事人員 的編號、職位、 年薪 ,按照年薪 由高至低排序 1 2 3 4 select empno , job , sal * 12 income from emp where job = 'CLERK'

Oracle資料庫培訓課程_L6-2_SQL查詢(限制查詢)_關係運算符_邏輯運算符_範圍運算符_空判斷_IN操作符_LIKE操作符

圖片
SELECT [DISTINCT] * | 列[別名] , 列[別名] , ........   ------>    Step3.  選出所需資料列 FROM 表名稱 [別名]                ------>    Step1.  確定資料來源 [ WHERE 限定條件(s)]    -----> 非必要語法 , 條件可多個 ------>    Step2.  限定查詢條件 關係運算:  > , = , < , <= , >= , != (<>); 範圍運算: BETWEEN ..... AND; 空判斷: IS NULL , IS NOT NULL; IN 判斷: IN , NOT IN , exists()   (複雜查詢) 模糊查詢: LIKE , NOT LIKE 以上限定語法符號只能夠判斷一次,如果現在有若干個限定符號, 那必須進行若干個限定語法符號連接 使用邏輯運算(AND , OR , NOT ) 1.關係運算符(比大小) Ex : 查詢工資低於1200的僱員(不包含1200) 寫法一、 直接整串寫(非常熟) select * from emp where sal < 1200 ; 寫法二、分布寫 1 2 3 select * from emp where sal < 1200 ; Ex: 查詢  工資是 3000 的 土豪 此外 = 也可在 字串上使用 Ex: 查詢 Smith 的 職員資訊 1 2 3 select * from emp where ename= 'SMITH' 在 Oracle 資料庫中  資料內容是區分大小寫的!!!! 對於不等於判斷   有兩種符號 :   !=  、 <> 。 Ex: 查詢 職位不是辦事員(職位是job字串、辦事員之職位名稱為CLERK) != 1 2 3 select * from emp where job!= 'CLERK'

Oracle資料庫培訓課程_L6-1_SQL查詢(簡單查詢)

圖片
如果要進行查詢 需要使用  DML 中   之  查詢部分支持 對於簡單查詢而言 通俗理解 就是可以將資料表中的全部紀錄都調出(查詢出來) 簡易SQL查詢語法 SELECT [DISTINCT] * | 行[別名] , 行[別名] , .....    ------> Step2. FROM 表名稱 [別名]       ---->  Step1 如果在  SELECT 子句 中   使用了  * 表示  查詢一張表中所有資料列 例如:  查詢  EMP表中  所有資料紀錄 有時候我們只要展示一部分  就需要控制所需要的資料列(資料投影操作) 老闆 從職員表中   查詢    職員編號 、 職員姓名 、工作職稱、 工資 select empno , ename , job , sal from emp; 此外有時候也需要支持一些四則運算 並可以直接使用列的內容進行四則運算 現在要求查詢顯示每個雇員的 編號、姓名、基本年薪(月工資:sal,年薪:sal * 12) SELECT empno , ename , sal* 12 FROM emp; 在此就多出了別名設置 SELECT empno , ename , sal* 12 income FROM emp; 當然也可以設置成中文 SELECT empno 雇員編號 , ename 雇員姓名 , sal* 12 年資 FROM emp; 實際上在進行簡單查詢中  還支持資料數據的連接操作 使用 "||"  進行連接。 觀察連接 SELECT empno || ename FROM emp; 可以發現年一起了 可以將連接變好看些  中間使用一些文字描述 目前希望最終呈現 格式為  :  "編號:XXX , 姓名:XX" 對於編號和姓名肯定是透過資料表查詢出來的資料列。 但現在對於一些固定輸出內容必須進行處裡 部分處理暫時分兩種類型資料: (1)普通數字  -