Cơ sở dữ liệu SQL Server
Trang 1CƠ SỞ DỮ LIỆU SQL SERVER
Vũ Song Tùng
Viện Điện tử - Viễn thông
Trang 2§1 CÁC KHÁI NIỆM CƠ BẢN
Thông tin về
các Khoa và
các Khóa học
Thông tin về sinh viên
Trang 3§1 CÁC KHÁI NIỆM CƠ BẢN
Thông tin về sinh viên của lớp 2A – Khoa Điện tử
Trang 4§1 CÁC KHÁI NIỆM CƠ BẢN
thống thông tin, được lưu trữ theo một cung cách nhất định để có thể xử lý bằng máy tính điện tử
MS Access, SQL server, MySQL, Oracle
Trang 5§2 SQL SERVER
Trang 6§2 SQL SERVER
Trang 7§2 SQL SERVER
Trang 8§2 SQL SERVER
Trang 9§2 SQL SERVER
Trang 10§2 SQL SERVER
Chạy Query
Trang 11§2 SQL SERVER
Trang 12§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 13§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 15§3 CÁC BẢNG DỮ LIỆU (TABLES)
(byte) Cú pháp Hằng
Chuỗi ký tự char Số ký tự chỉ định char(10) 'abc'
varchar Phụ thuộc dữ liệu varchar(5) 'abc' nchar Số ký tự chỉ định nchar(2) N'ĐTVT' nvarchar Phụ thuộc dữ liệu nvarchar(10) N'ĐTVT' text Phụ thuộc dữ liệu
Tham khảo:
http://www.connectionstrings.com/Articles/Show/
sql-server-data-type-reference
Trang 16§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 17§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 18§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 19)
Go
Trang 20§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 21§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 22§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 23§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 24§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 25§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 26§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 27§3 CÁC BẢNG DỮ LIỆU (TABLES)
Trang 28§3 CÁC BẢNG DỮ LIỆU (TABLES)
Thêm dữ liệu:
INSERT INTO tên_bảng VALUES (dãy giá trị)
INSERT INTO tên_bảng (dãy các trường) VALUES (dãy giá trị)
INSERT INTO tên_bảng SELECT …
Trang 29§5 KHUNG NHÌN (VIEWS)
‘1994-12-21’
Trang 32§3 CÁC BẢNG DỮ LIỆU (TABLES)
Nhập số liệu cho bảng SinhVien từ danh sách sau:
Đặt ngày sinh của sinh viên có SHSV = 20090178 là ngày
03/11/1994
SHSV Họ tên Ngày sinh
20090405 Lê Văn Cường 15/12/1994
20092420 Ngô Duy Thành 10/02/1993
20090178 Lê Văn Ba
20091997 Nguyễn Đắc Pháp
20096324 Lê Anh Duy
20096328 Nguyễn Văn Đại
20096349 Nguyễn Trương Trà My
Trang 33§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 34§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 35§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 36§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 37§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 38§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 39§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 40§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 41§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 42§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Trang 43§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
CreateTableKhoa
Trang 44§4 SƠ ĐỒ LIÊN KẾT (DIAGRAMS)
Tạo các bảng Mon và BangDiem như bài tập ở §3 với liên kết giữa SinhVien và BangDiem qua trường SHSV, liên kết giữa Mon và BangDiem qua trường MonID
Nhập dữ liệu cho các bảng Khoa, Lop và SinhVien như bài tập
ở §3 Đặt KhoaID cho các lớp Chia sinh viên vào các lớp của khóa 2
Nhập bảng môn học gồm Toán (4 học trình) và Cơ sở dữ liệu (3 học trình)
Nhập điểm của 2 môn trên cho tất cả sinh viên
Trang 45§5 KHUNG NHÌN (VIEWS)
Trang 46§5 KHUNG NHÌN (VIEWS)
Trang 47§5 KHUNG NHÌN (VIEWS)
Trang 48§5 KHUNG NHÌN (VIEWS)
Trang 49§5 KHUNG NHÌN (VIEWS)
SELECT [tiền_tố] { * | bảng.* | [bảng.]tên_trường_1 [AS
định_danh_1] [, [bảng.]tên_trường_2 [AS định_danh_2] [,
Trang 50§5 KHUNG NHÌN (VIEWS)
tiền_tố Một trong các tiền tố: ALL, DISTINCT, hoặc TOP(N) Dùng tiền tố
để chỉ ra số lượng bản ghi được chọn Mặc định là ALL
bảng Tên của bảng chứa trường được chọn
tên_trường_1,
tên_trường_2
Tên của trường được chọn Trong trường hợp các trường được liệt kê rõ thì thứ tự các cột sẽ là thứ tự các trường trong danh sách
định_danh_1,
định_danh_2
Tên hình thức Dùng làm tiêu đề của một cột trong table
tên_bảng Tên bảng dữ liệu
Trang 51 Toán tử JOIN … ON …
Danh sách sinh viên đã được phân lớp (kèm theo tên lớp)
§5 KHUNG NHÌN (VIEWS)
Lop LopID TenLop
SinhVien SHSV
Ho Ten NgaySinh LopID
SELECT SinhVien.*, Lop.TenLop
FROM
SinhVien INNER JOINLopON SinhVien.LopID = Lop.LopID
Trang 52 Toán tử JOIN … ON …
§5 KHUNG NHÌN (VIEWS)
Danh sách tất cả sinh viên (kèm theo tên lớp)
SELECT SinhVien.*, Lop.TenLop
FROM
SinhVien LEFT JOINLopON SinhVien.LopID = Lop.LopID
SELECT SinhVien.*, Lop.TenLop
FROM
Lop RIGHT JOIN SinhVienON SinhVien.LopID = Lop.LopID
hoặc:
Trang 54 Các hàm xử lý nhóm
§5 KHUNG NHÌN (VIEWS)
Danh sách các lớp có nhiều hơn 60 sinh viên
SELECT Lop.LopID, Lop.TenLop
FROM
SinhVien INNER JOINLopON SinhVien.LopID = Lop.LopID
GROUP BY Lop.LopID, Lop.TenLop
HAVINGCOUNT(*) > 60
Danh sách điểm trung bình trong bảng điểm của sinh viên
SELECT BangDiem.SHSV, SUM(BangDiem Diem * Mon.SoHT)/SUM(Mon.SoHT) AS DiemTB
FROM
BangDiem INNER JOINMonON BangDiem.MonID = Mon.MonID
GROUP BY SHSV
Lấy giá trị điểm nhỏ nhất của bảng điểm
SELECT MIN(Diem) FROM BangDiem
Trang 55§5 KHUNG NHÌN (VIEWS)
Tạo view với tên viewDuoiTrungBinh gồm SHSV, MonID liệt
kê những môn thi có điểm dưới 5 của sinh viên;
Tạo view với tên viewTamDung liệt kê SHSV của những sinh viên có tổng số học trình của tất cả các môn thi với điểm dưới
5 lớn hơn hoặc bằng 20
Liệt kê danh sách sinh viên bị tạm dừng bao gồm SHSV, Họ tên, tên khoa, tên lớp, khóa học
Trang 56BÀI TẬP
(Phân biệt nhập xuất bằng trường
NhapXuat: ‘True’ – nhập, ‘False’ –
Liệt kê 5 mặt hàng bán được nhiều nhất
Liệt kê 5 mặt hàng có lãi cao nhất
Tính toán lại số lượng tồn kho
kết quả
Hang HangID TenHang
HoaDon SoHoaDon Ngay
GiaNiemYet TonKho
ChiTiet
SoLuong DonGia HangID