1. Trang chủ
  2. » Công Nghệ Thông Tin

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

59 488 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 863,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tạo và quản lý đối tượng 6 - 46.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]... 6.1.3 Câu lệnh tạo bảng CREATE

Trang 1

TẠO VÀ QUẢN LÝ ĐỐI

TƯỢNG

- Lý thuyết: 3 tiết

- Thực hành: 4 tiết

Trang 2

Chương 6 Tạo và quản lý đối tượng 6 - 2

6.1 Đối tượng cơ sở dữ liệu

Trang 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

Trang 4

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]

Trang 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

Trang 6

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

Trang 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

Trang 8

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

Trang 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

Trang 10

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

Trang 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

Tạo và quản lý đối tượng

Trang 12

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

Trang 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

Trang 14

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

Trang 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

Trang 16

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

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

Trang 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ó

Trang 18

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ó

Trang 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

Trang 20

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

Trang 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]

Trang 22

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

Loc CHAR(13))

Tạo và quản lý đối tượng

Trang 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

Trang 24

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

Trang 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

Trang 26

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

Trang 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

Tạo và quản lý đối tượng

Trang 28

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))

Trang 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 đã 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

Trang 30

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

Trang 31

6.1.6 Câu lệnh sửa đổi bảng (ALTER TABLE)

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

Tạo và quản lý đối tượng

Trang 32

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

Trang 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

Trang 34

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

Trang 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

Trang 36

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

Trang 37

Tạo và quản lý đối tượng

Trang 38

Chương 6 Tạo và quản lý đối tượng 6 - 38

6.2 Tạo khung nhìn (View)

Trang 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 đã 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

Trang 40

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

Trang 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

Trang 42

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

Trang 43

6.2 Tạo khung nhìn (View)

CREATE OR REPLACE VIEW empvu80

(Id_number, Name, Job, salary, Id_Dept)AS

SELECT Empid, Firstname, Job, Sal, deptid

Tạo và quản lý đối tượng

Trang 44

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

Trang 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

Trang 46

Chương 6 Tạo và quản lý đối tượng 6 - 46

Trang 47

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

Tạo và quản lý đối tượng

Trang 48

Chương 6 Tạo và quản lý đối tượng 6 - 48

CREATE SEQUENCE Dept_sequence

Trang 49

Chúng ta phải chỉ rõ tên sequence trước các cột giả.

sequence.CURRVAL,

Tạo và quản lý đối tượng

Trang 50

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

Trang 51

6.3 Một số đối tượng khác

6.3.1 SEQUENCE

- Thay đổi sequence

ALTER SEQUENCE sequence_name

Trang 52

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

Trang 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

Trang 54

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

Trang 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

Trang 56

Chương 6 Tạo và quản lý đối tượng 6 - 56

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

Trang 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_sumFOR 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

Trang 58

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

Trang 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.

Ngày đăng: 29/06/2017, 22:45

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w