Tải bản đầy đủ (.pdf) (27 trang)

bài giảng cơ sở dữ liệu quan hệ và sql chương 4: thao tác dữ liệu - cđ cntt hữu nghị việt hàn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (389.12 KB, 27 trang )

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');


Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 5
4.2 Câu lệnh chèn (INSERT)

Chép dữ liệu từ bảng khác
INSERT INTO table [(column, column )]
SELECT select_list
FROM table1;

select_list: Danh sách cột hay biểu thức cần lấy dư˜ liệu
Ví dụ
INSERT INTO EMP_TMP(Ename, Sal)
SELECT Firstname, Salary FROM Emp
WHERE Sal > 1000;
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 6
4.2 Câu lệnh chèn (INSERT)

INSERT đồng thời trên nhiều bảng

INSERT không điều kiện (UNCONDITIONAL)
INSERT ALL
INTO T1 (C1, C2, ) VALUES (V1, V2, )
INTO T2 (C1, C2, ) VALUES (V1, V2, )
[SELECT C1, C2, FROM T];
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 7

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

4 - 9
4.2 Câu lệnh chèn (INSERT)

Một số lỗi thường gặp

Thiếu giá trị cho cột NOT NULL.

Trùng lặp giá trị vi phạm ràng buộc duy nhất.

Vi phạm ràng buộc khóa ngoại.

Vi phạm ràng buộc CHECK.

Lỗi kiểu dữ liệu.

Giá trị lớn hơn độ rộng cột.
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 10
4.3 Câu lệnh cập nhật (UPDATE)

cập nhật dư˜ liệu trong cơ sở dữ liệu
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 11
4.3 Câu lệnh cập nhật (UPDATE)
UPDATE table [alias]
SET column [,column ] = [expr, subquery]
[WHERE condition]
Trong đó

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

4 - 15
4.4 Câu lệnh xóa (DELETE)

Xóa dữ liệu trong một bảng
DELETE FROM table
[WHERE condition];
Ví dụ
Xóa tất cả dữ liệu trong bảng EMP.
DELETE FROM Emp
Xóa tất cả những hàng dữ liệu có Deptid =10.
DELETE FROM Emp
WHERE Deptid = 10
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 16
4.4 Câu lệnh xóa (DELETE)

Xóa dữ liệu dựa trên bảng khác
Ví dụ:
Xóa tất cả những nhân viên thuộc phòng Public.
DELETE FROM Emp
WHERE Deptid = (SELECT Deptid
FROM Dept
WHERE deptName LIKE 'Publi%');
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 17
4.5 Câu lệnh kết hợp (MERGE)

cập nhật hoặc chèn tuỳ thuộc vào bản ghi đích.

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


là một đơn vị làm việc nguyên tố

bắt đầu khi user kết nối vào cơ sở dữ liệu

kết thúc khi thuộc một trong các trường hợp sau:

COMMIT hoặc ROLLBACK.

Các lệnh DDL và DCL thực hiện (tự động commit).

Lỗi, thoát khỏi SQL*Plus, hệ thống bị down.
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 20
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 - 21
4.6 Điều khiển chuyển tác

Lệnh COMMIT
COMMIT

kết thúc hay hoàn tất chuyển tác

Lệnh SAVEPOINT
SAVEPOINT name

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 - 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

4 - 24
4.6 Điều khiển chuyển tác

Trước khi thực hiện lệnh COMMIT hoặc ROLLBACK

có thể phục hồi dữ liệu

có thể xem trước kết quả

người dùng không phải hiện hành sẽ không xem được kết
quả

các hàng giả lập bị khóa.
Thao tác dữ liệu
Chương 4. Thao tác dữ liệu
4 - 25
4.6 Điều khiển chuyển tác

Sau khi thực hiện lệnh COMMIT

Dữ liệu bị cố định.

Tất cả người dùng có thể xem được kết quả.

Mở khóa của các hàng giả lập; có thể thao tác được.

Tất cả các SavePoint bị xóa bỏ.
Thao tác dữ liệu

×