Chương 5 Ngôn ngữ truy vấn có cấu trúc
• Ngôn ngữ định nghĩa dữ liệu • Ngôn ngữ truy vấn dữ liệu • Ngôn ngữ cập nhật dữ liệu
Bạn đang xem trước 20 trang tài liệu Chương 5 Ngôn ngữ truy vấn có cấu trúc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 5
NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC
Structured Query Language
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa
NỘI DUNG
• Ngôn ngữ định nghĩa dữ liệu
• Ngôn ngữ truy vấn dữ liệu
• Ngôn ngữ cập nhật dữ liệu
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 2
NGÔN NGỮ SQL
• Ngôn ngữ đại số quan hệ:
• Phải chỉ định cách thức truy vấn: khó khăn cho người
sử dụng
• Cần xây dựng một ngôn ngữ cấp cao: người sử dụng
chỉ cần khai báo nội dung truy vấn
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 3
NGÔN NGỮ SQL
• Ngôn ngữ cấp cao
• Người sử dụng chỉ cần đưa ra nội dung cần truy vấn
• Được phát triển bởi IBM (1970s).
• Được gọi là SEQUEL
• Được ANSI công nhận và phát triển thành chuẩn
• SQL-86
• SQL-92
• SQL-99
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 4
NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU
• Định nghĩa lược đồ CSDL
• Các ràng buộc toàn vẹn
• Cập nhật lược đồ dữ liệu
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 5
NGÔN NGỮ ĐỊNH NGHĨA LƯỢC ĐỒ CSDL
• Là ngôn ngữ mô tả
• Lược đồ cho mỗi quan hệ
• Miền giá trị tương ứng cho mỗi thuộc tính
• Ràng buộc toàn vẹn
• Chỉ mục trên mỗi quan hệ
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 6
ĐỊNH NGHĨA LƯỢC ĐỒ CƠ SỞ DỮ LIỆU
• Tập hợp các bảng dữ liệu phục vụ cho một ứng
dụng
Định nghĩa lược đồ CSDL trong SQL
• Bảng dữ liệu
• Ràng buộc toàn vẹn
• Khung nhìn
• …
Thành phần của lược đồ CSDL
Câu lệnh tạo lược đồ CSDL
CREATE SCHEMA AUTHORIZATION
CREATE DATABASE
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 7
ĐỊNH NGHĨA BẢNG DỮ LIỆU
• Quan hệ và các bộ dữ liệu của nó được tạo và
lưu trữ vật lý trong tập tin dữ liệu của DBMS
• Cho phép có các bộ trùng nhau
Bảng dữ liệu trong SQL
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 8
ĐỊNH NGHĨA BẢNG DỮ LIỆU
• Các thuộc tính
• Miền giá trị của từng thuộc tính
• Các ràng buộc toàn vẹn trên bảng
• …
Thành phần của bảng dữ liệu
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 9
ĐỊNH NGHĨA BẢNG DỮ LIỆU
Câu lệnh tạo bảng dữ liệu trong SQL
CREATE TABLE
(
[],
[],
…
[]
)
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 10
ĐỊNH NGHĨA CÁC KIỂU DỮ LIỆU
• Kiểu dữ liệu số
• Kiểu dữ liệu chuỗi ký tự
• Kiểu dữ liệu chuỗi bit
• Kiểu dữ liệu Boolean
• Kiểu dữ liệu Datetime
Các kiểu dữ liệu trong SQL
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 11
ĐỊNH NGHĨA CÁC KIỂU DỮ LIỆU
• Kiểu dữ liệu số
• Số nguyên: BIGINT, INT, SMALLINT, TINYINT
• Số thực: FLOAT, DOUBLE PRECISION, DECIMAL(i,j)
• Kiểu Bit
Các kiểu dữ liệu trong SQL
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 12
ĐỊNH NGHĨA CÁC KIỂU DỮ LIỆU
• Kiểu dữ liệu chuỗi ký tự
• Char(n), nchar(n)
• Varchar(n), nvarchar(n)
• Text, ntext
• Kiểu Boolean
• Kiểu ngày tháng: datetime
Các kiểu dữ liệu trong SQL
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 13
HOẠT ĐỘNG 1:
• Thực hiện tạo CSDL cho bài toán QUẢN
LÝ DỰ ÁN được cho trong file “Bai tap
Chapter5_Dinh nghia DL.docx”
Bài tập nhóm
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 14
ĐỊNH NGHĨA RÀNG BUỘC TOÀN VẸN
• Các hình thức ràng buộc toàn vẹn
• NOT NULL
• NULL
• DEFAULT
• CHECK
• UNIQUE
• PRIMARY KEY
• FOREIGN KEY / REFERENCES
• Cú pháp định nghĩa ràng buộc toàn vẹn
CONSTRAINT
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 15
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Yêu cầu một thuộc tính không được phép có giá
trị là null
• Một thuộc tính là thành phần của khóa chính thì
mặc nhiên là not null
Ràng buộc NOT NULL
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 16
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Giá trị được sử dụng trong trường hợp bộ
mới thêm vào nhận giá trị null tại thuộc
tính được khai báo là mặc định
• Cú pháp:
• CONSTRAINT
DEFAULT ()
Giá trị mặc định
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 17
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Giá trị của một thuộc tính phải nằm trong
miền giá trị của thuộc tính đó
• Cú pháp:
• CONSTRAINT
CHECK
( IN )
Ràng buộc miền giá trị
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Quan hệ có khóa chính và khóa phụ
• Cú pháp:
• CONSTRAINT
PRIMARY KEY
• CONSTRAINT PRIMARY KEY(…)
• UNIQUE
Ràng buộc về khóa
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Thuộc tính làm khóa chính của quan hệ này có thể
dùng tham chiếu cho quan hệ khác
• Cú pháp:
• CONSTRAINT
FOREIGN KEY ( )
REFERENCES ()
ON UPDATE CASCADE
ON DELETE SET NULL
Ràng buộc tham chiếu (khóa ngoại)
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
Ví dụ
CREATE TABLE NHANVIEN
(
HONV NVARCHAR(10) CONSTRAINT NV_HONV_NN NOT NULL,
TENLOT NVARCHAR(20) NOT NULL,
TENNV NVARCHAR(10) NOT NULL,
MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY,
NGAYSINH DATETIME,
DIA_CHI NVARCHAR(50),
PHAI CHAR(3) CONSTRAINT NV_PHAI_CHK
CHECK (PHAI IN (‘Nam’, ‘Nu’)),
LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000),
MA_NQL CHAR(9),
PHG INT
)
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 21
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
Ví dụ
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 22
CREATE TABLE PHANCONG (
MA_NVIEN CHAR(9),
SODA INT,
THOIGIAN DECIMAL(3,1),
CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY
(MA_NVIEN, SODA),
CONSTRAINT PC_MANVIEN_FK FOREIGN KEY (MA_NVIEN)
REFERENCES NHANVIEN(MANV),
CONSTRAINT PC_SODA_FK FOREIGN KEY (SODA)
REFERENCES DEAN(MADA)
)
HOẠT ĐỘNG 2:
• Thực hiện tạo các ràng buộc toàn vẹn cho
bài toán QUẢN LÝ DỰ ÁN được cho trong
file “Bai tap Chapter5_Dinh nghia DL.docx”
Bài tập nhóm
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 23
CẬP NHẬT LƯỢC ĐỒ CƠ SỞ DỮ LIỆU
• Xóa toàn bộ dữ liệu trong bảng cùng với lược đồ
của bảng đó
• Việc xóa bảng chỉ thành công khi không nó không
được tham chiếu tới bởi bất kỳ bảng nào khác
Xóa bảng dữ liệu
Cú pháp:
DROP TABLE
DROP SCHEMA
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 24
CẬP NHẬT LƯỢC ĐỒ CƠ SỞ DỮ LIỆU
• Thay đổi: thêm mới, xóa, sửa các thuộc tính của
bảng và ràng buộc toàn vẹn…
Thay đổi cấu trúc bảng dữ liệu
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 25
CẬP NHẬT LƯỢC ĐỒ CƠ SỞ DỮ LIỆU
• ALTER TABLE ADD
• ALTER TABLE DROP COLUMN
• ALTER TABLE ADD CONSTRAINT …
• ALTER TABLE DROP CONSTRAINT
• ALTER TABLE ALTER COLUMN
Thay đổi cấu trúc bảng dữ liệu
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 26
HOẠT ĐỘNG 3:
• Chỉnh sửa một số ràng buộc toàn vẹn,
thuộc tính trong bài toán QUẢN LÝ DỰ ÁN
được cho trong file “Bai tap Chapter5_Dinh
nghia DL.docx”
Bài tập nhóm
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 27
TÓM TẮT
• Định nghĩa lược đồ CSDL
• Ràng buộc toàn vẹn
• Cập nhật lược đồ CSDL
• Bài tập
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM 28