天天看點

Oracle資料庫—— PL/SQL基礎程式設計

一、涉及内容

  1. 掌握PL/SQL程式塊的結構,了解并熟悉各種變量的應用。

二、具體操作

(一)使用system使用者登入SQL*PLUS,使用SQL語句建立使用者:u_你的姓名首字母(例如:u_zs),密碼為: t_你的學号後三位(例如:t_165)。并授予新使用者連接配接資料庫的權限,然後以新使用者連接配接資料庫。

1. 建立使用者u_sxl

2. 授予新使用者u_sxl連接配接資料庫的權限

3. 以新使用者u_sxl連接配接資料庫

(二)使用scott使用者連接配接資料庫,使用SQL語句建立表dep_你的學号後三位(例如:dep_165)

注意:建立表的同時要建立限制

列名    資料類型    列的說明

dno integer 系編号(主鍵限制)

dname   char(12)    系名(唯一限制)

1. 使用scott使用者連接配接資料庫(先修改一下密碼)

2. 建立表dep_120

(三)使用SQL語句建立表stu_你的學号後三位(例如:stu_165)

注意:建立表的同時要建立限制

列名    資料類型    列的說明

sno integer 學号(主鍵限制)

sname   Varchar2(20)    姓名(非空限制)

sage    integer 年齡(check限制:在12~99歲之間)

sdep    integer 系編号(外鍵限制)

建立的表格如下所示:

(四) 使用scott方案下的emp表和dept表完成下列查詢。(注意:每道題隻能使用一條SQL語句實作)

1. 查詢20号部門的所有員工的姓名、部門名稱(要求:使用NATURAL JOIN)

2. 查詢部門地點(LOC)、員工姓名。如果某部門沒有員工,也要顯示部門地點。(要求:使用左外連接配接)

3. 查詢30号部門的員工獎金(COMM)的合計值。

4. 查詢每個員工的姓名和他頂頭上司(MGR)的姓名(要求:使用自身連接配接)

5. 查詢月薪低于2100元,并且所在部門編号是30的員工編号和月薪。(要求:使用INTERSECT)

6. 查詢平均工資最高的兩個部門的部門編号。(要求:使用rownum僞列)

7. 查詢與ALLEN的所在部門和雇用年份相同的所有員工的姓名。(要求:使用多列子查詢)

8. 按工作崗位(job)分組,查詢每種崗位的員工個數

9. 按工作崗位(job)分組,查詢每種崗位的薪水的最低值。

10. 将“SALES”部門的員工薪水增加15% (注意:需要使用兩張表)

11. 查詢平均月薪高于2800元的部門名稱、員工姓名、部門平均月薪。

12. 從emp表中删除 所在部門位于“BOSTON”的員工的資訊。(注意:需要使用兩張表)

(五)編寫PL/SQL程式塊,每道題目使用一個程式塊實作。

1、建立并執行一個PL/SQL程式塊,通過替代變量由鍵盤輸入兩個數值x和y,用第一個數x乘以第二個數y再除以10取整(小數四舍五入),将結果存入變量:v_你的姓名首字母(例如:v_zs),然後輸出到螢幕上。

2、建立并執行一個PL/SQL程式塊,查詢scott方案的emp表中的最高薪水,将其存入變量:v_你的姓名首字母(例如:v_zs)中,然後在螢幕上顯示。

3、建立并執行一個PL/SQL程式塊,計算scott方案中emp表的某個雇員的年薪,雇員的編号通過替代變量由鍵盤輸入,年薪等于月薪sal乘以12個月再加上獎金comm,使用NVL函數處理空值。将計算出的年薪存入變量:v_你的姓名首字母(例如:v_zs)中,然後将結果輸出到螢幕上。

4、建立并執行一個PL/SQL程式塊,向dept表中添加一行資料,用替代變量輸入部門的編号和名稱,部門位置為NULL。

5、建立并執行一個PL/SQL程式塊,更新部門位置的值,用替代變量輸入部門的編号和新的部門位置。

6、建立并執行一個PL/SQL程式塊,删除第4題添加的部門,用替代變量輸入部門的編号。