Chương 4. Thao tác dữ liệu
4 - 1
Chương 4 THAO TÁC DỮ LIỆU
- Lý thuyết: 4 tiết
- Thực hành: 6 tiết
Chương 4. Thao tác dữ liệu
4 - 2
4.1 Ngôn ngữ thao tác dữ liệu
Thêm các hàng mới vào một bảng.
Chỉnh sửa các hàng đã tồn tại trong bảng.
Loại bỏ hàng từ bảng.
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 3
4.2 Câu lệnh chèn (INSERT)
Chèn dữ liệu vào bảng.
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 4
4.2 Câu lệnh chèn (INSERT)
Chèn một hàng vào bảng
INSERT INTO table ([column, column, ])
VALUES (value, value );
Ví dụ
INSERT INTO Dept
VALUES (50, 'MARKETING', null,'SAN JOSE');
4.2 Câu lệnh chèn (INSERT)
INSERT đồng thời trên nhiều bảng
INSERT có điều kiện (CONDITIONAL)
INSERT [ALL| FIRST]
WHEN c1 = 1 THEN INTO T1 (C1, C2, ) VALUES (V1, V2, )
WHEN c1 = 2 THEN INTO T2 (C1, C2, ) VALUES (V1, V2, )
WHEN c1 = 3 THEN INTO T3 (C1, C2, ) VALUES (C1, C2, )
SELECT C1, C2, FROM T;
FIRST: thực hiện câu lệnh đầu tiên có điều kiện đúng.
ALL: thực hiện mọi câu lệnh có điều kiện đúng.
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 8
4.2 Câu lệnh chèn (INSERT)
Chèn hàng với giá trị NULL
Không tường minh
INSERT INTO Dept(Deptid, Deptname)
VALUES (30, ‘PURCHASING');
Tường minh
INSERT INTO DEPT
VALUES (100, ‘FINANCE', NULL, NULL);
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
expr, subquery: Giá trị được cập nhật vào bảng.
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 12
4.3 Câu lệnh cập nhật (UPDATE)
Ví dụ
Cập nhật thông tin cho SCOTT với công việc mới là
SALEMAN và tăng lương lên 1.1 lần.
UPDATE Emp
SET jobid = 'SALEMAN', salary = salary * 1.1
WHERE Firstname = 'SCOTT'
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 13
4.3 Câu lệnh cập nhật (UPDATE)
Ví dụ
Cập nhật tiền lương cho nhân viên dựa vào mức lương cao
nhất công việc của họ.
UPDATE Emp
SET salary = (SELECT max_salary
FROM Job J
WHERE J.jobid = Emp.jobid)
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 14
4.4 Câu lệnh xóa (DELETE)
xóa hàng đang tồn tại trong cơ sở dữ liệu
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
Thao tác dữ liệu
MERGE INTO table AS alias
USING (table|view|sub_query) AS alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col1_val,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);
Chương 4. Thao tác dữ liệu
4 - 18
4.5 Câu lệnh kết hợp (MERGE)
Ví dụ
Cập nhật hoặc chèn vào bảng Copyemp, sử dụng Emp
Thao tác dữ liệu
MERGE INTO Copy_emp AS c
USING Emp e
ON (c.empid = e.empid)
WHEN MATCHED THEN
UPDATE SET
c.ename = e.ename,
c.deptid = e.deptid
WHEN NOT MATCHED THEN
INSERT VALUES(e.empid, e.ename,
e.jobid, e.salary,…, e.managerid, e.deptid);
Chương 4. Thao tác dữ liệu
4 - 19
4.6 Điều khiển chuyển tác
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 22
4.6 Điều khiển chuyển tác
Lệnh ROLLBACK
ROLLBACK [TO SAVEPOINT name]
quay lại điểm SAVEPOINT hoặc toàn bộ chuyển tác
Tự động COMMIT
SET AUTO[COMMIT] ON/OFF
lưu điểm bắt đầu chuyển tác.
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 23
4.6 Điều khiển chuyển tác
Ví dụ
INSERT INTO Dept
VALUES (50,’TESTING’,’LAS VEGAS’);
SAVEPOINT INSERT_DONE;
DELETE FROM Dept
where DNAME =
’TESTING’
;
ROLLBACK TO INSERT_DONE ;
COMMIT;
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu