Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
855,53 KB
Nội dung
Trường Đại học Công nghệ thông tin Bộ môn Hệ thống thông tin Môn học: Hệ quản trị CSDL Oracle GV: Dương Khai Phong Email: khaiphong@gmail.com Nội dung môn học: Giới thiệu Oracle Các công cụ Oracle • Cơng cụ Enterprise Manager (EM) • Cơng cụ SQL Plus • Cơng cụ iSQLPlus Ngơn ngữ SQL Ngôn ngữ thủ tục PL/SQL Kiến trúc quản trị Oracle Phần 3: NGÔN NGỮ SQL Ngôn ngữ SQL – Giới thiệu Là ngôn ngữ chuẩn để truy vấn thao tác CSDL quan hệ Là ngôn ngữ phi thủ tục Khởi nguồn SQL SEQUEL - Structured English Query Language, năm 1974) Các chuẩn SQL › SQL89 (SQL1) › SQL92 (SQL2) › SQL99 (SQL3) Ngôn ngữ SQL – Phân loại Ngôn ngữ định nghĩa liệu: tạo table (bảng), view (khung nhìn), sửa cấu trúc table thêm, xóa RBTV, xóa table, xóa view, đổi tên table Ngơn ngữ thao tác liệu: thêm, xóa, sửa liệu, truy vấn liệu Ngôn ngữ điều khiển liệu: tạo quyền hạn, xóa quyền, làm cho hiệu lực/mất hiệu lực quyền, tạo người dùng, đổi mật khẩu, xóa người dùng, cấ́p quyền thu hồi quyền sử dụng sở liệu Ngoài cịn có lệnh điều khiển giao tác Lệnh thao tác thành phần CSDL khác: Synonym, Index Sequence Ngôn ngữ SQL Ngôn ngữ định nghĩa liệu Ngôn ngữ định nghĩa liệu (DDL– Data Definition Language) Bao gồm: › Lệnh tạo table, tạo view (CREATE ) › Lệnh sửa cấu trúc table, thêm, xóa ràng buộc tồn vẹn table (ALTER ) › Lệnh xóa table, xóa view (DROP ) › Đổi tên table (RENAME…) Phần 3: Ngôn ngữ SQL Ngôn ngữ thao tác liệu Ngôn ngữ thao tác liệu (DML – Data Manipulation Language) Bao gồm: › Lệnh thêm liệu (INSERT ) › Lệnh sửa liệu (UPDATE ) › Lệnh xóa liệu (DELETE ) › Truy vấn liệu (SELECT ) Phần 3: Ngôn ngữ SQL Ngôn ngữ điều khiển liệu Ngôn ngữ điều khiển liệu (DCL – Data Control Language) Bao gồm: › Lệnh tạo quyền hạn (Create Role…) › Lệnh thiết lập, đổi hay bỏ mật role (Alter Role…) › Lệnh xóa quyền hạn (Drop Role…) › Lệnh tạo người dùng, đổi mật xóa người dùng (Create User…, Alter User…, Drop User…) › Lệnh cấp quyền cho người sử dụng sở liệu (GRANT ) › Lệnh thu hồi quyền hạn người sử dụng sở liệu (REVOKE ) Phần 3: Ngôn ngữ SQL Các lệnh điều khiển giao tác + đối tượng khác Lệnh điều khiển giao tác bao gồm: › Lệnh COMMIT, lệnh ROLLBACK, lệnh SAVEPOINT, lệnh AUTOCOMMIT Các đối tượng khác: › SYNONYM: tạo Synonym (Create Synonym…), xóa Synnonym (Drop Synonym…) › INDEX: tạo mục cho table (Create Index…) , bảo đảm giá trị cột, thường giá trị Primary key › SEQUENCE: tạo giá trị SEQUENCE cho cột (Create Sequence…) NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU TẠO BẢNG, VIEW - CREATE Cú pháp tạo TABLE: CREATE TABLE ( tên_cột1 kiểu_dữ_liệu [not null], tên_cột2 kiểu_dữ_liệu [not null], … tên_cộtn kiểu_dữ_liệu [not null], khai báo khóa chính, khóa ngoại, ràng buộc tồn vẹn ) 10 NGÔN NGỮ ĐIỀU KHIỂN DỮ LIỆU Cấp phát quyền hạn (Privileges) cho User/Role Cú pháp cấp phát quyền cho người dùng GRANT privil1, privil2,…/ALL ON TO User1, User2,… [WITH GRANT OPTION] Cú pháp cấp phát quyền cho Role GRANT privil1, privil2,…/ALL ON TO Role1, Role2,… [WITH GRANT OPTION] Trong đó: - : tên Table, View, Sequence, Synonym, Procedure, Function, Package - privil1, privil1, quyền hệ thống nêu để cấp quyền table hay view - WITH GRANT OPTION: cho phép User/Roles phép gán quyền tiếp choUser/Roles khác 44 NGƠN NGỮ ĐIỀU KHIỂN DỮ LIỆU Cấp phát quyền hạn (Privileges) cho User/Role Ban quyền truy xuất đến tất User, Role lệnh GRANT privil1, privil2,…/ALL ON TO PUBLIC Ví dụ 1: cấp phát quyền cho user “Phuong” GRANT INSERT, UPDATE ON TênUserTạoTableNhanVien.NHANVIEN TO “Phuong” Ví dụ 2: cấp phát quyền cho role “QuanTriSV” GRANT ALL ON TênUserTạoTableNhanVien.NHANVIEN TO “QuanTriSV” WITH GRANT ADMIN 45 NGÔN NGỮ ĐIỀU KHIỂN DỮ LIỆU Cấp phát quyền hạn (Privileges) cho User/Role Gán quyền Role cho User (User cấp phát quyền Role) GRANT tên-Role TO tên-User [WITH GRANT OPTION] Ví dụ 1: cấp phát role “QuanTriSV” cho user “Phuong” GRANT “QuanTriSV” TO “Phuong” Ví dụ 2: cấp phát role “QuanTriSV” cho user “Phuong” cho phép user “Phuong” gán quyền “QuanTriSV” đến user khác GRANT “QuanTriSV” TO “Phuong” WITH GRANT ADMIN 46 NGÔN NGỮ ĐIỀU KHIỂN DỮ LIỆU Thu hồi quyền hạn (Privileges) cho User/Role Cú pháp rút lại (hủy bỏ) quyền cấp phát REVOKE privil1, privil2,…/Role1, Role2,… ON / FROM User1, User2,…/Role1, Role2,… Ví dụ REVOKE UPDATE, DELETE ON NHANVIEN FROM “Phuong” REVOKE ALL ON NHANVIEN FROM “QuanTriSV” 47 NGÔN NGỮ ĐIỀU KHIỂN DỮ LIỆU Các lệnh giao tác: Commit,RollBack,SavePoint… GIAO TÁC: Transaction giao tác CSDL bao gồm chuỗi thay đổi (hành động) hay nhiều table Điều khiển Transaction lệnh sau Lệnh COMMIT (hoàn tất giao tác) Cú pháp: COMMIT Lệnh ROLLBACK (phục hồi ngược lại chuỗi hành động thực trước đó) Cú pháp: ROLLBACK [TO SAVEPOINT name] Lệnh SavePoint Cú pháp: SAVEPOINT tên-SavePoint Chế độ AutoCommit (AUTOCOMMIT ON/OFF ) 48 NGÔN NGỮ ĐIỀU KHIỂN DỮ LIỆU Các lệnh giao tác – Ví dụ Ví dụ: minh họa cách dùng lệnh SavePoint, RollBack, Commit INSERT INTO DEPT VALUES (50, „TESTING‟, „LYON‟); SAVEPOINT insert_point1; UPDATE DEPT SET DNAME=‟MARKETING‟; ROLLBACK TO insert_point1; /*Lệnh UPDATE bị thải hồi*/ UPDATE DEPT SET DNAME=‟MARKETING‟ WHERE DNAME=‟SALES‟; /*Lệnh UPDATE duyệt lại*/ COMMIT; 49 NGÔN NGỮ ĐIỀU KHIỂN DỮ LIỆU Các lệnh giao tác – Ví dụ Ví dụ: minh họa cách dùng lệnh SavePoint, RollBack, Commit INSERT INTO DEPT VALUES (50, „TESTING‟, „LYON‟); SAVEPOINT insert_point1; UPDATE DEPT SET DNAME=‟MARKETING‟; ROLLBACK TO insert_point1; /*Lệnh UPDATE bị thải hồi*/ UPDATE DEPT SET DNAME=‟MARKETING‟ WHERE DNAME=‟SALES‟; /*Lệnh UPDATE duyệt lại*/ COMMIT; 50 CÁC ĐỐI TƯỢNG KHÁC ĐỐI TƯỢNG SYSNONYM Synonym: Là tên đặt cho đối tượng cụ thể (bí danh) Thường dùng synonym để tạo đối tượng dùng chung Ví dụ: Một người dùng muốn sử dụng bảng sở hữu người dùng khác thay gọi “tên_người_dùng.tên_bảng” user tạo synonym cho bảng với tên dễ nhớ đó, tên thật đối tượng che dấu Các thao tác Synonym: tạo Synonym, xóa Synonym 51 CÁC ĐỐI TƯỢNG KHÁC ĐỐI TƯỢNG SYSNONYM Tạo Synonym: Cú pháp: CREATE SYNONYM tênSynonym FOR tênUser.tênTable|tênView Ví dụ: CREATE SYNONYM nv FOR phuong.NHANVIEN; Xóa Synonym: Cú pháp: DROP SYNONYM tên-synonym; Ví dụ: DROP SYNONYM nv; 52 CÁC ĐỐI TƯỢNG KHÁC ĐỐI TƯỢNG INDEX Index (tạo mục): sử dụng Oracle Index nhằm - Tăng tốc độ xây dựng lại dịng theo khóa đặc biệt - Bảo đảm giá trị cột, thường giá trị primary key Tạo Index Cú pháp: CREATE [UNIQUE] INDEX index_name ON table (column1 [, ] , …) Ví dụ: CREATE UNIQUE INDEX i_cmnd ON NHAN_KHAU (SO_CMND); 53 CÁC ĐỐI TƯỢNG KHÁC ĐỐI TƯỢNG INDEX Phân loại index: - UNIQUE: Bảo đảm giá trị cột - NON UNIQUE: kết truy vấn nhanh - SINGLE COLUMN: Chỉ cột tồn index - CONCATENATED: Trên 16 cột index Xóa index Cú pháp: DROP INDEX index_name; Ví dụ: DROP INDEX i_cmnd; 54 CÁC ĐỐI TƯỢNG KHÁC ĐỐI TƯỢNG SEQUENCE – TẠO Sequence (giá trị tạo tự động) Sequence đối tượng tạo dãy số liên tiếp cách tự động, thường hay sử dụng câu lệnh INSERT để nhập liệu cho bảng (ví dụ mã khách hàng tăng tự động) Tạo Sequence Cú pháp: CREATE SEQUENCE sequence_name [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE] [ORDER | NOORDER] 55 CÁC ĐỐI TƯỢNG KHÁC ĐỐI TƯỢNG SEQUENCE – VÍ DỤ Ví dụ CREATE SEQUENCE s_nv MINVALUE MAXVALUE 9999999 INCREMENT BY START WITH 100 NOCACHE NOORDER NOCYCLE; Sử dụng Sequence giá trị hành dãy sequence lưu hai cột: - Giá trị hành sequence: tên_sequence.CURRVAL - Giá trị sequence: tên_sequence.NEXTVAL 56 CÁC ĐỐI TƯỢNG KHÁC ĐỐI TƯỢNG SEQUENCE Hai cột CURRVAL, NEXTVAL Oracle gọi pseudo column (cột ảo), người dùng truy xuất, không cập nhật liệu cột Oracle có cột ảo như: ROWID (mã dòng), ROWNUM (số thứ tự dịng), SYSDATE (ngày hành hệ thống),… Ví dụ: Khởi tạo giá trị sequence s_nv lệnh: SELECT s_nv.nextval from DUAL; (bảng DUAL tạm Oracle) Truy vấn giá trị sequence s_nv: SELECT s_nv.currval from DUAL; Sử dụng sequence câu insert: INSERT INTO NHANVIEN (MA_NV, HO_TEN) VALUES (s_nv.nextval, „Nguyen van A‟); /* s_nv sequence tạo trước */ 57 CÁC ĐỐI TƯỢNG KHÁC ĐỐI TƯỢNG SEQUENCE – SỬA, XÓA Sửa Sequence (tạo lại thông số) ALTER SEQUENCE tên-sequence [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE] [ORDER | NOORDER] Xóa Sequence Cú pháp DROP SEQUENCE tên-sequence Ví dụ: DROP SEQUENCE s_nv 58 ... 11 NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU TẠO BẢNG, VIEW – KIỂU DỮ LIỆU Loại liệu Mô tả VARCHAR2(n) Dữ liệu kiểu ký tự, n