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 tồ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 tồ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
Định nghĩa lược đồ CSDL trong SQL
• Tập hợp các bảng dữ liệu phục vụ cho một ứng
dụng
Thành phần của lược đồ CSDL
•
•
•
•
Bảng dữ liệu
Ràng buộc tồn vẹn
Khung nhìn
…
Câu lệnh tạo lược đồ CSDL
CREATE SCHEMA <Tên_lược đồ_CSDL > AUTHORIZATION <User_name>
CREATE DATABASE <Tên_CSDL >
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
Bảng dữ liệu trong SQL
• 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
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
Thành phần củ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 tồn vẹn trên bảng
• …
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 <Tên_bảng>
(
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],
…
[<RBTV>]
)
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
Các kiểu dữ liệu trong SQL
• 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
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
Các kiểu dữ liệu trong SQL
• 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
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
Các kiểu dữ liệu trong SQL
• 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
Khoa Cơng nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM
13
HOẠT ĐỘNG 1:
Bài tập nhóm
• 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”
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 TỒN VẸN
• Các hình thức ràng buộc tồn vẹn
• NOT NULL
• NULL
• DEFAULT
• CHECK
• UNIQUE
• PRIMARY KEY
• FOREIGN KEY / REFERENCES
• Cú pháp định nghĩa ràng buộc tồn vẹn
CONSTRAINT <Tên_RBTV> <RBTV>
Khoa Cơng nghệ Thơng tin - Trường Đại học Ngân hàng TP.HCM
15
RÀNG BUỘC TỒN VẸN DỮ LIỆU
Ràng buộc NOT NULL
• 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
Khoa Cơng nghệ Thơng tin - Trường Đại học Ngân hàng TP.HCM
16
RÀNG BUỘC TỒN VẸN DỮ LIỆU
Giá trị mặc định
• 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:
• <Tên_thuộc_tính> <Kiểu_DL> CONSTRAINT
<TênRBTV_DF > DEFAULT (<giá trị>)
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM
17
RÀNG BUỘC TỒN VẸN DỮ LIỆU
Ràng buộc miền giá trị
• 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:
• <Tên_thuộc_tính> <Kiểu_DL> CONSTRAINT
<TênRBTV_CHK > CHECK
(<Tên_thuộc_tính> IN <giá trị>)
RÀNG BUỘC TỒN VẸN DỮ LIỆU
Ràng buộc về khóa
• Quan hệ có khóa chính và khóa phụ
• Cú pháp:
• <Tên_thuộc_tính> <Kiểu_DL> CONSTRAINT
<TênRBTV_PK > PRIMARY KEY
• CONSTRAINT <TênRBTV_PK > PRIMARY KEY(…)
• <Tên_thuộc_tính> <Kiểu_DL> UNIQUE
RÀNG BUỘC TỒN VẸN DỮ LIỆU
Ràng buộc tham chiếu (khóa ngoại)
• 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:
• <Tên_thuộc_tính> <Kiểu_DL> CONSTRAINT
<TênRBTV_FK > FOREIGN KEY (<Tên_thuộc_tính> )
REFERENCES <Tên_bảng> (<Tên_thuộc_tính>)
ON UPDATE CASCADE
ON DELETE SET NULL
RÀNG BUỘC TỒ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 TỒN VẸN DỮ LIỆU
Ví dụ
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)
)
Khoa Công nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM
22
HOẠT ĐỘNG 2:
Bài tập nhóm
• Thực hiện tạo các ràng buộc tồn vẹn cho
bài tốn QUẢN LÝ DỰ ÁN được cho trong
file “Bai tap Chapter5_Dinh nghia DL.docx”
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 bảng dữ liệu
• Xóa tồ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
Cú pháp:
DROP TABLE <Tên_bảng>
DROP SCHEMA <Tên_lược đồ_CSDL>
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 cấu trúc bảng 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 tồn vẹn…
Khoa Cơng nghệ Thông tin - Trường Đại học Ngân hàng TP.HCM
25