Chương 4 Thao tác dữ liệu

Thêm các hàng mới vàomộ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.

pdf27 trang | Chia sẻ: lylyngoc | Lượt xem: 1826 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chương 4 Thao tác dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 Chương 4. Thao tác dữ liệu 4 - 26 4.6 Điều khiển chuyển tác  Sau khi thực hiện lệnh ROLLBACK  Mọi sự thay đổi dữ liệu sẽ không được thực hiện  Tình trạng dữ liệu trước đó được phục hồi.  Tình trạng khóa của các hàng giả lập được xóa bỏ. Thao tác dữ liệu Chương 4. Thao tác dữ liệu 4 - 27 Câu hỏi và bài tập  Trả lời câu hỏi phần 4.7 trong giáo trình  Thực hành viết các câu lệnh thao tác dữ liệu trong phần bài tập  Chuẩn bị nội dung chương 5. Câu lệnh SQL