iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
自我挑戰組

Oracle資料庫系列 第 22

[Day22]DML語句實作

解釋以下SQL語句:

INSERT INTO departments(department_id, department_name)
VALUES(999, 'Public Relation');

說明:
將部門代號999,名稱為Public Relation的資料列新增至departments資料表內。其他未被指定欄位都自動帶入空值NULL。
新增後搜尋:

SELECT * 
FROM departments
WHERE department_id=999;

將HR中的employees資料表內,員工編號小於100的employee_id, last_name, job_id, hire_date等欄位資料拷貝至emps表內。
說明:

  1. 目的資料表emps必需已經存在,可以輸入
create table as select * from employees where employees_id>9999;
```(拷貝至emps)。
2. 目標資料表的欄位名稱可與來源資料表對應欄位不同,但資料類型和長度定義要>=原始資料表。

INSERT INTO emps(employee_id, last_name, email, job_id, hire_date)
SELECT employee_id, last_name, email, job_id, hire_date
FRPM employees
WHERE employee_id<100;


解釋以下SQL語句:

UPDATE employees
SET job_id=(SELECT job_id FROM employees
WHERE employee_id=100),
salary=(SELECT salary FROM employees
WHERE employee_id=100)
WHERE employee_id=999;

將999號員工的職務和薪水調整與100號員工相同。

在HR帳戶的employees資料表中儲存員工目前工作資料,job_history儲存員工職務異常歷史資料,撰寫SQL語句刪除job_history內和employees重複的資料。
說明:
1. job_history內和employees重複的資料是指表內employee_id和job_id都相同的資料列,可在後輸入WHERE條件句:

DELETE FROM job_hostory j
WHERE(employee_id, job_id)=(
SELECT employee_id, job_id
FROM employees e
WHERE j.employee_id=e.employee_id AND j.job_id=e.job_id);



上一篇
[Day21]DML語句
下一篇
[Day23]交易控制
系列文
Oracle資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言