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.
[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
;
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.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
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
]
[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