« Home « Kết quả tìm kiếm

Ngon ngu lap trinh sql 2


Tóm tắt Xem thử

- MỤC LỤC1 GIỚI THIỆU CHUNG NGÔN NGỮ SQL LỊCH SỬ PHÁT TRIỂN NGÔN NGỮ SQL CHUẨN SQL CÁC KHÁI NIỆM CƠ BẢN TRONG CƠ SỞ DỮ LIỆU CÁC THÀNH PHẦN LOGIC TRONG DATABASE CÁC ĐỐI TƯỢNG TRONG DATABASE CÁC NHÓM LỆNH SQL ĐƠN GIẢN LỆNH TRUY VẤN CƠ BẢN CÂU LỆNH TRUY VẤN QUY TẮC VIẾT LỆNH CÂU LỆNH TRUY VẤN CƠ BẢN CÁC THÀNH PHẦN KHÁC CỦA MỆNH ĐỀ SELECT PHÂN BIỆT GIÁ TRỊ DỮ LIỆU TRẢ VỀ GIÁ TRỊ NULL SQL*PLUS, CÔNG CỤ TƯƠNG TÁC LỆNH SQL VỚI DATABASE CÂU LỆNH TƯƠNG TÁC CỦA SQL*PLUS PHÂN NHÓM CÂU LỆNH TRONG SQL*PLUS CHI TIẾT CÁC LỆNH SQL*PLUS CƠ BẢN TRUY VẤN DỮ LIỆU CÓ ĐIỀU KIỆN CÁC GIỚI HẠN TRONG TRUY VẤN DỮ LIỆU MỆNH ĐỀ WHERE CÁC TOÁN TỬ SỬ DỤNG TRONG MỆNH ĐỀ WHERE VÍ DỤ SỬ DỤNG CÁC TOÁN TỬ ĐIỀU KIỆN SẮP XẾP DỮ LIỆU TRẢ VỀ MỆNH ĐỀ ORDER BY SẮP XẾP NHIỀU CỘT DỮ LIỆU TRẢ VỀ CÁC HÀM SQL TỔNG QUAN VỀ HÀM SQL CẤU TRÚC HÀM SQL PHÂN LOẠI HÀM SQL HÀM SQL THAO TÁC TRÊN TỪNG DÒNG DỮ LIỆU CÁC HÀM THAO TÁC TRÊN KIỂU DỮ LIỆU SỐ CÁC HÀM THAO TÁC TRÊN KIỂU DỮ LIỆU KÝ TỰ CÁC HÀM THAO TÁC TRÊN KIỂU DỮ LIỆU THỜI GIAN CÁC HÀM CHUYỂN ĐỔI KIỂU HÀM THAO TÁC TRÊN TẬP HỢP CÁC HÀM TÁC ĐỘNG TRÊN NHÓM MỆNH ĐỀ GROUP BY LỆNH TRUY VẤN DỮ LIỆU MỞ RỘNG KẾT HỢP DỮ LIỆU TỪ NHIỀU BẢNG MỐI LIÊN KẾT TƯƠNG ĐƯƠNG MỐI LIÊN KẾT KHÔNG TƯƠNG ĐƯƠNG MỐI LIÊN KẾT CỘNG LIÊN KẾT CỦA BẢNG VỚI CHÍNH NÓ (TỰ THÂN CÁC TOÁN TỬ TẬP HỢP LỆNH TRUY VẤN LỒNG CÂU LỆNH SELECT LỒNG NHAU TOÁN TỬ SOME/ANY/ALL/NOT IN/EXITS BIẾN RUNTIME DỮ LIỆU THAY THẾ TRONG CÂU LỆNH LỆNH DEFINE LỆNH ACCEPT TABLE VÀ CÁC LỆNH SQL VỀ TABLE LỆNH TẠO TABLE CÚ PHÁP TẠO BẢNG TÍNH TOÁN KÍCH THƯỚC TABLE (THAM KHẢO MỘT SỐ QUY TẮC KHI TẠO TABLE QUY TẮC ĐẶT TÊN OBJECT QUY TẮC KHI THAM CHIẾU ĐẾN OBJECT CÁC KIỂU DỮ LIỆU CƠ BẢN KIỂU CHAR KIỂU VARCHAR KIỂU VARCHAR KIỂU NUMBER KIỂU FLOAT KIỂU LONG KIỂU DATE KIỂU RAW VÀ KIỂU LONG RAW KIỂU ROWID KIỂU MLSLABEL CHUYỂN ĐỔI KIỂU RÀNG BUỘC DỮ LIỆU TRONG TABLE NULL/NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY ( REFERENTIAL CHECK LỆNH DDL CAN THIỆP TỚI TABLE CHỈNH SỬA CẤU TRÚC TABLE CÁC LỆNH DDL KHÁC CHÚ DẪN CHO TABLE THAY ĐỔI TÊN OBJECT XÓA DỮ LIỆU CỦA TABLE THÔNG TIN VỀ TABLE TRONG TỪ ĐIỂN DỮ LIỆU Trang 2 / 478 CÁC LỆNH THAO TÁC DỮ LIỆU THAO TÁC DỮ LIỆU TRONG TABLE THÊM MỚI DÒNG DỮ LIỆU CẬP NHẬT DÒNG DỮ LIỆU LỆNH MERGE XÓA DÒNG DỮ LIỆU LỖI RÀNG BUỘC DỮ LIỆU LỆNH ĐIỀU KHIỂN GIAO DỊCH SEQUENCE VÀ INDEX SEQUENCE TẠO SEQUENCE THAY ĐỔI VÀ HUỶ SEQUENCE INDEX 439.2.1 TẠO INDEX SỬ DỤNG INDEX VIEWS VIEWS 4510.1.1 TẠO VIEW XÓA CÁC VIEW QUYỀN VÀ BẢO MẬT QUYỀN – PRIVILEGE ROLE 4811.3 SYNONYM Trang 3 / 471 GIỚI THIỆU CHUNG1.1 NGÔN NGỮ SQL1.1.1 LỊCH SỬ PHÁT TRIỂN NGÔN NGỮ SQL Mô hình cơ sở dữ liệu (CSDL) quan hệ - RDBMS, do E.F Codd đưa ra vào đầu thập kỷ 70.
- Tập hợp các đối tượng và / hoặc các mối quan hệ  Tập hợp các xử lý tác động tới các quan hệ  Ràng buộc dữ liệu đảm bảo tính chính xác và nhất quán.
- Column Quy định một loại dữ liệu trong bảng.
- Ví dụ: loại dữ liệu tên phòng Trang 4 / 47 ban có trong bảng phòng ban.
- Ta thể hiển thị column này thông qua tên column và có thể kèm theo một vài thông tin khác về column như kiểu dữ liệu, độ dài của dữ liệu.
- Field chính là nơi chứa dữ liệu.
- Nếu không Field có dữ liệu trong field ta nói field có gia trị là NULL.
- Ví dụ DEPTNO là Primary Key của bảng DEPT vì nó được dùng để xác định duy nhất một phòng ban trong bảng Primary Key DEPT mà đại diện là một row dữ liệu.
- Là các ràng buộc đối với dữ liệu trong các bảng thuộc database.
- Ví Constraints dụ: Foreign Key, Primary Key...1.2.2 CÁC ĐỐI TƯỢNG TRONG DATABASE Đối tượng Diễn giải Table Cấu trúc lưu trữ cơ bản nhất trong CSDL quan hệ (RDBMS), gồm row và column View Là cấu trúc logic hiển thị dữ liệu từ 1 hoặc nhiều bảng Sequence Sinh giá trị cho các primary key Index Tăng tính thực thi cho câu lệnh truy vấn Synonym Tên tương đương của đối tượng Tập hợp các câu lệnh thực hiện được viết bởi ngôn ngữ SQL và Program unit PL/SQL, bao gồm Procedure, function, package...1.2.3 CÁC NHÓM LỆNH SQL ĐƠN GIẢN Ngôn ngữ SQL có các nhóm lệnh sau.
- Truy vấn dữ liệu (select): là lệnh thường sử dụng nhất để lấy dữ liệu từ CSDL.
- Lệnh cập nhật dữ liệu (DML – Insert, update, delete): được sử dụng để thực hiện các thao tác thêm, sửa, xóa.
- Trang 5 / 47 Lệnh định nghĩa cấu trúc dữ liệu (DDL – create, alter, replace, drop): tạo, thay thế, sửa đổi, xóa. Lệnh phân quyền truy cập (grant, revoke) Lệnh quản lý giao tác: save point, commit, rollback.
- Nội dung của một câu lệnh SQL có thể được trải dài trên nhiều dòng.
- để biểu diễn giá trị trong câu lệnh.
- Với: SELECT Hiển thị nội dung của một hay nhiều cột DISTINCT Phân biệt nội dung giữa các dòng dữ liệu trả về * Lấy tất các các cột trong bảng column Tên cột dữ liệu cần trả về alias Phần tiêu đề của cột dữ liệu trả về FROM table Tên bảng chứa dữ liệu truy vấn Ví dụ: SELECT * FROM emp.
- Mệnh đề chọn lựa bao gồm Lệnh SELECT và tên cột dữ liệu trả về  Mệnh đề biểu diễn nơi chứa bao gồm FROM và tên bảng.2.1.3 CÁC THÀNH PHẦN KHÁC CỦA MỆNH ĐỀ SELECT Trong mệnh đề SELECT còn có thể đưa vào các thành phần khác.
- Ví dụ: SELECT ename, sal *12, comm FROM emp.
- Ví dụ: (ANUAL chính là column alias) SELECT ename, SAL*12 ANUAL, comm FROM emp.
- Ghép tiếp các cột dữ liệu Toán tử ghép tiếp chuỗi.
- cho phép ghép tiếp dữ liệu trong các cột khác nhau của cùng một dòng dữ liệu với nhau thành một chuỗi.
- Ví dụ: SELECT empno||ename EMPLOYEE FROM emp.
- Ví dụ: SELECT empno.
- deptno ‘Employee Detail’ FROM emp;2.1.4 PHÂN BIỆT GIÁ TRỊ DỮ LIỆU TRẢ VỀ Trong thực tế nhiều khi giá trị dữ liệu trên các dòng dữ liệu kết xuất trùng nhau.
- Để có thể lấy được chỉ các dòng dữ liệu phân biệt với nhau.
- Ta sử dụng mệnh đề DISTINCT trong câu lệnh truy vấn.
- Ví dụ: SQL> SELECT deoptno FROM dept.
- Các cột với bất cứ kiểu dữ liệu nào cũng có thể có trị NULL, trừ khi được nó là khóa hay có ràng buộc toàn vẹn NOT NULL.
- Ví dụ: SELECT ename, sal*12 + comm ANUAL_SAL FROM emp.
- Trong câu lệnh sau không có mẫu tin nào được chọn SELECT * FROM emp WHERE comm=NULL.
- Theo đó người sử dụng có thể tương tác với Oracle Server thông qua hai loại câu lệnh.
- Câu lệnh SQL  Câu lệnh của bản thân chương trình SQL*Plus Hình 1 Câu lệnh SQL*Plus Khác biệt giữa lệnh SQL và SQL*Plus SQL SQL*Plus Là ngôn ngữ để giao tiếp với Oracle Nhận dạng lệnh SQL và gửi lệnh lên Server Server trong việc truy xuất dữ liệu Câu lệnh dựa trên bộ ký tự chuẩn ASCII Tuỳ thuộc vào từng phiên bản của Oracle Câu lệnh được nạp vào bộ nhớ đệm trên Câu lệnh được tải trực tiếp không thông qua một hoặc nhiều dòng bộ đệm Câu lệnh không được viết tắt Câu lệnh có thể viết tắt Trang 10 / 47 Có sử dụng ký tự kết thúc lệnh khi thực Không đòi hỏi phải có ký tự kết thúc lệnh hiện Sử dụng các hàm trong việc định dạng Sử dụng các lệnh định dạng dữ liệu của chính dữ liệu SQL*Plus2.2.2 PHÂN NHÓM CÂU LỆNH TRONG SQL*PLUS Các lệnh SQL*Plus có thể phân thành nhóm chính sau: Nhóm lệnh Diễn giải Môi trường Tác động và gây ảnh hưởng tới môi trường làm việc của SQL*Plus trong phiên làm việc hiện tại.
- Định dạng dữ liệu Định dạng lại dữ liệu trả về từ server Thao tác file Lưu giữ, nạp và chạy các file scrips Thực hiện lệnh Gửi các lệnh SQL có trong bộ đệm lên server Soạn thảo Sửa đổi lại lệnh SQL có trong bộ đệm Tương tác Cho phép người dùng có thể tạo các biến sử dụng trong câu lệnh SQL và thao tác với các biến đó như: nhập dữ liệu, kết xuất dữ liệu.
- Các lệnh khác Các lệnh khác cho phép kết nối tới cơ sở dữ liệu và hiển thị các cột dữ liệu theo như định dạng.2.2.3 CHI TIẾT CÁC LỆNH SQL*PLUS CƠ BẢN Kết nối tới CSDL Cú pháp: Conn[ect.
- Hiển thị cấu trúc bảng dữ liệu Cú pháp: Desc[ribe.
- Name Null? Type DEPTNO NOT NULL NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13) Trang 11 / 47Lệnh soạn thảo Tên lệnh Diễn giảiA[PPEND] text Đưa thêm đoạn text vào dòng hiện tạiC[HANGE] Chuyển đoạn text cũ thành đoạn text mới trong dòng hiện tại/old/newC[HANGE] /text/ Xoá đoạn text trong dòng hiện tạiCL[EAR] Xoá tất cả các dòng trong SQL bufferBUFF[ER]DEL Xoá dòng hiện tạiDEL n Xoá dòng nDEL m n Xoá dòng từ m đến nI[NPUT] Thêm một số dòng nhất địnhI[NPUT] text Thêm dòng có chứa textL[IST] Liệt kê toàn bộ các dòng trong SQL bufferLệnh định dạng cột dữ liệu COLUMN [{column | alias} [option]]Ví dụ 1: Chỉnh định dạng và nhãn của column COLUMN ename HEADING ‘Employee|Name’ FORMAT A15 COLUMN sal JUSTIFY LEFT FORMAT COLUMN hiredate FORMAT A9 NULL ‘ Not hired’ Trang 12 / 473 TRUY VẤN DỮ LIỆU CÓ ĐIỀU KIỆN3.1 CÁC GIỚI HẠN TRONG TRUY VẤN DỮ LIỆU Trong phần lớn các trường hợp lấy dữ liệu từ database, ta chỉ cần lấy một phần dữ liệu chứ không cần lấy tất cả.
- Để hạn chế các dữ liệu trả về không cần thiết, ta có thể sử dụng mệnh đề điều kiện trong câu lệnh truy vấn.
- Hình 2 Ví dụ giới hạn trong truy vấn dữ liệu3.1.1 MỆNH ĐỀ WHERE Cú pháp: SELECT [DISTINCT.
- Với: column tên cột dữ liệu trả về alias tiêu đề của cột dữ liệu trả về table tên bảng truy vấn dữ liệu condition mệnh đề điều kiện để lọc dữ liệu trả về Mệnh đề WHERE dùng để đặt điều kiện cho toàn bộ câu lệnh truy vấn.
- Trong mệnh đề WHERE có thể có các thành phần: Trang 13 / 47  Tên column  Toán tử so sánh  Tên column, hằng số hoặc danh sách các giá trị Ví dụ: SELECT DEPTNO, JOB, ENAME, SAL FROM EMP WHERE SAL BETWEEN 1000 AND 2000 .
- Truy vấn dữ liệu với nhiều điều kiện Mệnh đề WHERE cho phép ghép được nhiều điều kiện thông qua các toán tử logic AND/OR.
- Toán tử AND yêu cầu dữ liệu phải thoả mãn cả 2 điều kiện.
- Toán tử OR cho phép dữ liệu thoả mãn 1 trong 2 điều kiện.
- Ví dụ: SELECT DEPTNO, JOB, ENAME, SAL FROM EMP WHERE SAL BETWEEN 1000 AND 2000 AND JOB = ‘MANAGER’.
- Trang 15 / 47 IS [NOT] NULL Ví dụ: SELECT * FROM emp WHERE comm IS NULL ;3.2 SẮP XẾP DỮ LIỆU TRẢ VỀ3.2.1 MỆNH ĐỀ ORDER BY Cú pháp: SELECT [DISTINCT.
- Ví dụ: SELECT ENAME, JOB, SAL*12, DEPTNO FROM EMP ORDER BY ENAME.
- Vi dụ: SELECT ENAME, JOB, HIREDATE FROM EMP ORDER BY HIREDATE DESC ;3.2.2 SẮP XẾP NHIỀU CỘT DỮ LIỆU TRẢ VỀ Mệnh đề Order còn có thể sắp xếp nhiều column.
- Ví dụ: SELECT DEPTNO, JOB, ENAME, SAL FROM EMP ORDER BY DEPTNO, SAL DESC .
- Ví dụ: SELECT DEPTNO, JOB, ENAME, SAL FROM EMP ORDER BY 2.
- Thực hiện việc tính toán ngay trên dữ liệu  Có thể thao tác, thay đổi ngay trên từng mục dữ liệu trả về  Hoặc cũng có thể thao tác trên nhóm các dữ liệu trả về  Có thể định dạng lại các dữ liệu trả về có kiểu số, hay kiểu thời gian  Có thể chuyển đổi kiểu dữ liệu trả về4.1.2 PHÂN LOẠI HÀM SQL Hàm SQL có thể phân ra làm hai loại.
- Hàm tác động trên từng dòng dữ liệu: Giá trị trả về tương ứng với từng dữ liệu đầu vào tại mỗi dòng dữ liệu.
- Hàm tác động trên nhóm các dòng dữ liệu: Giá trị trả vê tương ứng với các phép thao tác trên nhóm dữ liệu trả về.
- Trang 18 / 47 Hình 4 Phân loại hàm SQL4.2 HÀM SQL THAO TÁC TRÊN TỪNG DÒNG DỮ LIỆU4.2.1 CÁC HÀM THAO TÁC TRÊN KIỂU DỮ LIỆU SỐ Một số hàm kiểu dữ liệu số thông dụng4.2.2 CÁC HÀM THAO TÁC TRÊN KIỂU DỮ LIỆU KÝ TỰ Một số hàm kiểu dữ liệu ký tự thông dụng Trang CÁC HÀM THAO TÁC TRÊN KIỂU DỮ LIỆU THỜI GIAN Một số hàm kiểu dữ liệu ký tự thông dụng Một số hàm có thể áp dụng cho kiểu ngày Trang CÁC HÀM CHUYỂN ĐỔI KIỂU4.3 HÀM THAO TÁC TRÊN TẬP HỢP4.3.1 CÁC HÀM TÁC ĐỘNG TRÊN NHÓM Các hàm tác động trên nhóm các dòng dữ liệu hay tác động lên một tập hợp các các dòng dữ liệu bao gồm: Chú ý: Tất cả các hàm trên nhóm mẫu tin đều bỏ qua giá trị NULL trừ hàm COUNT.
- Có 2 cách để dùng các các hàm này  Tác động trên toàn bộ các dòng dữ liệu của câu lệnh truy vấn  Tác động trên một nhóm dữ liệu cùng tính chất của câu lệnh truy vấn.
- [WHERE condition][GROUP BY expr] [HAVING condition] [ORDER BY expr/position [DESC/ASC]] Trang 21 / 47Mệnh đề GROUP BY sẽ nhóm các dòng dữ liệu có cùng giá trị của expr.
- Ví dụ: GROUPBY JOB nghĩa là sẽ nhóm các nghề giống nhau.Mệnh đề HAVING là đặt điều kiện của nhóm dữ liệu.
- Trang 22 / 475 LỆNH TRUY VẤN DỮ LIỆU MỞ RỘNG5.1 KẾT HỢP DỮ LIỆU TỪ NHIỀU BẢNG5.1.1 MỐI LIÊN KẾT TƯƠNG ĐƯƠNG Mối liên kết tương đương được thể hiện trong mệnh để WHERE.
- Ví dụ: WHERE E.SAL BETWEEN S.
- Ví dụ: SELECT E.ENAME,E.JOB, S.GRADE FROM EMP E, SALGRADE S WHERE E.SAL BETWEEN S.
- Một câu lệnh select chỉ đặt được 1 mối liên kết cộng, dấu.
- DEPTNO AVG(SAL TOÁN TỬ SOME/ANY/ALL/NOT IN/EXITS Trang 25 / 476 BIẾN RUNTIME6.1 DỮ LIỆU THAY THẾ TRONG CÂU LỆNH Dùng.
- để chỉ phần thay thế trong câu lệnh.
- Ví dụ 3: CREATE TABLE DEPT10 AS SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE DEPTNO =10.
- Tính toán khoảng đĩa trống để chứa dữ liệu của data block.
- Có thể dùng các ký tự.
- Database link là một schema object, Oracle dùng để thâm nhập và truy xuất CSDL từ xa.7.3 CÁC KIỂU DỮ LIỆU CƠ BẢN7.3.1 KIỂU CHAR Kiểu CHAR dùng để khai báo một chuỗi có chiều dài cố định, khi khai báo biến hoặc cột kiểu CHAR với chiều dài chỉ định thì tất cả các mục tin của biến hay cột này đều có cùng chiều dài được chỉ định.
- Có một số hạn chế khi dùng kiểu LONG  Một table không thể chứa nhiều hơn một cột kiểu LONG  Dữ liệu kiểu LONG không thể tham gia vào các ràng buộc toàn vẹn, ngoại trừ kiểm tra NULL và khác NULL  Không thể index một cột kiểu LONG  Không thể truyền tham số kiểu LONG cho hàm hoặc thủ tục.
- Các hàm không thể trả về dữ liệu kiểu LONG  Trong câu lệnh SQL có truy cập các cột kiểu LONG, thì việc cập nhật hoặc khóa các bảng chỉ cho phép trong cùng một CSDL Ngoài ra, các cột kiểu LONG không được tham gia trong các thành phần sau của câu lệnh SQL  Các mệnh đề WHERE, GROUP BY, ORDER BY, CONNECT BY hoặc với tác tử DISTINCT trong câu lệnh SELECT  Các hàm sử dụng trong câu lệnh SQL như SUBSTR, INSTR Trong danh sách lựa chọn của câu lệnh SELECT có sử dụng mệnh đề GROUP BY  Trong danh sách lựa chọn của câu hỏi con, câu hỏi có sử dụng các toán tử tập hợp  Trong danh sách lựa chọn của câu lệnh CREATE TABLE AS SELECT7.3.7 KIỂU DATE Dùng để chứa dữ liệu ngày và thời gian.
- Tính toán đối với kiểu ngày Đối với dữ liệu kiểu ngày, bạn có thể thực hiện các phép toán cộng và trừ.
- Ví dụ: SELECT TO_CHAR (TO_DATE MM-DD-YYYY.
- Kết quả: JULIAN KIỂU RAW VÀ KIỂU LONG RAW Kiểu RAW và LONG RAW dùng để chứa các chuỗi byte, các dữ liệu nhị phân như hình ảnh, âm thanh.
- Các dữ liệu kiểu RAW chỉ có thể gán hoặc truy cập chứ không được thực hiện các thao tác như đối với chuỗi ký tự.
- Với block Chuỗi hệ hexa cho biết block chứa row row Chuỗi hệ hexa cho biết row trong block file Chuỗi hệ hexa cho biết database file chứa block Ví dụ: 0000000F.0000.0002 Row đầu tiên trong block 15 của data file thứ hai7.3.10 KIỂU MLSLABEL Kiểu MLSLABEL dùng để chứa label dạng nhị phân mà Oracle dùng để đảm bảo hoạt động của bản thân hệ thống Trang CHUYỂN ĐỔI KIỂU Chuyển đổi mặc định Nói chung một biểu thức không thể gồm các giá trị thuộc nhiều kiểu khác nhau, tuy nhiên Oracle cho phép chuyển đổi giưã các kiểu dữ liệu.
- Oracle tự động chuyển kiểu của dữ liệu trong một số trường hợp sau  Khi INSERT hoặc UPDATE gán giá trị cho cột có kiểu khác, Oracle sẽ tự động chuyển giá trị sang kiểu của cột.
- Ví dụ 1: SELECT ename FROM emp WHERE hiredate = '12-MAR-1993' Oracle đã tự động chuyển chuỗi '12-MAR-1993' sang kiểu DATE trong phép so sánh Ví dụ 2: SELECT ename FROM emp WHERE ROWID Oracle đã tự động chuyển chuỗi sang kiểu ROWID trong phép so sánh Người sử dụng tự chuyển đổi Oracle cung cấp các hàm để chuyển đổi kiểu, ví dụ  TO_NUMBER Chuyển sang kiểu số  TO_CHAR Chuyển sang kiểu ký tự  TO_DATE Chuyển sang kiểu ngày (xem phần tra cứu các hàm và thủ tục)7.4 RÀNG BUỘC DỮ LIỆU TRONG TABLE Các dạng constraint gồm.
- Ví dụ mệnh đề ràng buộc: CREATE TABLE DEPT ( DEPTNO NUMBER(2) NOT NULL, DNAME CHAR(14), LOC CHAR(13), CONSTRAINT DEPT_PRIMARY_KEY PRIMARY KEY (DEPTNO.
- Từ khoá ON DELETE CASCADE được hỉ định trong dạng khoá này để chỉ khi dữ liệu cha bị xoá (trong bảng DEPT) thì dữ liệu con cũng tự động bị xoá theo (trong bảng EMP).7.4.5 CHECK Ràng buộc kiểm tra giá trị.
- Ví dụ 1: ALTER TABLE emp ADD (spouse_name CHAR(10).
- Ví dụ 2: ALTER TABLE emp MODIFY (ename CHAR(25).
- Ví dụ 3: ALTER TABLE emp DROP CONSTRAINT emp_mgr.
- Ví dụ: DROP TALE emp  Khi drop table thì.
- Xóa tất cả dữ liệu  View và synonymliên quan vẫn còn nhưng không có giá trị  Các giao dịch chưa giải quyết xong sẽ được commit  Chỉ người tạo ra table hay DBA mới có thể xóa table Trang CHÚ DẪN CHO TABLE Dùng lệnh COMMENT để chú thích.
- Cú pháp: RENAME old TO new Trong đó: old Tên cũ new Tên mới Ví dụ: RENAME emp TO employee7.5.5 XÓA DỮ LIỆU CỦA TABLE Dùng lệnh TRUNCATE TABLE để xóa dữ liệu của table, xóa tất cả các row trong table.
- Cú pháp: TRUNCATE TABLE table_name [REUSE STORAGE] Trong đó: REUSE STORAGE giữ lại khung để chứa, chỉ xóa dữ liệu7.6 THÔNG TIN VỀ TABLE TRONG TỪ ĐIỂN DỮ LIỆU Trung tâm của cơ sở dữ liệu Oracle là data dictionary.
- Data dictionary tự động được tạo ra khi cơ sở dữ liệu Oracle được tạo.
- Các table của từ điển dữ liệu được tạo ra bằng lệnh CREATE DATABASE và chỉ được tạo từ user SYS.
- Các view trong từ điển dữ liệu chức các thông tin dưới dạng dễ nhìn hơn bảng.
- DICTIONARY: Thông tin về toàn bộ các table, view, snapshot trong từ điển dữ liệu  TABLE_PRIVILEGES: Thông tin về việc gán quyền trên các đối tượng  IND: đồng nghĩa của USER_INDEX.
- Muốn hiển thị toàn bộ thông tin về các table, view, snapshot trong từ điển dữ liệu dùng lệnh SELECT * FROM DICTIONARY.
- Trang 36 / 47Hiển thị cấu của USER_OBJECTDESCRIBE USER_OBJECT;Hiển thị tất cả các bảng mã user đó sở hữu:SELECT OBJECT_NAME FROM USER_OBJECT WHERE OBJECT_TYPE = ‘TABLE’;SELECT * FROM TAB;SELECT TABLE_NAME FROM USER_TABLE;Hiển thị tất cả các loại đối tượng trong từ điển dữ liệu:SELECT DISTINCT OBJECT_TYPE FROM USER_OBJECTS.
- Trang 37 / 478 CÁC LỆNH THAO TÁC DỮ LIỆU8.1 THAO TÁC DỮ LIỆU TRONG TABLE8.1.1 THÊM MỚI DÒNG DỮ LIỆU Để chèn một row vào table dùng lệnh INSERT.
- 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.
- Ví dụ: o Lệnh INSERT không điều kiện (UNCONDITIONAL) INSERT ALL INTO T1 (C1, C2.
- 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à đúng8.1.2 CẬP NHẬT DÒNG DỮ LIỆU Để chỉnh sửa dữ liệu dùng lệnh UPDATE.
- 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.
- VALUES (C1,C XÓA DÒNG DỮ LIỆU Để xóa dòng dùng lệnh DELETE.
- Cú pháp: DELETE FROM table [WHERE condition] Ví dụ: DELETE FROM emp WHERE deptno LỖI RÀNG BUỘC DỮ LIỆU Thông thường khi thực hiện các lệnh thao tác dữ liệu hay gặp phải các lỗi ràng buộc toàn vẹn dữ liệu.
- Các lỗi này xuất hiện khi có các ràng buộc trước đó mà dữ liệu nhập vào, chỉnh sửa hay khi xoá đi không đảm bảo các điều kiện toàn vẹn.
- Sau đó báo tên của Constraint bị lỗi.8.2 LỆNH ĐIỀU KHIỂN GIAO DỊCH Một câu lệnh SQL có thể gồm Trang 39 / 47 Lệnh DML thao tác dữ liệu Lệnh DDL định nghĩa dữ liệu Lệnh DCL điều khiển truy nhập dữ liệuMột giao dịch bắt đầu khi một lệnh SQL được thực hiện Một giao dịch kết thúc một trongcá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.Cú pháp: Kết thúc giao dịch hiện tại, thực hiện các chuyển đổi dữ liệuCOMMIT Xác định điểm savepoint của giao dịchSAVEPOINT name Quay lại dữ liệu ở điểm SAVEPOINT hoặc toàn bộ giao dịch.ROLLBACK [TO SAVEPOINT name] Tự động COMMIT khi thực hiện các lệnh Insert, update, delete.SET AUTO[COMMIT] ON/OFFVí dụ:INSERT INTO DEPT VALUES (50,’TESTING’,’LAS VEGAS’);SAVEPOINT INSERT_DONE;UPDATE DEPT SET DNAME = ‘MARKETING’;ROLLBACK TO INSERT_DONE ;UPDATE DEPT SET DNAME = ‘MARKETING’ WHERE DNAME =’SALES’;COMMIT.
- Dùng Index khi mà việc lấy dữ liệu

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt