Tải bản đầy đủ (.pdf) (59 trang)

bài giảng cơ sở dữ liệu quan hệ và sql-chương 6: tạo và quản lý đối tượng - cđ cntt hữu nghị việt hàn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (801.09 KB, 59 trang )

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

×