Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
677,5 KB
Nội dung
THAOTÁCDỮLIỆU - Lý thuyết: tiết - Thực hành: tiết ChươngThaotácliệu 4-1 Thaotácliệu 4.1 Ngôn ngữ thaotácliệu Thêm hàng vào bảng Chỉnh sửa hàng tồn bảng Loại bỏ hàng từ bảng ChươngThaotácliệu 4-2 Thaotácliệu 4.2 Câu lệnh chèn (INSERT) Chèn liệu vào bảng ChươngThaotácliệu 4-3 Thaotácliệu 4.2 Câu lệnh chèn (INSERT) Chèn hàng vào bảng INSERT INTO column, ]) table ([column, VALUES (value, value ); Ví dụ INSERT INTO Dept VALUES (50, 'MARKETING', null,'SAN JOSE'); ChươngThaotácliệu 4-4 Thaotácliệu 4.2 Câu lệnh chèn (INSERT) Chép 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 liệu Ví dụ INSERT INTO EMP_TMP(Ename, Sal) ChươngThaotácliệu 4-5 Thaotácliệu 4.2 Câu lệnh chèn (INSERT) INSERT đồng thời 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]; ChươngThaotácliệu 4-6 Thaotácliệu 4.2 Câu lệnh chèn (INSERT) INSERT đồng thời nhiều bảng INSERT có điều kiện (CONDITIONAL) INSERT [ALL| FIRST] WHEN c1 = THEN INTO T1 (C1, C2, ) VALUES (V1, V2, ) WHEN c1 = THEN INTO T2 (C1, C2, ) VALUES (V1, V2, ) WHEN c1 = THEN INTO T3 (C1, C2, ) VALUES (C1, C2, ) SELECT C1, C2, FROM T; ChươngThaotácliệu 4-7 Thaotácliệu 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); ChươngThaotácliệu 4-8 Thaotácliệu 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 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 liệu Giá trị lớn độ rộng cột ChươngThaotácliệu 4-9 Thaotácliệu 4.3 Câu lệnh cập nhật (UPDATE) cập nhật liệusởliệuChươngThaotácliệu - 10 Thaotácliệu 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 họ UPDATE Emp SET salary = (SELECT max_salary FROM Job J WHERE J.jobid = Emp.jobid) ChươngThaotácliệu - 13 Thaotácliệu 4.4 Câu lệnh xóa (DELETE) xóa hàng tồn sởliệuChươngThaotácliệu - 14 Thaotácliệu 4.4 Câu lệnh xóa (DELETE) Xóa liệu bảng DELETE FROM table [WHERE condition]; Ví dụ Xóa tất liệu bảng EMP DELETE FROM Emp Xóa tất hàng liệucó Deptid =10 DELETE FROM Emp WHERE Deptid = 10 ChươngThaotácliệu - 15 Thaotácliệu 4.4 Câu lệnh xóa (DELETE) Xóa liệu dựa bảng khác Ví dụ: Xóa tất nhân viên thuộc phòng Public DELETE FROM Emp WHERE Deptid = (SELECT Deptid FROM Dept WHERE deptName LIKE 'Publi%'); ChươngThaotácliệu - 16 Thaotácliệu 4.5 Câu lệnh kết hợp (MERGE) cập nhật chèn tuỳ thuộc vào ghi đích.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ươngThaotácliệu - 17 Thaotácliệu 4.5 Câu lệnh kết hợp (MERGE) Ví dụ Cập nhật chèn vào bảng Copyemp, sử MERGE INTO Copy_emp AS c dụng Emp 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ươngThaotácliệu - 18 Thaotácliệu 4.6 Điều khiển chuyển tác đơn vị làm việc nguyên tố bắt đầu user kết nối vào sởliệu kết thúc thuộc trường hợp sau: COMMIT ROLLBACK Các lệnh DDL DCL thực (tự động commit) Lỗi, thoát khỏi SQL*Plus, hệ thống bị down ChươngThaotácliệu - 19 Thaotácliệu 4.6 Điều khiển chuyển tácChươngThaotácliệu - 20 Thaotácliệu 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ácChươngThaotácliệu - 21 Thaotácliệu 4.6 Điều khiển chuyển tác Lệnh ROLLBACK ROLLBACK [TO SAVEPOINT name] quay lại điểm SAVEPOINT toàn chuyển tác Tự động COMMIT SET AUTO[COMMIT] ON/OFF lưu điểm bắt đầu chuyển tácChươngThaotácliệu - 22 Thaotácliệu 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; ChươngThaotácliệu - 23 Thaotácliệu 4.6 Điều khiển chuyển tác Trước thực lệnh COMMIT ROLLBACK có thể phục hồi liệu có thể xem trước kết người dùng hành không xem được kết hàng giả lập bị khóa ChươngThaotácliệu - 24 Thaotácliệu 4.6 Điều khiển chuyển tác Sau thực lệnh COMMIT Dữliệu bị cố định Tất người dùng có thể xem được kết Mở khóa hàng giả lập; có thể thaotác được Tất SavePoint bị xóa bỏ ChươngThaotácliệu - 25 Thaotácliệu 4.6 Điều khiển chuyển tác Sau thực lệnh ROLLBACK Mọi sự thay đổi liệu không được thực Tình trạng liệu trước được phục hồi Tình trạng khóa hàng giả lập được xóa bỏ ChươngThaotácliệu - 26 Câu lệnh SQL Câu hỏi tập Trả lời câu hỏi phần 4.7 giáo trình Thực hành viết câu lệnh thaotácliệu phần tập Chuẩn bị nội dung chươngChươngThaotácliệu - 27 ... J.jobid = Emp.jobid) Chương Thao tác liệu - 13 Thao tác liệu 4. 4 Câu lệnh xóa (DELETE) xóa hàng tồn sở liệu Chương Thao tác liệu - 14 Thao tác liệu 4. 4 Câu lệnh xóa (DELETE) Xóa liệu bảng DELETE... Lỗi kiểu liệu Giá trị lớn độ rộng cột Chương Thao tác liệu 4- 9 Thao tác liệu 4. 3 Câu lệnh cập nhật (UPDATE) cập nhật liệu sở liệu Chương Thao tác liệu - 10 Thao tác liệu 4. 3 Câu lệnh... Lỗi, thoát khỏi SQL* Plus, hệ thống bị down Chương Thao tác liệu - 19 Thao tác liệu 4. 6 Điều khiển chuyển tác Chương Thao tác liệu - 20 Thao tác liệu 4. 6 Điều khiển chuyển tác Lệnh COMMIT