Đối tượng cơ sở dữ liệu
Bảng(Table): lưu trữ dl, gồm các hàng và cột.
Khung nhìn(View): Tập con dữ liệu từ một hay nhiều
bảng.
Sequence: Bộ sinhra giá trị số tuầntự
Chỉ mục(Index): Nâng cao khả năng thực thi câu truy vấn.
Synonym: Thay thế tên cho đối tượng.
Ngoài ra còn một số đối tượng khác.
59 trang |
Chia sẻ: lylyngoc | Lượt xem: 1623 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Chương 6 Tạo và quản lý đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 6. Tạo và quản lý đối tượng 6 - 1
Chương 6 TẠO VÀ QUẢN LÝ ĐỐI
TƯỢNG
- Lý thuyết: 3 tiết
- Thực hành: 4 tiết
Chương 6. Tạo và quản lý đối tượng 6 - 2
6.1 Đối tượng cơ sở dữ liệu
6.2 Tạo bảng (Table)
6.3 Tạo khung nhìn (View)
6.4 Một số đối tượng khác
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 3
6.1 Định nghĨa
Đối tượng cơ sở dữ liệu
Bảng (Table): lưu trữ dl, gồm các hàng và cột.
Khung nhìn (View): Tập con dữ liệu từ một hay nhiều
bảng.
Sequence: Bộ sinh ra giá trị số tuần tự
Chỉ mục (Index): Nâng cao khả năng thực thi câu truy vấn.
Synonym: Thay thế tên cho đối tượng.
Ngoài ra còn một số đối tượng khác.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 4
6.1.2 Quy tắc đặt tên (Xem sách)
6.1.3 Câu lệnh tạo bảng (CREATE TABLE)
CREATE TABLE tablename
(colunm datatype [Default expr][col_constraint])
[table_constraint]
[AS subquery]
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 5
6.1.3 Câu lệnh tạo bảng (CREATE TABLE)
tablename Tên bảng cần tạo.
column Tên cột trong bảng.
datatype Kiểu dữ liệu của cột.
[DEFAULT expr] Giá trị mặc định của cột.
[col_constraint] Ràng buộc của bản thân cột.
[table_constraint] Ràng buộc của toàn bảng.
[AS subquery] Câu truy vấn con.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 6
6.1.3 Câu lệnh tạo bảng (CREATE TABLE)
Ví dụ: Tạo bảng Dept.
CREATE TABLE Dept
(DeptNo NUMBER(2) constraint pk Primary Key,
Dname VARCHAR2(14),
Loc VARCHAR2(13))
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 7
6.1.3 Câu lệnh tạo bảng (CREATE TABLE)
Ví dụ: Tạo bảng Emp gồm có các cột Empid, firstname, Job,
Salary, Deptid; trong đó Empid là khóa chính, Deptid là khóa
ngoại liên kết đến bảng Dept thông qua trường DeptId.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 8
6.1.3 Câu lệnh tạo bảng (CREATE TABLE)
CREATE TABLE Emp
(EmpId Number Not Null Constraint PK_EMP Primary Key,
firstname Varchar2(30) Not Null
Job Varchar2(9),
Salary Number(10,2) Constraint CK_SAL
CHECK(Salary>500),
DeptId number(2) Constraint NN_Deptid Not Null
Constraint FK_Deptid REFERENCES DEPT(Deptid))
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 9
6.1.3 Câu lệnh tạo bảng (CREATE TABLE)
- Tạo bảng bằng cách sử dụng câu lệnh truy vấn con
CREATE TABLE tablename
[(column, column…)]
AS Subquery;
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 10
6.1.3 Câu lệnh tạo bảng (CREATE TABLE)
Ví dụ: Tạo bảng Dept10 dựa vào bảng emp thông qua câu lệnh
truy vấn con.
Tạo và quản lý đối tượng
CREATE TABLE Dept10
AS
SELECT EmpId, Firstname, Job, SAL
FROM EMP
WHERE DeptId =10
Chương 6. Tạo và quản lý đối tượng 6 - 11
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.1 Kiểu dữ liệu chuỗi
- CHAR:
Chiều dài cố định
Tối đa 255 byte
- VARCHAR2:
Chiều dài thay đổi
Tối đa 2000 byte
- VARCHAR: Tương tự VARCHAR2
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 12
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.2 Kiểu dữ liệu số
- NUMBER
NUMBER(p, s): P là phần nguyên (1-38), s là phần thập
phân.
NUMBER(p): Không có phần thập phân.
NUMBER: Số với dấu chấm động với số chư˜ số trước
dấu thập phân bằng 38.
FLOAT(b): dấu chấm động với độ chính xác nhị phân là b
(1-126)
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 13
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.3 Kiểu dữ liệu ngày tháng
Chứa dữ liệu kiểu ngày và thời gian.
Có thể thực hiện các phép toán cộng và trừ.
Ngày Julian: Là giá trị số cho biết số ngày kể từ ngày 1
tháng giêng năm 4712 trước công nguyên.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 14
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.4 Kiểu LONG
Chiều dài biến đổi,
Tối đa 2 gigabyte.
Một bảng không thể chứa nhiều hơn một cột kiểu LONG
Các hàm không thể trả về dữ liệu kiểu LONG.
Không được có mặt trong mệnh đề WHERE, GROUP BY,
ORDER BY, CONNECT BY hoặc với từ khóa DISTINCT
trong câu lệnh SELECT.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 15
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.5 Kiểu RAW và kiểu LONG RAW
Chứa các chuỗi byte, dữ liệu nhị phân như hình ảnh, âm
thanh.
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ự.
Kiểu RAW giống như kiểu VARCHAR2
Kiểu LONG RAW giống kiểu LONG.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 16
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.6 Kiểu ROWID
Mỗi mẫu tin trong csdl có một địa chỉ có kiểu RowId.
RowId bao gồm các thành phần như sau:
block.row.file.
Trong đó:
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 tệp tin csdl chứa block.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 17
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.7 Chuyển đổi kiểu
- Chuyển đổi mặc định: Oracle sẽ tự động chuyển kiểu:
Khi INSERT hoặc UPDATE gán giá trị cho cột có kiểu khác
Sử dụng toán tử so sánh mà các giá trị có kiểu khác nhau
Sử dụng các hàm hoặc các toán tử mà các tham số có
kiểu khác nhau.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 18
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.7 Chuyển đổi kiểu
- Chuyển đổi mặc định: Oracle sẽ tự động chuyển kiểu:
Khi INSERT hoặc UPDATE gán giá trị cho cột có kiểu khác
Sử dụng toán tử so sánh mà các giá trị có kiểu khác nhau
Sử dụng các hàm hoặc các toán tử mà các tham số có
kiểu khác nhau.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 19
6.1.4 Các kiểu dữ liệu cơ bản
6.1.4.7 Chuyển đổi kiểu
- Người sử dụng tự chuyển đổi: Oracle cung cấp các hàm
để chuyển đổi kiểu sau:
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.
CAST (SQL Server) CAST(COL AS DATATYPE)
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 20
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- các quy tắc ràng buộc để ngăn chặn dư˜ liệu không
hợp lệ
- lưu trong từ điển dư˜ liệu của cơ sở dư˜ liệu.
NULL/NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY (Referential Key)
CHECK
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 21
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- Định nghĩa ràng buộc
CREATE TABLE tablename
(column datatype [DEFAULT expr]
[column_constraint]
...
[table_constraint][,…])
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 22
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- NULL/NOT NULL
Ví dụ: Tạo ràng buộc NOT NULL cho cột Deptid.
CREATE TABLE Dept (
Deptid NUMBER(2) NOT NULL,
Deptname CHAR(14),
Loc CHAR(13))
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 23
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- UNIQUE
Ví dụ: Tạo bảng Dept với ràng buộc cột Deptid không được
có giá trị trùng nhau.
CREATE TABLE Dept (
Deptid NUMBER(2) NOT NULL,
DeptdName CHAR(14),
Loc CHAR(13),
CONSTRAINT UNQ_DEPTNO UNIQUE(DeptId))
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 24
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- PRIMARY KEY: là dạng UNIQUE cấp cao nhất
Cú pháp khi đặt ràng buộc ở mức bảng
[CONSTRAINT constraint_name] PRIMARY KEY (column,
Column,...)
Cú pháp khi đặt ràng buộc ở mức cột
[CONSTRAINT constraint_name] PRIMARY KEY
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 25
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- PRIMARY KEY
Ví dụ: Tạo bảng Dept với cột DeptId là khóa chính.
CREATE TABLE Dept (
DeptId NUMBER(2) NOT NULL CONSTRAINT
PK_DEPT PRIMARY KEY,
DeptName CHAR(14),
Loc CHAR(13))
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 26
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- FOREIGN KEY (Referential)
ràng buộc tham chiếu giữa bảng này với bảng khác
từ khoá ON DELETE CASCADE
từ khoá ON UPDATE CASCADE
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 27
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- CHECK
Ràng buộc kiểm tra giá trị.
Ví dụ: Tạo bảng Emp gồm có các cột EmpId, Firstname,
salary DeptId với các ràng buộc sau:
Cột EmpId là khóa chính.
Cột Firstname không được chứa giá trị NULL.
Cột Salary chứa giá trị >500.
Cột DeptId là khóa ngoại liên kết đến bảng Dept trong cơ
sở dư˜ liệu của Scott
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 28
6.1.4 Các kiểu dữ liệu cơ bản
6.1.5 Ràng buộc (Constraint)
- CHECK
Tạo và quản lý đối tượng
CREATE TABLE Emp
(EmpId Number(5) Not null Constraint Pk_emp Primary Key,
Firstname VARCHAR2(30) Not null,
salary Number(10,2) Constraint Ck_sal CHECK(salary>500),
DeptId Number(5) Constraint NN_DeptId Not null
Constraint FK_DeptId References SCOTT.Dept(DeptId))
Chương 6. Tạo và quản lý đối tượng 6 - 29
6.1.6 Câu lệnh sửa đổi bảng (ALTER TABLE)
Thêm một cột mới vào bảng.
Chỉnh sửa thuộc tính của cột đa˜ có trong bảng.
Định nghĩa một giá trị mặc định cho cột mới.
Xóa một hay nhiều cột.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 30
6.1.6 Câu lệnh sửa đổi bảng (ALTER TABLE)
Cú pháp
ALTER TABLE tablename
ADD (column datatype [DEFAULT Expr], …)
ALTER TABLE tablename
MODIFY (column datatype [DEFAULT Expr], …)
ALTER TABLE tablename
DROP(column)
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 31
6.1.6 Câu lệnh sửa đổi bảng (ALTER TABLE)
Chú ý
không thể chuyển tính chất của cột có nội dung là NULL
chuyển thành NOT NULL;
Không thể đưa thêm một cột NOT NULL nếu bảng đã có
số liệu. Phải thêm cột NULL, điền đầy số liệu, sau đó chuyển
thành NOT NULL.
Không thể chuyển đổi kiểu khác nhau nếu cột đã chứa số
liệu.
Không thể dùng mệnh đề MODIFY để định nghĩa các
ràng buộc trừ ràng buộc NULL/NOT NULL.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 32
6.1.6 Câu lệnh sửa đổi bảng (ALTER TABLE)
Ví dụ: Thêm cột mới có tên Job_id vào bảng Dept10
ALTER TABLE Dept10 ADD (Job_id CHAR(9))
Sửa độ lớn cột Ename thành 25.
ALTER TABLE Emp MODIFY (Ename CHAR(25))
Xóa ràng buộc khóa ngoại trên cột emp_mgr.
ALTER TABLE Emp DROP CONSTRAINT emp_mgr
Xóa ràng buộc khóa chính của bảng Emp
ALTER TABLE DROP PRIMARY KEY
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 33
6.1.7 Câu lệnh xóa bảng (DROP TABLE)
xóa một bảng trong cơ sở dư˜ liệu.
Khi một bảng bị xóa thì tất cả dư˜ liệu trong bảng, chỉ mục
liên quan đều bị xóa và không thể khôi phục lại.
Tạo và quản lý đối tượng
DROP TABLE tablename [CASCADE CONSTRAINTS]
Trong đó:
CASCADE CONSTRAINTS Xóa tất cả các ràng buộc toàn
vẹn liên quan đến bảng bị xóa
Chương 6. Tạo và quản lý đối tượng 6 - 34
6.1.7 Câu lệnh xóa bảng (DROP TABLE)
Một số nguyên tắc khi xóa bảng
Tất cả dữ liệu trong bảng đều bị xóa.
View và synonym liên quan vẫn còn nhưng không có giá trị.
Các chuyển tác chưa giải quyết xong sẽ được commit.
Chỉ người tạo ra bảng hay quyền quản trị mới có thể xóa
bảng.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 35
6.1.7 Câu lệnh xóa bảng (DROP TABLE)
Một số nguyên tắc khi xóa bảng
Tất cả dữ liệu trong bảng đều bị xóa.
View và synonym liên quan vẫn còn nhưng không có giá trị.
Các chuyển tác chưa giải quyết xong sẽ được commit.
Chỉ người tạo ra bảng hay quyền quản trị mới có thể xóa
bảng.
Ví dụ: Xóa bảng EMP_COPY.
DROP TALE EMP_COPY
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 36
6.2 Tạo khung nhìn (View)
6.2.1 Định nghĩa
Khung nhìn là một bảng ảo
cho phép xem dư˜ liệu từ một bảng hay một khung nhìn
khác
Giới hạn truy cập dư˜ liệu.
Tạo những câu lệnh truy vấn đơn giản từ kết quả của câu
lệnh truy vấn phức tạp.
Cung cấp dư˜ liệu độc lập cho người dùng và các chương
trình ứng dụng.
Tạo nhiều view khác nhau trên cùng một dư˜ liệu nguồn.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 37
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 38
6.2 Tạo khung nhìn (View)
6.2.2 Tạo khung nhìn
CREATE [OR REPLACE][FORCE] VIEW viewname
[(column, column,...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]]
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 39
6.2 Tạo khung nhìn (View)
6.2.2 Tạo khung nhìn
Trong đó:
OR REPLACE đè lên view cùng tên đa˜ tồn tại.
FORCE Tạo view cả khi bảng hay view nào đó không
tồn tại trong câu lệnh SELECT.
WITH CHECK OPTION Chỉ có những dòng có thể truy cập
tới view mới có thể được chèn hay cập nhât.
CONSTRAINT Tên của ràng buộc CHECK OPTION.
WITH READ ONLY Chỉ cho phép đọc trên view
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 40
6.2 Tạo khung nhìn (View)
6.2.2 Tạo khung nhìn
Ví dụ: Tạo khung nhìn tên dept_sumary hiển thị tên phòng
ban, mức lương thấp nhất, cao nhất và mức lương trung bình
của mỗi phòng ban.
CREATE VIEW dept_sumary (Name, Minsal, Maxsal, Avgsal)
AS
SELECT Deptname, min(salary), max(salary), avg(salary)
FROM Emp, Dept
WHERE emp.DeptId = dept.DeptId
GROUP BY Deptname
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 41
6.2 Tạo khung nhìn (View)
6.2.2 Tạo khung nhìn
Kết quả thực hiện:
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 42
6.2 Tạo khung nhìn (View)
6.2.2 Tạo khung nhìn
Ví dụ: Tạo khung nhìn tên emp_view cho phép xem dư˜ liệu
các cột EmpId, Firstname và Salary của bảng Emp.
CREATE VIEW emp_view
AS
SELECT Empid, Firstname, salary
FROM Emp WHERE DeptId = 10
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 43
6.2 Tạo khung nhìn (View)
6.2.3 Chỉnh sửa khung nhìn
Sử dụng mệnh đề CREATE OR REPLACE VIEW để sửa
view.
Ví dụ: Thêm tên mới cho mỗi cột của khung nhìn empvu80.
CREATE OR REPLACE VIEW empvu80
(Id_number, Name, Job, salary, Id_Dept)
AS
SELECT Empid, Firstname, Job, Sal, deptid
FROM Emp WHERE Deptid = 80
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 44
6.2 Tạo khung nhìn (View)
6.2.3 Chỉnh sửa khung nhìn
- Không thể thao tác trên view, khi truy vấn của view chứa các
toán tử JOIN, SET, DISTINCT, GROUP BY, GROUP.
- Không thể chèn trên view, trên bảng có những cột NOT
NULL mà không dùng DEFAULT VALUE.
- Không thể chèn trên view nếu khung nhìn này có dùng biểu
thức DECODE.
- Những câu lệnh truy vấn của view không thể tham khảo vào
2 cột giả NEXTVAL và CURRVAL (NEXTVAL, CURRVAL
dùng cho sequence).
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 45
6.2 Tạo khung nhìn (View)
6.2.4 Xóa khung nhìn
Dư˜ liệu trong cơ sở dư˜ liệu vẫn không bị mất.
Cú pháp
DROP VIEW viewname
Ví dụ: Xóa view tên emp80 trong cơ sở dư˜ liệu.
DROP VIEW emp80
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 46
6.3 Một số đối tượng khác
6.3.1 SEQUENCE
- Tạo Sequence
CREATE SEQUENCE sequence_name
INCREMENT BY n
START WITH n
[MAXVALUE n]
[MINVALUE n]
[CYCLE/NO CYCLE]
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 47
6.3 Một số đối tượng khác
6.3.1 SEQUENCE
- Tạo Sequence
Trong đó:
INCREMENT BY n Chỉ định giá trị khoảng cách là n.
START WITH n Chỉ định số đầu tiên của dãy tuần tự là n.
MAXVALUE n Giá trị lớn nhất của dãy số tuần tự là n.
MINVALUE n Giá trị nhỏ nhất của dãy số tuần tự là n.
CYCLE/NO CYCLE Dãy số tuần tự có/không quay vòng khi
đến điểm cuối. Mặc định là NO CYCLE
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 48
6.3 Một số đối tượng khác
6.3.1 SEQUENCE
- Tạo Sequence
Ví dụ: Tạo sequence tên sample_seq với giá trị bắt
đầu là 2, lớn nhất là 100 và giá trị khoảng cách là 1.
CREATE SEQUENCE Dept_sequence
INCREMENT 1
STRAT WITH 2
MAXVALUE 100
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 49
6.3 Một số đối tượng khác
6.3.1 SEQUENCE
- Cột giả
CURRVAL Cho giá tri hiện thời của sequence.
NEXTVAL Cho giá trị tiếp theo sau giá trị hiện thời.
Chúng ta phải chỉ ro˜ tên sequence trước các cột
giả.
sequence.CURRVAL,
sequence.NEXTVAL.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 50
6.3 Một số đối tượng khác
6.3.1 SEQUENCE
- Cột giả
Ví dụ: Chèn một hàng mới vào bảng Dept.
INSERT INTO Dept (Dept_id, Dname, Loc)
VALUES(Dept_sequence.NEXTVAL, ’Support’, 2500)
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 51
6.3 Một số đối tượng khác
6.3.1 SEQUENCE
- Thay đổi sequence
ALTER SEQUENCE sequence_name
INCREMENT BY n
START WITH n
[MAXVALUE n]
[MINVALUE n]
[CYCLE/NO CYCLE]
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 52
6.3 Một số đối tượng khác
6.3.1 SEQUENCE
- Huỷ sequence
DROP SEQUENCE sequence_name
Ví dụ: Xóa sequence Dept_sequence.
DROP SEQUENCE Dept_sequence
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 53
6.3 Một số đối tượng khác
6.3.2 Chỉ mục (Index)
Chỉ mục bao gồm một giá trị khóa và ROWID.
Chỉ mục hoàn toàn độc lập với bảng.
- Tạo chỉ mục
CREATE [UNIQUE]] INDEX index_name
ON table ( column [,column...])
Ví dụ: Tạo chỉ mục cho cột firstname trong bảng Emp
CREATE INDEX Index_firstname ON Emp(firstname)
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 54
6.3 Một số đối tượng khác
6.3.2 Chỉ mục (Index)
- Sử dụng chỉ mục
Dùng chỉ mục để truy vấn nhanh hơn.
Dùng chỉ mục khi lấy dữ liệu <15% số hàng trong bảng.
Chỉ mục những cột nào dùng để nối giữa các bảng lẫn
nhau.
Không nên dùng chỉ mục cho các bảng chỉ có vài hàng.
Khóa chính và khóa duy nhất tự động có chỉ mục, nhưng
nên có chỉ mục cho khóa ngoại.
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 55
6.3 Một số đối tượng khác
6.3.2 Chỉ mục (Index)
- Xoá chỉ mục
DROP INDEX index_name
Ví dụ: Xóa chỉ mục trên cột Firstname của bảng Emp.
DROP INDEX Index_firstname
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 56
6.3 Một số đối tượng khác
6.3.3 Synonym
- Tạo Synonym
CREATE [PUBLIC] SYNONYM synonym
FOR object;
Trong đó:
PUBLIC Tạo ra synonym dùng chung.
synonym Tên của synonym.
object Xác định đối tượng của synonym
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 57
6.3 Một số đối tượng khác
6.3.3 Synonym
- Tạo Synonym
Ví dụ: Tạo tên ngắn hơn cho view DEPT_SUM_VU.
CREATE SYNONYM d_sum
FOR dept_sum_vu;
Ví dụ: Tạo tên ngắn hơn cho view DEPT_SUM_VU và có tính
chất public.
CREATE PUBLIC SYNONYM p_sum FOR dept_sum_vu
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 58
6.3 Một số đối tượng khác
6.3.3 Synonym
- Xóa Synonym
DROP SYNONYM synonym
Ví dụ: Xóa synonym d_sum trong cơ sở dữ liệu.
DROP SYNONYM d_sum
Chỉ có như˜ng người quản trị cơ sở dữ liệu mới có quyền
xóa synonym public.
Ví dụ: Xoá synonym public p_sum trong cơ sở dữ liệu.
DROP PUBLIC SYNONYM p_sum
Tạo và quản lý đối tượng
Chương 6. Tạo và quản lý đối tượng 6 - 59
Tạo và quản lý đối tượng
Câu hỏi và bài tập
Trả lời câu hỏi phần 6.4 trong giáo trình
Chuẩn bị nội dung chương 7.