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-1
Tạo và quản lý đối tượng
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
Chương 6. Tạo và quản lý đối tượng
6-2
Tạo và quản lý đối tượng
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.
Chương 6. Tạo và quản lý đối tượng
6-3
Tạo và quản lý đối tượng
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]
Chương 6. Tạo và quản lý đối tượng
6-4
Tạo và quản lý đối tượng
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]
[AS subquery]
Ràng buộc của toàn bảng.
Câu truy vấn con.
Chương 6. Tạo và quản lý đối tượng
6-5
Tạo và quản lý đối tượng
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))
Chương 6. Tạo và quản lý đối tượng
6-6
Tạo và quản lý đối tượng
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.
Chương 6. Tạo và quản lý đối tượng
6-7
Tạo và quản lý đối tượng
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))
Chương 6. Tạo và quản lý đối tượng
6-8
Tạo và quản lý đối tượng
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;
Chương 6. Tạo và quản lý đối tượng
6-9
Tạo và quản lý đối tượng
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.
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 - 10
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.1 Kiểu dữ liệu chuỗi
- CHAR:
Chiều
Tối
dài cố định
đa 255 byte
- VARCHAR2:
Chiều
Tối
dài thay đổi
đa 2000 byte
- VARCHAR: Tương tự VARCHAR2
Chương 6. Tạo và quản lý đối tượng
6 - 11
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.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)
Chương 6. Tạo và quản lý đối tượng
6 - 12
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.3 Kiểu dữ liệu ngày tháng
Chứa
Có
dữ liệu kiểu ngày và thời gian.
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.
Chương 6. Tạo và quản lý đối tượng
6 - 13
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
Tối
dài biến đổ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.
Chương 6. Tạo và quản lý đối tượng
6 - 14
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.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.
Chương 6. Tạo và quản lý đối tượng
6 - 15
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.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 6 - 16
Chương 6. Tạo và quản lý đối tượng
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.
Chương 6. Tạo và quản lý đối tượng
6 - 17
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.
Chương 6. Tạo và quản lý đối tượng
6 - 18
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
- 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)
Chương 6. Tạo và quản lý đối tượng
6 - 19
Tạo và quản lý đối tượng
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
Chương 6. Tạo và quản lý đối tượng
6 - 20
Tạo và quản lý đối tượng
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][,…])
Chương 6. Tạo và quản lý đối tượng
6 - 21
Tạo và quản lý đối tượng
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))
Chương
6. Tạo và quản lý đối tượng
6 - 22
Tạo và quản lý đối tượng
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))
Chương 6. Tạo và quản lý đối tượng
6 - 23
Tạo và quản lý đối tượng
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
Chương 6. Tạo và quản lý đối tượng
6 - 24
Tạo và quản lý đối tượng
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))
Chương 6. Tạo và quản lý đối tượng
6 - 25