Bài giảng Cơ sở dữ liệu - Chương 6: Ngôn ngữ truy vấn có cấu trúc - Trịnh Hoàng Nam

ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU

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 dữ liệu của DBMS

Bảng dữ liệu trong SQL

• 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

pdf 8 trang yennguyen 3220
Bạn đang xem tài liệu "Bài giảng Cơ sở dữ liệu - Chương 6: Ngôn ngữ truy vấn có cấu trúc - Trịnh Hoàng Nam", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu - Chương 6: Ngôn ngữ truy vấn có cấu trúc - Trịnh Hoàng Nam

Bài giảng Cơ sở dữ liệu - Chương 6: Ngôn ngữ truy vấn có cấu trúc - Trịnh Hoàng Nam
9/3/2018
1
NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC
CƠ SỞ DỮ LIỆU
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU 
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 COMPANY AUTHORIZATION SA
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU 
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 dữ liệu của DBMS
Bảng dữ liệu trong SQL
• 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
9/3/2018
2
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU 
DỮ LIỆU
• Cho phép có các bộ trùng nhau
Bảng dữ liệu trong SQL
Câu lệnh tạo bảng dữ liệu trong 
SQL
CREATE TABLE tên_bảng ()
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
ĐỊNH NGHĨA DỮ LIỆU & 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
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU 
DỮ LIỆU
Ví dụ về lệnh tạo bảng dữ liệu
9/3/2018
3
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LOẠI 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
Ví dụ
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LOẠI 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
Giá trị mặc định
Ví dụ
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LOẠI 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 đó
Ràng buộc miền giá trị
Ví dụ
9/3/2018
4
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LOẠI RÀNG BUỘC TOÀN VẸN 
DỮ LIỆU
• Hai bộ dữ liệu trong quan hệ không thể có giá trị bằng
nhau tại (các) thuộc tính của khóa
• Quan hệ có thể có nhiều khóa, gồm một khóa chính và
nhiều khóa phụ (duy nhất)
Ràng buộc khóa trong SQL
Ví dụ
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LOẠI RÀNG BUỘC TOÀN VẸN 
DỮ LIỆU
• Tên tường minh của ràng buộc toàn vẹn rất hữu ích
khi có nhu cầu muốn chỉnh sửa hoặc xóa các ràng
buộc hiện hữu
Đặt tên cho ràng buộc toàn vẹn trong SQL
Ví dụ
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LOẠI RÀNG BUỘC TOÀN VẸN 
DỮ LIỆU
• Ràng buộc liên quan đến các giá trị thành phần của
từng bộ dữ liệu được xét
Ràng buộc toàn vẹn trên bộ trong SQL
Ví dụ
9/3/2018
5
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LOẠI RÀNG BUỘC TOÀN VẸN 
DỮ LIỆU
• Một giá trị muốn xuất hiện trong khung cảnh này cần
phải xuất hiện trong một khung cảnh khác
• Thuộc tính tham chiếu đi là khóa ngoại, thuộc tính được
tham chiếu tới phải là khóa (chính hoặc phụ)
Ràng buộc tham chiếu trong SQL
Ví dụ
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LOẠI RÀNG BUỘC TOÀN VẸN 
DỮ LIỆU
Dò tìm vi phạm ràng buộc tham chiếu
• Cơ chế mặc định
• Cơ chế thay thế 
• Cơ chế Set Null
Xử lý vi phạm ràng buộc tham chiếu
RBTV Thêm mới Chỉnh sửa Xóa bỏ
Khóa chính - + +
Khóa ngoại + + -
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC CÂU LỆNH THAY ĐỔI 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
Lệnh xóa bảng dữ liệu trong SQL
Ví dụ
9/3/2018
6
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC CÂU LỆNH THAY ĐỔI LƯỢC 
ĐỒ CƠ SỞ DỮ LIỆU
• Thay đổi cấu trúc bảng dữ liệu bằng cách thêm mới,
sửa, xóa thuộc tính, ràng buộc toàn vẹn, 
Lệnh sửa cấu trúc bảng dữ liệu trong SQL
Ví dụ
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LỆNH CẬP NHẬT TRONG 
SQL
• Thêm mới một (số) bộ dữ liệu vào quan hệ
• Bộ dữ liệu với các giá trị được liệt kê cùng trình tự với
các thuộc tính tương ứng được xác định trong câu
lệnh tạo quan hệ.
• Bắt buộc phải cung cấp giá trị đối với các thuộc tính
được khai báo là khác NULL và không có giá trị mặc
định
Lệnh INSERT
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LỆNH CẬP NHẬT TRONG 
SQL
• Thêm mới một bộ dữ liệu vào quan hệ EMPLOYEE
Ví dụ 21
INSERT INTO
EMPLOYEE
VALUES
(‘30121050004’,N’Mai Duy An’, 30000, ‘F’, 
’17/02/1968’, ‘30121050037’, 1, ‘15/06/2010’)
INSERT INTO
EMPLOYEE (ESSN, EName, DNum)
VALUES
(‘30121050004’, N‘Mai Duy An’,1)
9/3/2018
7
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LỆNH CẬP NHẬT TRONG 
SQL
• Xóa một (số) bộ thỏa mãn điều kiện được xác định trong mệnh
đề WHERE ra khỏi quan hệ
• Xóa tất cả các bộ ra khỏi quan hệ khi không có mệnh đề
WHERE trong câu lệnh
Lệnh DELETE
• Câu lệnh sau đây xóa các thân nhân của nhân viên có mã số
‘30121050180’
Ví dụ 21
DELETEFROM DEPENDENT WHERE ESSN = ‘30121050180’
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LỆNH CẬP NHẬT TRONG 
SQL
• Xóa một (số) bộ thỏa mãn điều kiện được xác định trong mệnh
đề WHERE ra khỏi quan hệ
• Xóa tất cả các bộ ra khỏi quan hệ khi không có mệnh đề
WHERE trong câu lệnh
Lệnh DELETE
• Câu lệnh sau đây xóa tất cả thân nhân của các nhân viên trong
phòng có mã số 1
Ví dụ 22
DELETEFROM DEPENDENT
WHERE ESSN IN (SELECT ESSN
FROM EMPLOYEE
WHERE DNum=1)
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LỆNH CẬP NHẬT TRONG 
SQL
• Thay đổi giá trị một (số) thuộc tính của một (số) bộ thỏa mãn
điều kiện được xác định trong mệnh đề WHERE
• Thay đổi tất cả các bộ trong quan hệ khi không có mệnh đề
WHERE trong câu lệnh
Lệnh UPDATE
• Thay đổi địa điểm và đơn vị quản lý của dự án có mã số là 10
với các giá trị mới lần lượt là ‘Hà Nội’ và 5
Ví dụ 23
UPDATE PROJECT
SET PLocation = N’Hà Nội’, DNum=5
WHERE PNumber = 10
9/3/2018
8
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
C
ơ
s
ở
d
ữ
l
i
ệ
u
–
T
ổ
n
g
q
u
a
n
h
ệ
t
h
ố
n
g
c
ơ
s
ở
d
ữ
l
i
ệ
u
CÁC LỆNH CẬP NHẬT TRONG 
SQL
• Thay đổi giá trị một (số) thuộc tính của một (số) bộ thỏa mãn
điều kiện được xác định trong mệnh đề WHERE
• Thay đổi tất cả các bộ trong quan hệ khi không có mệnh đề
WHERE trong câu lệnh
Lệnh UPDATE
• Tăng lương cho mọi nhân viên của phòng Nghiên cứu lên 10%
lương hiện tại
Ví dụ 23
UPDATEEMPLOYEE
SET ESalary = ESalary *1.1
WHERE DNum IN (SELECT DNumber
FROM DEPARTMENT
WHERE DName = N’Phòng Nghiên cứu’)

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_6_ngon_ngu_truy_van_co_cau_tr.pdf