1. 程式人生 > 其它 >Oracle筆記02——Oracle表結構

Oracle筆記02——Oracle表結構

一、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 * FROM
dept; 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;