8.1.THAO TÁC DỮ LIỆU TRONG TABLE
8.1.1. Thêm mới dòng dữ liệu
Để chèn một row vào table dùng lệnh INSERT. Cú pháp:
INSERT INTO tablename ([column, column, ...]) VALUES (value, value ...);
Ví dụ:
INSERT INTO dept (depno, dname, loc) VALUES (50, 'MARKETING', 'SAN JOSE')
Chép dữ liệu từ table khác
INSERT INTO table [(column, column...)] SELECT select_list
FROM table(s)
Ví dụ:
INSERT INTO emp_tmp (ename, sal)
SELECT ename, sal FROM emp WHERE sal > 1000
Bắt đầu từ phiên bản Oracle 9i, ta có thể thêm mới dòng dữ liệu và đặt giá trị mặc định thông qua từ khoá
DEFALT
Ví dụ:
INSERT INTO EMP (EMPNO, ENAME, DEPTNO) VALUES (8000,’MIKE’,DEFAULT);
Oracle 9i còn cho phép thực hiện lệnh INSERT trên đồng thời nhiều table khác nhau, chỉ sử dụng một câu lệnh DML.
Ví dụ:
Lệnh INSERT không điều kiện (UNCONDITIONAL)
INSERT ALL
INTO T1 (C1, C2, ...) VALUES (C1, C2, ...) INTO T2 (C1, C2, ...) VALUES (C1, C2, ...) SELECT C1, C2, ... FROM T9;
Lệnh INSERT không điều kiện (CONDITIONAL)
INSERT [ALL|FIRST]
WHEN c1 = 1 THEN INTO T1 (C1, C2, ...) VALUES (C1, C2, ...) WHEN c1 = 2 THEN INTO T2 (C1, C2, ...) VALUES (C1, C2, ...) WHEN c2 = 3 THEN INTO T3 (C1, C2, ...) VALUES (C1, C2, ...) SELECT C1, C2, ... FROM T9;
FIRST: insert cho câu lệnh đầu tiên có giá trị điều kiện đúng ALL: insert cho mọi câu lệnh có giá trị điều kiện là đúng
8.1.2. Cập nhật dòng dữ liệu
Để chỉnh sửa dữ liệu dùng lệnh UPDATE. Cú pháp:
UPDATE table [alias]
SET column [,column...] = [expr, subquery] [WHERE condition]
Ví dụ 1:
UPDATE emp
SET job = 'SALEMAN', hiredate = sysdate, sal = sal * 1.1 WHERE ename = 'SCOTT';
Ví dụ 2:
UPDATE emp
SET comm = (SELECT comm FROM commission C WHERE C.empno = emp.empno) WHERE empno IN (SELECT empno FROM commission);
Ví dụ 3:
UPDATE emp a SET deptno =
(SELECT deptno FROM dept WHERE loc = 'BOSTON'), (sal, comm) = (SELECT 1.1*AVG(sal),1.5*AVG(comm)
FROM emp b
WHERE a.deptno = b.deptno) WHERE deptno IN
(SELECT deptno FROM dept
WHERE loc = 'DALLAS' OR loc = 'DETROIT');
Ta cũng có thể sử dụng mệnh đề DEFAULT trong câu lệnh cập nhật dữ liệu Ví dụ:
UPDATE EMP SET COMM = DEFAULT;
Chú thích:
- Cập nhật các nhân viên ở Dallas hoặc Detroit
- Thay DEPTNO của các nhân viên này bằng DEPTNO của Boston - Thay lương mỗi nhân viên bằng lương trung bình của bộ phận * 1.1 - Thay commission của