Bài giảng Tin học đại cương - Chương 5: Cơ sở dữ liệu

Tóm tắt Bài giảng Tin học đại cương - Chương 5: Cơ sở dữ liệu: ...MONHOC(MaMH, TenMH, SoTC, Hocky) có các siêu khóa: K1 = {MaMH, TenMH}; K2 = {MaMH, SoTC} K3 = {MaMH, TenMH, SoTC} . Chương 5: Cơ sở dữ liệu   21   Khoa  Công  nghệ  thông  9n  –  Học  viện  Nông  nghiệp  Việt  Nam   Bài  giảng  Tin  học  đại  c...ng sinh viên CREATE TABLE SINHVIEN( MaSV char(6) not null PRIMARY KEY, Hodem char(20 ) not null, TEN char(7) not null, Ngaysinh datetime, gioitinh char(3), tinh varchar(30), MaLOP char(8) not null ); Chương 5: Cơ sở dữ liệu   34   Khoa  Công  nghệ  thông  9n  –  Họ...ch •  Ví dụ: lấy ra thông tin của các lớp thuộc khoa công nghệ thông tin, nông học và chăn nuôi thú y. SELECT* FROM LOP WHERE Makhoa IN (“CNTT”, “NH”, “CNTY”); Chương 5: Cơ sở dữ liệu   50   Khoa  Công  nghệ  thông  9n  –  Học  viện  Nông  nghiệp  Việt  Nam  ...

pdf70 trang | Chia sẻ: havih72 | Lượt xem: 128 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Tin học đại cương - Chương 5: Cơ sở dữ liệu, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ọc	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
NỘI DUNG 
•  Cơ sở dữ liệu 
•  Hệ quản trị cơ sở dữ liệu 
−  Khái niệm 
−  Chức năng của hệ QTCSDL 
−  Một số hệ QTCSDL thông dụng 
•  Ngôn ngữ truy vấn SQL 
Chương 5: Cơ sở dữ liệu	
   23	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Khái niệm 
•  Hệ quản trị cơ sở dữ liệu (Database Management System - 
DBMS): Là một hệ thống phần mềm cho phép tạo lập cơ sở 
dữ liệu và điều khiển mọi truy nhập đối với cơ sở dữ liệu đó. 
•  Một số hệ quản trị csdl hiện nay: 
–  Microsoft Access 
–  Foxpro 
–  DB2 
–  SQL Server 
–  Oracle,  
Chương 5: Cơ sở dữ liệu	
   24	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Chức năng của hệ quản trị csdl (1) 
•  Cung cấp môi trường tạo lập cơ sở dữ liệu. 
–  Cho phép khai báo kiểu và cấu trúc của dữ liệu, khai báo các 
ràng buộc trên dữ liệu được lưu trữ trong CSDL. 
•  Cung cấp môi trường cập nhật và khai thác dữ liệu. 
–  Cập nhật: Thêm, xóa, sửa dữ liệu. 
–  Khai thác: Sắp xếp, tìm kiếm, kết xuất báo cáo,  
Chương 5: Cơ sở dữ liệu	
   25	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Chức năng của hệ quản trị csdl (2) 
•  Cung cấp công cụ kiểm soát, điểu khiển việc truy cập 
vào CSDL. Hệ quản trị CSDL đảm bảo: 
−  Phát hiện và ngăn chặn truy cập trái phép 
−  Duy trì tính nhất quán của dữ liệu. 
−  Tổ chức, điều khiển các truy cập cùng lúc. 
−  Khôi phục CDSL khi gặp sự cố. 
−  Quản lí các mô tả dữ liệu. 
Chương 5: Cơ sở dữ liệu	
   26	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
NỘI DUNG 
•  Cơ sở dữ liệu 
•  Hệ quản trị cơ sở dữ liệu 
•  Ngôn ngữ truy vấn SQL 
–  Ngôn ngữ định nghĩa dữ liệu (Data Definition Language – 
DDL) 
–  Ngôn ngữ thao tác dữ liệu (Data Manipulation Language- 
DML) 
Chương 5: Cơ sở dữ liệu	
   27	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Ngôn ngữ truy vấn SQL (1) 
•  Là ngôn ngữ truy vấn dựa trên đại số quan hệ. 
•  Cho phép người dùng giao tiếp với CSDL. 
•  Gồm các loại: 
–  Ngôn ngữ định nghĩa dữ liệu (Data Definition Language–
DDL): Cho phép khai báo cấu trúc các bảng của CSDL, khai 
báo các mối liên hệ của dữ liệu và các quy tắc áp đặt lên các 
dữ liệu đó. 
Chương 5: Cơ sở dữ liệu	
   28	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Ngôn ngữ truy vấn SQL (2) 
–  Ngôn ngữ thao tác dữ liệu (Data Manipullation Language-
DML): Cho phép người sử dụng khai thác CSDL để truy vấn các 
thông tin cần thiết trong CSDL. Đồng thời cho phép thêm 
(insert), xoá (delete), sửa (update) dữ liệu trong CSDL 
–  Ngôn ngữ quản lý dữ liệu (Data Control Language-DCL): 
Bao gồm các câu lệnh đảm bảo tính an toàn và toàn vẹn dữ 
liệu, cho phép cấp phát quyền truy cập vào dữ liệu 
Chương 5: Cơ sở dữ liệu	
   29	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
CSDL ví dụ 
Bài toán quản lý sinh viên có CSDL gồm các bảng như 
sau: 
 KHOA(Makhoa, Tenkhoa, Diadiem, SDT) 
 LOP(MaLop, TenL, Siso, Makhoa) 
 SINHVIEN(MaSV, Hodem, Ten, Ngaysinh, Gioitinh, 
 Tinh, MaLop) 
 MONHOC(MaMH, TenMH, SoTC, Dieukien) 
 KETQUA(MaSV, MaMH, Ketqua) 
Chương 5: Cơ sở dữ liệu	
   30	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Ngôn ngữ định nghĩa dữ liệu 
1.  Lệnh tạo bảng 
2.  Lệnh sửa bảng 
1.  Lệnh thêm cột 
2.  Lệnh thay đổi kiểu dữ liệu cho cột 
3.  Thêm ràng buộc toàn vẹn 
4.  Lệnh xóa cột 
3.  Lệnh xóa bảng 
Chương 5: Cơ sở dữ liệu	
   31	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
1. Lệnh tạo bảng (1) 
•  Định nghĩa một bảng cần: 
–  Tên bảng 
–  Các thuộc tính: 
•  Tên thuộc tính 
•  Kiểu dữ liệu 
•  Ràng buộc toàn vẹn trên thuộc tính đó 
 CREATE TABLE ( 
 [RBTV] , 
 [RBTV], 
 [RBTV]; 
Chương 5: Cơ sở dữ liệu	
   32	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
1. Lệnh tạo bảng (2) 
•  Ràng buộc toàn vẹn: 
–  NOT NULL 
–  NULL 
–  IDENTITY 
–  UNIQUE 
–  DEFAULT 
–  PRIMARY KEY 
–  FOREIGN KEY/ REFERENCES 
–  CHECK 
Chương 5: Cơ sở dữ liệu	
   33	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
1. Lệnh tạo bảng (3) 
•  Ví dụ: tạo bảng sinh viên 
CREATE TABLE SINHVIEN( 
MaSV char(6) not null PRIMARY KEY, 
Hodem char(20 ) not null, 
TEN char(7) not null, 
Ngaysinh datetime, 
gioitinh char(3), 
tinh varchar(30), 
MaLOP char(8) not null ); 
Chương 5: Cơ sở dữ liệu	
   34	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
2.1 Lệnh thêm cột 
ALTER TABLE 
ADD [RBTV]; 
•  ™Ví dụ: thêm cột chính sách vào bảng SINHVIEN 
ALTER TABLE SINHVIEN 
ADD Chinhsach char(10); 
Chương 5: Cơ sở dữ liệu	
   35	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
2.2 Thay đổi kiểu dữ liệu cho cột 
ALTER TABLE 
ALTER COLUMN ; 
•  Ví dụ: sửa kiểu dữ liệu cột gioitinh trong bảng SINHVIEN từ 
kiểu char sang kiểu bit [0/1] 
ALTER TABLE SINHVIEN 
ALTER COLUMN gioitinh bit; 
Chương 5: Cơ sở dữ liệu	
   36	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
2.3 Thêm ràng buộc toàn vẹn (1) 
•  Thêm khóa chính: 
ALTER TABLE 
ADD PRIMARY KEY (DS tên cột); 
•  Ví dụ: đặt khóa chính trên cột MaSV của bảng SINHVIEN 
ALTER TABLE SINHVIEN 
add PRIMARY KEY (masv); 
Chương 5: Cơ sở dữ liệu	
   37	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
2.3 Thêm ràng buộc toàn vẹn (2) 
•  Tạo khóa ngoài: 
ALTER TABLE 
ADD FOREIGN KEY (DS tên cột) 
REFERENCES (DS tên cột); 
•  Ví dụ: Đặt malop là khóa ngoài trên bảng SINHVIEN 
ALTER TABLE SINHVIEN 
ADD FOREIGN KEY(malop) 
REFERENCES LOP (malop); 
Chương 5: Cơ sở dữ liệu	
   38	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
2.4 Xóa cột 
•  Lệnh Xóa Cột 
ALTER TABLE 
DROP COLUMN ; 
•  ™Ví dụ: xóa cột chính sách trong bảng SINHVIEN 
ALTER TABLE SINHVIEN 
DROP COLUMN Chinhsach; 
Chương 5: Cơ sở dữ liệu	
   39	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
3. Xóa bảng 
DROP TABLE ; 
•  Ví dụ: xóa bảng SINHVIEN 
 DROP TABLE SINHVIEN; 
Chương 5: Cơ sở dữ liệu	
   40	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Ngôn ngữ thao tác dữ liệu 
•  Nhóm lệnh truy vấn dữ liệu 
•  Nhóm lệnh cập nhật dữ liệu 
Chương 5: Cơ sở dữ liệu	
   41	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Nhóm lệnh truy vấn dữ liệu 
1.  Cú pháp tổng quát 
2.  Dạng đơn giản 
3.  Dấu* 
4.  Mệnh đề WHERE 
5.  Truy vấn từ nhiều Bảng 
6.  Mệnh đề ORDER BY 
7.  Mệnh đề GROUP BY 
8.  Mệnh đề HAVING 
9.  Phát biểu Select với AS 
10. Phát biểu Select với DISTINCT 
11. Truy vấn con 
Chương 5: Cơ sở dữ liệu	
   42	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
1. Cú pháp tổng quát 
SELECT 
FROM 
WHERE 
GROUP BY 
HAVING 
ORDER BY 
Chương 5: Cơ sở dữ liệu	
   43	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
2. Dạng đơn giản 
SELECT 
FROM 
à lấy ra một số cột trong một bảng nào đó. 
Chương 5: Cơ sở dữ liệu	
   44	
  
•  Ví dụ: lấy ra mã sinh viên, họ đệm và tên của các sinh viên 
trong bảng SINHVIEN 
 SELECT MaSV, Hodem, Ten 
 FROM SINHVIEN; 
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
3. Dấu * 
•  Dấu * đại diện cho tất cả các cột 
SELECT * 
FROM 
•  Ví dụ: Lấy ra danh sách các khoa 
SELECT * 
FROM KHOA; 
Chương 5: Cơ sở dữ liệu	
   45	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
4. Mệnh đề WHERE (1) 
•  Dùng để đặt điều kiện lấy dữ liệu 
SELECT 
FROM 
WHERE 
•  Ví dụ: lấy ra mã sinh viên, họ đệm và tên của các sinh viên 
nữ 
SELECT MaSV, Hodem, Ten 
FROM SINHVIEN 
WHERE Gioitinh = “nữ”; 
Chương 5: Cơ sở dữ liệu	
   46	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
4. Mệnh đề WHERE (2) 
•  Các phép toán trong mệnh đề WHERE: 
–  So sánh: >, =, 
–  Logic: And, Or, Not 
•  Ví dụ: lấy ra mã sinh viên, họ đệm và tên của các sinh viên 
nữ học lớp K55CNSHA 
SELECT MaSV, Hodem, Ten 
FROM SINHVIEN 
WHERE Gioitinh = “nữ” and MaLop = “K55CNSHA”; 
Chương 5: Cơ sở dữ liệu	
   47	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
4. Mệnh đề WHERE (3) 
•  Toán tử BETWEEN AND 
•  Ví dụ: Lấy ra danh sách các môn học có từ 2 đến 5 tín chỉ 
SELECT * 
FROM MONHOC 
WHERE Sotc between 2 and 5; 
Chương 5: Cơ sở dữ liệu	
   48	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
4. Mệnh đề WHERE (4) 
•  Toán tử [NOT] LIKE: tìm một mẫu ký tự 
•  Sử dụng với các ký tự đại diện: _(1 ký tự), % (1 chuỗi bất kỳ) 
•  Ví dụ: lấy ra danh sách Sinh viên Họ ‘Nguyễn’ 
SELECT * 
FROM SINHVIEN 
WHERE Hodem LIKE “Nguyễn*”; 
Chương 5: Cơ sở dữ liệu	
   49	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
4. Mệnh đề WHERE (5) 
•  Toán tử [NOT] IN: phép toán so sánh trong 1 tập hợp, 1 
danh sách 
•  Ví dụ: lấy ra thông tin của các lớp thuộc khoa công nghệ 
thông tin, nông học và chăn nuôi thú y. 
SELECT* 
FROM LOP 
WHERE Makhoa IN (“CNTT”, “NH”, “CNTY”); 
Chương 5: Cơ sở dữ liệu	
   50	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
5. Truy vấn từ nhiều bảng 
•  Khi thông tin cần lấy ra có từ nhiều bảng khác nhau, cần 
thực hiện truy vấn từ nhiều bảng 
SELECT 
FROM 
WHERE 
•  Lưuý: 
–  Cần liên kết các bảng lại với nhau. Với n bảng cần có n-1 điều 
kiện liện kết. 
–  Các tên cột cùng có ở nhiều bảng cần ghi rõ theo dạng [Tên 
Bảng].[Tên cột] 
Chương 5: Cơ sở dữ liệu	
   51	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
5. Truy vấn từ nhiều bảng 
•  Ví dụ: Hiển thị thông tin về các sinh viên với các kết quả 
học tập của họ. Thông tin hiển thị cần (mã sinh viên, họ 
tên, ngày sinh, giới tính, tên môn học, kết quả): 
SELECT SINHVIEN. MaSV, Hodem, Ten, Ngaysinh, Gioitinh, 
TenMH, Ketqua 
FROM SINHVIEN, KETQUA, MONHOC 
WHERE SINHVIEN.MaSV = KETQUA.MaSV AND 
KETQUA.MaMH = MONHOC.MaMH; 
Chương 5: Cơ sở dữ liệu	
   52	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
6. Mệnh đề ORDER BY 
•  Sắp xếp kết quả theo thứ tự mong muốn 
•  ORDER BY [ASC | DESC] 
•  Ví dụ: lấy ra các sinh viên nữ học lớp K55CNSHA, được sắp 
xếp theo vần alphabet của họ và tên. 
SELECT MaSV, Hodem, Ten 
FROM SINHVIEN 
WHERE Gioitinh = “nữ” and MaLop = “K55CNSHA” 
ORDER BY Ten, Hodem; 
Chương 5: Cơ sở dữ liệu	
   53	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
7. Mệnh đề GROUP BY (1) 
•  Nhóm dữ liệu lại theo từng nhóm để thực hiện các phép toán 
thống kê 
GROUP BY 
•  Ví dụ: In ra danh sách các lớp và số sinh viên trong mỗi lớp từ 
bảng SinhVien 
SELECT SINHVIEN.MaLop, LOP.TenL, 
COUNT(SINHVIEN.MaSV) AS 'So sinh vien' 
FROM SINHVIEN, LOP 
WHERE SINHVIEN.MaLop = LOP.MaLop 
GROUP BY SINHVIEN.MaLop, LOP.TenL; 
Chương 5: Cơ sở dữ liệu	
   54	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
7. Mệnh đề GROUP BY (2) 
•  Một số hàm thông dụng: 
–  AVG: giá trị trung bình 
–  MIN: giá trị nhỏ nhất 
–  MAX: giá trị lớn nhất 
–  COUNT: đếm số phần tử 
–  SUM: Tổng các phần tử 
Chương 5: Cơ sở dữ liệu	
   55	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
8. Mệnh đề HAVING 
•  Đặt điều kiện chọn sau khi đã nhóm dữ liệu bằng mệnh đề 
GROUP BY 
•  Ví dụ: In ra danh sách các lớp có số sinh viên >2 từ bảng 
SINHVIEN 
SELECT SINHVIEN.MaLop, LOP.TenL, COUNT(SINHVIEN.MaSV) AS 
'So sinh vien' 
FROM SINHVIEN, LOP 
WHERE SINHVIEN.MaLop = LOP.MaLop 
GROUP BY SINHVIEN.MaLop, LOP.TenL 
HAVING COUNT(SINHVIEN.MaSV)>=2 
Chương 5: Cơ sở dữ liệu	
   56	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
9. Phát biểu Select với AS 
•  Đặt lại tên Field khi hiển thị kết quả 
•  Ví dụ: Hiển thị thông tin về các sinh viên với các kết quả 
học tập của họ. Khi hiển thị cột ketqua đổi tên thành cột 
DiemTB 
SELECT SINHVIEN.MaSV, Hodem, Ten, Ngaysinh, Gioitinh, TenMH, 
Ketqua as DiemTB 
FROM SINHVIEN, KETQUA, MONHOC 
WHERE SINHVIEN.MaSV = KETQUA.MaSV AND KETQUA.MaMH = 
MONHOC.MaMH; 
Chương 5: Cơ sở dữ liệu	
   57	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
10. Phát biểu Select với DISTINCT 
•  Nếu kết quả truy vấn có nhiều bản ghi trùng nhau, để chỉ 
lấy 1 mẫu tin ta dùng DISTINCT 
•  Ví dụ: In ra danh sách các lớp trong bảng SINHVIEN 
SELECT DISTINCT MALOP 
FROM SINHVIEN; 
Chương 5: Cơ sở dữ liệu	
   58	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
11. Truy vấn con (1) 
•  Đôi khi ta cần sử dụng kết quả của 1 câu truy vấn để làm 
điều kiện cho 1 câu truy vấn khác, khi đó ta gọi là truy vấn 
con. 
•  Khi thực hiện, truy vấn con sẽ được thực hiện trước, rồi lấy 
kết quả để thực hiện truy vấn lớn. 
Chương 5: Cơ sở dữ liệu	
   59	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
12. Truy vấn con (2) 
•  Dạng tổng quát: 
SELECT 
FROM 
WHERE 
 IN ( NOT IN, =, , ) 
(SELECT 
FROM 
WHERE) 
Chương 5: Cơ sở dữ liệu	
   60	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
12. Truy vấn con (3) 
•  Ví dụ: Hiển thị thông tin về những sinh viên đã đăng kí học 
và không phải thi lại môn học nào. 
SELECT Sinhvien.MaSV, hodem, ten, ngaysinh, maMH, ketqua 
FROM SINHVIEN, KETQUA 
WHERE (SINHVIEN.MaSV=KETQUA.MaSV) AND SINHVIEN.MaSV 
IN 
 (SELECT MaSV 
 FROM KETQUA 
 WHERE ketqua>=5); 
Chương 5: Cơ sở dữ liệu	
   61	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
Nhóm lệnh cập nhật dữ liệu 
1.  Lệnh thêm bản ghi 
2.  Lệnh sửa bản ghi 
3.  Lệnh xóa bản ghi 
Chương 5: Cơ sở dữ liệu	
   62	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
1. Lệnh thêm bản ghi (1) 
INSERT INTO () 
VALUES () 
•  Ví dụ: thêm một dòng vào bảng SINHVIEN 
INSERT INTO SINHVIEN (MaSV, Hodem, Ten, Ngaysinh, 
gioitinh, tinh, MaLoP) 
VALUES ("561205", "nguyễn Tiến", "Minh", "3/8/92", 
"nam", "Hà Nội","K57CNSHA"); 
Chương 5: Cơ sở dữ liệu	
   63	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
1. Lệnh thêm bản ghi (2) 
•  Nếu các giá trị sau từ khoá VALUES hoàn toàn phù hợp về 
thứ tự với các cột trong bảng, thì danh sách các cột có thể 
được bỏ qua. 
•  Ví dụ: thêm một dòng vào bảng SINHVIEN 
INSERT INTO SINHVIEN 
VALUES ("563495", “Nguyễn Lan", “Phương", 
“13/10/1992", “nữ", "Hà Nội","K56CNTYA"); 
Chương 5: Cơ sở dữ liệu	
   64	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
1. Lệnh thêm bản ghi (3) 
•  Ta có thể thêm các bản ghi vào bảng từ câu lệnh truy vấn 
(Select) 
INSERT INTO (, ...) 
hoặc 
INSERT INTO 
Chương 5: Cơ sở dữ liệu	
   65	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
1. Lệnh thêm bản ghi (4) 
•  Ví dụ: thêm tất cả các dòng trong bảng DSSV vào bảng 
SINHVIEN: 
INSERT INTO SINHVIEN 
SELECT * FROM DSSV ; 
•  Lưu ý: hai bảng DSSV và SINHVIEN phải có cấu trúc giống 
nhau 
Chương 5: Cơ sở dữ liệu	
   66	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
2. Lệnh sửa bản ghi (1) 
UPDATE 
SET = , = , 
..., 
 = 
[WHERE ]; 
•  Ý nghĩa: 
–  Giá trị của các cột , ... Của những bản 
ghi thoả mãn điều kiện sau WHERE sẽ được sửa đổi thành <giá 
trị 1>, . 
–  ™Nếu không có mệnh đề WHERE thì tất cả các bản ghi của 
bảng sẽ được sửa đổi. 
Chương 5: Cơ sở dữ liệu	
   67	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
2. Lệnh sửa bản ghi (2) 
•  Ví dụ: sửa hộ khẩu của các sinh viên từ Hà Tây thành Hà 
Nội 
UPDATE SINHVIEN 
SET tinh = "Hà Nội" 
WHERE tinh = "Hà Tây"; 
Chương 5: Cơ sở dữ liệu	
   68	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
3. Lệnh xóa bản ghi (1) 
DELETE FROM 
[WHERE ]; 
•  ™ ý nghĩa: 
–  Các bản ghi thoả mãn điều kiện WHERE sẽ bị xoá khỏi bảng. 
–  Nếu không có mệnh đề WHERE thì tất cả các bản ghi của bảng 
sẽ bị xóa khỏi bảng. 
Chương 5: Cơ sở dữ liệu	
   69	
  
Khoa	
  Công	
  nghệ	
  thông	
  9n	
  –	
  Học	
  viện	
  Nông	
  nghiệp	
  Việt	
  Nam	
  
Bài	
  giảng	
  Tin	
  học	
  đại	
  cương	
  
3. Lệnh xóa bản ghi (2) 
•  Ví dụ: xóa tất cả các bản ghi trong bảng DSSV 
DELETE FROM DSSV; 
•  Ví dụ: Xóa sinh viên lớp K53MTA khỏi bảng SINHVIEN 
DELETE FROM SINHVIEN 
WHERE MaLop = “K53MTA”; 
Chương 5: Cơ sở dữ liệu	
   70	
  

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_chuong_5_co_so_du_lieu.pdf