Oracle筆記02——Oracle表結構
阿新 • • 發佈:2021-10-01
一、SQL語句的書寫規則:
(1)不區分大小寫
(2)可以單行來書寫,也可以書寫多行,建議分多行書寫,增強程式碼的可讀性
(3)關鍵字不可以縮寫、分開以及跨行書寫
(4)關鍵字最好是用大寫,其它語法元素小寫
(5)Tab和縮排的使用可以提高程式的可讀性
二、選擇列
(1)選擇所有列:
SELECT * FROM 表名;
(2)選擇指定列:
SELECT 列名1,列名2,列名3... FROM 表名;
三、算術運算子
+ - * /
注意:null值不與任意值計算,均返回null,不是0,不是''
解決方法:nvl(列名,0):如果該列的值為null,取值為0;否則取自身的值
四、列別名
(1)語法:
①列名 別名
或者
②列名 as 別名
(2)以下三種情況列別名兩側需要新增雙引號
①列別名中包含有空格
②列別名中要求區分大小寫
③列別名中包含有特殊字元
五、連線操作符||
原義字串:使用單引號' '括起來,在資料的每一行出現
消除重複行:DISTINCT
六、顯示錶的結構
以下令命令需要在SQL*Plus中使用:
DESC[RIBE] 表明;
七、SQL語句和SQL*Plus命令的區別
1.在SQL window中只能執行sql語句
2.在commadn window既能執行sql語句,也可以執行SQL*Plus命令
八、練習
--選擇dept表裡面所有列,其中*代表所有列 SELECT * FROMdept; SELECT deptno,dname,loc FROM dept;--以上兩行程式碼效果一樣 --但後者效率更高,因為*不知道表中的所有列是什麼,需要分析表結構,查詢的過程效率較低 --選擇dept表中部門編號和部門名稱 SELECT deptno,dname FROM dept; --查詢員工的員工編號,員工姓名,入職日期,包括轉正日期(假設試用期5個月) SELECT empno,ename,hiredate,(hiredate + 5*2) FROM emp; --查詢員工的員工編號,員工姓名,入職日期,包括轉正日期(假設試用期5個月),年薪(使用其工資為轉正工資的80%,加上獎金)SELECT empno,ename,hiredate,(hiredate + 5*30),sal,comm,sal*5+sal*1.25*7+comm FROM emp;--當comm為null的時候,與任何數相加得到的都是以null SELECT empno,ename,hiredate,(hiredate + 5*30),sal,nvl(comm,0),sal*5+sal*1.25*7+nvl(comm,0) FROM emp;--使用nvl函式 --別名 SELECT empno 員工編號, ename 員工姓名, hiredate 入職日期, (hiredate + 5 * 30) as 轉正日期,--as可以加,也可以不加 sal as 工資, nvl(comm, 0) as 獎金, sal * 5 + sal * 1.25 * 7 + nvl(comm, 0) as 年薪 FROM emp; SELECT empno,sal,sal + 500 "new salary" FROM emp;--1.列別名中包含有空格,需要新增雙引號 SELECT empno,sal,sal + 500 "NewSalary" FROM emp;--2.英文列別名預設全部大寫,新增雙引號可以區分大小寫 SELECT empno,sal,sal + 500 "@new" FROM emp;--3.列別名中包含有特殊字元,需要新增雙引號 --連線操作符 --1.查詢員工資訊,並顯示“xxx的工資為:xxx” SELECT ename,sal,ename||'的工資為:'||sal FROM emp; --2.查詢有員工的部門有哪些? SELECT distinct deptno FROM emp;--distinct消除重複行 --3.查詢公司有多少部門及崗位? SELECT distinct deptno,job FROM emp;