oracle資料庫實訓之第二章《編寫簡單的查詢語句》
第二章《編寫簡單的查詢語句》
練習1:
1、使用兩種方式查詢所有員工(EMP)資訊
(1)select * from emp
(2)select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp
2、查詢(EMP)員工編號、員工姓名、員工職位、員工月薪、工作部門編號
select empno,ename,job,sal,deptno from emp
知識點一:算術運算子
1、可以在select語句中使用算術運算子(+,-,*,/),改變輸出結果
如:select sal,sal+300 from emp
2、算術運算子優先順序
(1)乘除優先於加減
(2)相同優先權的表示式按照從左至右的順序依次計算
(3)括弧可以提高優先權,並使表示式的描述更為清晰
練習2:
1、員工轉正後,月薪上調20%,請查詢出所有員工轉正後的月薪。
(注意:用百分號不行,即是用20%代替0.2是執行不了的)
select sal*(1+0.2) 轉正後月薪 from emp
2、員工試用期6個月,轉正後月薪上調20%,請查詢出所有員工工作第一年的年薪所得(不考慮獎金部分,年薪的試用期6個月的月薪+轉正後6個月的月薪)
select 6*sal+6*sal*(1+0.2) 一年月薪
知識點二:空值NULL
(1)空值是指一種無效的、未賦值、未知的或不可用的值。
(2)空值不同於零或者空格
(3)算術表示式中的空值NULL。任何包含空值的算術表示式運算後的結果都為空值NULL。
如:select ename,12*sal+comm from emp where ename='KING'
第二列返回的是空值null,因為KING的獎金comm是空值
知識點三:列別名
(1)用來重新命名列的顯示標題
(2)如果SELECT語句中包含計算列,通常使用列別名來重新定義列標題
(3)使用列別名的方法
方式1:列名 列別名
方式2:列名 AS 列別名
(4)以下三種情況列別名兩側需要新增雙引號
情況一:列別名中包含有空格
情況二:列別名中要求區分大小寫
情況三:列別名中包含有特殊字元
(5)注意:列別名如果是中文,要加雙引號
練習3:
1、員工試用期6個月,轉正後月薪上調20%,請查詢出所有員工工作第一年的所有收入(需要考慮獎金部分),要求顯示列標題為員工姓名,工資收入、獎金收入、總收入。
(注意:當comm是空值時候,所有帶有它的運算都是空值,解決辦法是使用nvl(comm,0),那麼當comm為空時就返回0)
select ename as 員工姓名,6*sal+6*sal*(1+0.2) 工資收入,comm 獎金收入,6*sal+6*sal*(1+0.2)+nvl(comm,0) 總收入
from emp
知識點四:連線操作符
(1)用於連線列與列、列和字元
(2)形式上是以兩個豎槓||
(3)用於建立字元表示式的結果列
如:select * ename||job from emp
知識點五:原義字串
(1)原義字串是包含在SELECT列表中的一個字元、一個數字或一個日期。
(2)日期和字元字面值必須用單引號引起來。
(3)每個原義字串都會在每個資料行輸出中出現。
原義字串的使用如下:
select ename || ' is a' || job from emp
知識點六:消除重複行
(1)在SELECT字句中使用關鍵字DISTINCT可消除重複行。
如:select distinct deptno from emp
練習4:
1、員工試用期6個月,轉正後月薪上調20%,請查詢出所有員工工作第一年的所有收入,需要考慮獎金部分),要求顯示格式為:XXX的第一年總收入為XXX。(使用到連線符”||”,它可以用於連線列與列,列與字元)
select ename||'的第一年總收入為'||(6*sal+6*sal*(1+0.2)+nvl(comm,0)) from emp
2、查詢員工表中一共有哪幾種崗位型別。(使用distinct關鍵字可以消除重複行)
select distinct job from emp
知識點七:顯示錶的結構
(1)在SQL*Plus中,可以使用DESCRIBE 命令來查看錶結構
如:desc [ribe] emp
知識點八:SQL語句與SQL*PLUS命令的區別
(1)SQL是關係型資料庫的標準操作語言,而SQL*Plus是一個客戶端工具,除了執行標準的SQL外,還可以執行工具本身的一些命令,比如登入等。
(2)SQL語句不可以縮寫,而SQL*PLUS命令可以縮寫。
課後作業:
1、分別選擇員工表、部門表、薪資等級表中的所有資料。
select * from emp
select * from dept
select * from salgrade
2、分別檢視員工表、部門表、薪資等級表的表結構。
desc emp
desc dept
desc salgrade