4.2 Câu lệnh chèn INSERTINSERT 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_TMPEname,
Trang 1Chương 4 THAO TÁC DỮ LIỆU
- Lý thuyết: 4 tiết
- Thực hành: 6 tiết
Trang 24.1 Ngôn ngữ thao tác dữ liệu
Thao tác dữ liệu
Trang 34.2 Câu lệnh chèn (INSERT)
Thao tác dữ liệu
Trang 44.2 Câu lệnh chèn (INSERT)
INSERT INTO table ([column, column, ])
VALUES (value, value );
Ví dụ
INSERT INTO DeptVALUES (50, 'MARKETING', null,'SAN JOSE');
Thao tác dữ liệu
Trang 54.2 Câu lệnh chèn (INSERT)
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
Thao tác dữ liệu
Trang 64.2 Câu lệnh chèn (INSERT)
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
Trang 74.2 Câu lệnh chèn (INSERT)
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
Trang 84.2 Câu lệnh chèn (INSERT)
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
Trang 94.2 Câu lệnh chèn (INSERT)
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
Trang 104.3 Câu lệnh cập nhật (UPDATE)
Thao tác dữ liệu
Trang 114.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
Trang 124.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
Trang 13FROM Job J WHERE J.jobid = Emp.jobid)
Thao tác dữ liệu
Trang 144.4 Câu lệnh xóa (DELETE)
Thao tác dữ liệu
Trang 154.4 Câu lệnh xóa (DELETE)
DELETE FROM table
[WHERE condition];
DELETE FROM EmpXó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
Trang 164.4 Câu lệnh xóa (DELETE)
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
Thao tác dữ liệu
Trang 174.5 Câu lệnh kết hợp (MERGE)
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);
Trang 18UPDATE SET
c.ename = e.ename,
c.deptid = e.deptid
Trang 194.6 Điều khiển chuyển tác
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
Trang 204.6 Điều khiển chuyển tác
Thao tác dữ liệu
Trang 214.6 Điều khiển chuyển tác
Trang 224.6 Điều khiển chuyển tác
ROLLBACK [TO SAVEPOINT name]
quay lại điểm SAVEPOINT hoặc toàn bộ chuyển tác
SET AUTO[COMMIT] ON/OFF
lưu điểm bắt đầu chuyển tác
Thao tác dữ liệu
Trang 234.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
Trang 244.6 Điều khiển chuyển tác
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
Trang 254.6 Điều khiển chuyển tác
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
Trang 264.6 Điều khiển chuyển tác
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
Trang 27Câu hỏi và bài tập
phần bài tập
Câu lệnh SQL