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

SLIDE GIẢNG DẠY CƠ SỞ DỮ LIỆU QUAN HỆ VÀ SQL CHƯƠNG 6 TẠO VÀ QUẢN LÝ ĐỐI TƯỢNG

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 (1.94 MB, 59 trang )

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



×