Bài giảng Hệ quản trị cơ sở dữ liệu MSSQL 2005: Chương 3 - Hồ Thị Anh Đào
lượt xem 3
download
Bài giảng Hệ quản trị cơ sở dữ liệu MSSQL 2005: Chương 3 sau khi học xong chương này người học có thể hiểu về: Câu lệnh select, danh sách cột trong câu lệnh select, thống kê dữ liệu với group by, các cấu trúc phức tạp, phép toán tập hợp,
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ quản trị cơ sở dữ liệu MSSQL 2005: Chương 3 - Hồ Thị Anh Đào
- KHOA CÔNG NGHỆ THÔNG TIN Chương 3 NGÔN NGỮ THAO TÁC DỮ LIỆU LOGO
- I. CÂU LỆNH SELECT 1. Ứng dụng: Câu lệnh Select dùng để truy xuất dữ liệu từ một hay nhiều bảng. 2. Cú pháp: SELECT [ALL | DISTINCT][TOP n] [INTO tên_bảng_mới] FROM [WHERE điều_kiện] [GROUP BY ds cột phân nhóm] [HAVING điều_kiện nhóm] [ORDER BY cột_sắp_xếp][DESC | ASC] Hiển thị danh sách cột từ các bảng dữ liệu gồm các dong tin thỏa mãn điều kiện.
- 2. Danh sách cột trong câu lệnh SELECT Danh sách cột: là dãy các cột/ biểu thức cột cách nhau bởi dấu phẩy. Ví dụ: 1. Hiển thị một số cột trong một bảng Tham chiếu đến cột SELECT MaLop,TenLop,NamNhapHoc,Khoahoc KHÓA của bảng FROM DMLOP DMLOP 2. Hiển thị tất cả các cột trong một bảng SELECT * FROM DMLOP 3. Hiển thị một số cột trong nhiều bảng quan hệ SELECT MaLop, TenLop, DMLOP.MaKhoa,TenKhoa FROM DMLOP, DMKHOA WHERE DMLOP.MaKhoa = DMKHOA.MaKhoa Khi thực hiện lệnh sẽ kiểm tra điều kiện từng dòng, nếu thỏa mãn thì hiển thị kết quả.
- 4. Thay đổi tiêu đề cột SELECT MaLop AS 'Mã lớp', TenLop AS 'Tên lớp’, Khoahoc AS 'Khóa học’. FROM DMLOP Hoặc SELECT 'Mã lớp'= MaLop, 'Tên lớp‘=TenLop,'Khóa học‘=Khoahoc FROM DMLOP 5. Hằng và Biểu thức cột SELECT TenMonhoc, Sodvht*15 AS ‘Số tiêt’ FROM DMMOHOC Ví dụ: Hiển thị Mã sinh viên, Họ, Tên, Giới tính 0: Nữ; 1: Nam; Null không có.
- Cấu trúc rẽ nhánh CASE CASE WHEN THEN [WHEN THEN … ELSE END SELECT Masv, Ho+Ten, CASE Gioitinh WHEN 1 THEN 'Nam’ WHEN 0 THEN N'Nữ' ELSE N‘Không có’ END AS ‘Giới tính’ FROM SINHVIEN
- Ví dụ: Hiển thị danh sách gồm Họ Tên, Ngày sinh dạng ‘dd/mm/yyyy’ Sử dụng hàm Convert CONVERT(kiểu_dữ_liệu, biểu_thức [,kiểu_chuyển_đổi]) Hàm có chức năng chuyển đổi giá trị của biểu thức sang kiểu dữ liệu được chỉ định. Tham số là một giá trị số nhằm qui định định dạng dữ liệu hiển thị và được qui định như sau: Kiểu ngày Định dạng dữ liệu hiển thị 0 (100) Mặc định 101 (1) mm/dd/yyyy (mm/dd/yy) 102 (2) yyyymmdd (yymmdd) 103 (3) dd/mm/yyyy (dd/mm/yy) SELECT HoTen,CONVERT(char(10),NgaySinh,101) AS 'Ngày Sinh' FROM SINHVIEN
- Ví dụ: Cho biết tổng số sinh viên hiện có trong bảng SINHVIEN Sử dụng Hàm Sum, Count, AVG Select Count(MaSV) From SINHVIEN
- 6. Giới hạn số lượng dòng trong kết quả truy vấn TOP n: truy vấn n mẫu tin đầu tiên TOP N%: Truy vấn n% mẫu tin đầu tiên. DISTINT: Loại bỏ những giá trị trùng nhau trong danh sách. Ví dụ: SELECT TOP 5 Ho,Ten,Ngaysinh FROM SINHVIEN Ví du: Hiển thị các Khoa có lớp học SELECT DISTINCT MaKhoa FROM DMLOP
- 2. Điều kiện trong câu lệnh SELECT WHERE : Điều kiện nằm sau từ khóa WHERE, là một biểu thức Logic gồm các phép toán sau: 1. Các toán tử kết hợp điều kiện:AND, OR 2. Các toán tử so sánh: >,=,
- Ví dụ: Hiển thị danh sách gồm MaSV, HoTen, Malop, của những sinh viên lớp ‘CT11’ SELECT MaSV, Ho, Ten, MaLop FROM DMLOP WHERE MaLop=‘CT11’ Ví dụ: Hiển thị danh sách gồm MaSV, HoTen, Malop của những sinh viên lớp ‘CT11’, CT12’ SELECT MaSV, Ho, Ten, MaLop SELECT MaSV, Ho, Ten, MaLop FROM DMLOP FROM DMLOP WHERE WHERE MaLop IN (‘CT11’, ‘CT12’ ) MaLop=‘CT11’ OR MaLop=‘CT12’ Ví dụ: Hiển thị danh sách sinh viên có họ là Lê SELECT Ho,Ten FROM SINHVIEN WHERE Ho LIKE 'Lê%‘ Vẫn câu hỏi đó nhưng hiển thị thêm cột TenLop
- Bài tập: Danh sách sinh viên gồm: MaSV, Ho, Ten, GioiTinh (Nam,Nữ), Ngày sinh (dd/mm/yyyy) Cho biết những sinh viên có họ bắt đầu bằng N,L,T Hiển thị danh sách sinh viên nữ lớp CT11 và CT12. Hiển thị danh sách sinh viên không ở lớp CT11. Hiển thị danh sách 5 sinh viên có tuổi cao nhất. Hiển thị số lượng sinh viên học lớp CT11. Hiển thị danh sách sinh viên nữ có sinh trước năm 1995 Hiển thị danh sách sinh viên có DiemMH
- 3. Thống kê dữ liệu với GROUP BY Dùng để tính tổng theo một nhóm như: đếm số sinh viên mỗi lớp, Tính ĐTB của mỗi sinh viên, … Một số hàm gộp 1. SUM([ALL | DISTINCT] biểu_thức): Tính tổng các giá trị. 2. AVG([ALL | DISTINCT] biểu_thức): Tính trung bình của các giá trị 3. COUNT([ALL | DISTINCT] biểu_thức): Đếm số các giá trị trong biểu thức. 4. COUNT(*): Đếm số các dòng được chọn. 5. MAX(biểu_thức): Tính giá trị lớn nhất 6. MIN(biểu_thức): Tính giá trị nhỏ nhất
- Ví dụ: Đếm số lượng sinh viên của mỗi lớp Sử dụng một bảng SINHVIEN Vùng phân nhóm là Malop, Vùng tính tổng là MASV Select MaLop, Count(MaSV) AS Siso From SINHVIEN Group by MaLop Hiển thị thêm vùng TenLop ở bảng DMLOP. SELECT DMLOP.MaLop,TenLop,COUNT(MaSV) AS Siso FROM DMLOP, SINHVIEN WHERE DMLOP.MaLop=SINHVIEN.MaLop GROUP BY DMLOP.MaLop,TenLop
- Thêm từ khóa HAVING Ví dụ: Đưa ra danh sách những lớp có tổng số sinh viên >10 SELECT DMLOP.MaLop,TenLop,COUNT(MaSV) AS Siso FROM DMLOP, SINHVIEN WHERE DMLOP.MaLop=SINHVIEN.MaLop GROUP BY DMLOP.MaLop,TenLop HAVING COUNT(Masv)>10
- Ví dụ: Tính Điểm Trung bình chung học kỳ theo từng sinh viên. Xuất d liệu ra bảng mới có tên DIEMTBC Sử dụng bảng DIEMTHI Vùng phân nhóm là: MaSV,Hocky Biểu thức tính tổng là (DiemMH*Sodvht)/ (Sodvht) SELECT MaSV, Hocky,Sum(DiemMH*Sodvht)/Sum(Sodvht) AS DTBC INTO DIEMTBC FROM DIEMTHI,DMMON WHERE DMMON.MaMon=DIEMTHI.MaMonhoc GROUP BY Masv,Họcky
- Ví dụ: Cho biết những sinh viên có ít nhất 2 môn học có DiemMH
- Bài tập 1. Tính Điểm trung bình chung của các học kỳ cho từng sinh viên. 2. Cho biết những sinh viên có tổng số đơn vị học trình của các môn thiếu điểm trên 25 (sinh viên ở lại lớp) 3. Cho biết những sinh viên có Điểm TK các môn học
- 4. CÁC CẤU TRÚC PHỨC TẠP (Gồm nhiều lệnh Select) 4.1 Sử dụng cấu trúc lồng nhau: (truy vấn con) Khi cần thực hiện phép kiểm tra giá trị của một biểu thức có thuộc hay không thuộc trong tập hợp các giá trị của truy vấn con hay không, ta có thể sử dụng toán tử IN (NOT IN) như sau: SELECT … WHERE [NOT] IN (Câu lệnh Select_con) Ví dụ: Cho biết Tên lớp có sinh viên tên Hoa Select TenLop From DMLOP Where MaLop IN ( Select Malop From SINHVIEN Where Ten=N’Hoa’)
- Ví dụ 2: Cho biết Tên Môn học không có sinh viên thiếu điểm MH Select TenMonhoc From DMMONHOC Where MaMonhoc NOT IN ( Select Mamonhoc From DIEMTHI Where DiemMH
- 4.2 Lượng từ Exists, All, Any Trong trường hợp tập hợp các giá trị trong truy vấn con nhiều hơn một thì ta phải thêm lượng từ trước (Truy vấn con đó) Ví dụ: Cho biết danh sách các môn học có số đơn vị học trình lớn hơn hoặc bằng số đơn vị học trình của môn học có mã là 001 Đưa lượng từ trước tập hợp có nhiều hơn MỘT giá trị SELECT * FROM DMMONHOC WHERE SoDvht>= (SELECT SoDvht FROM DMMONHOC WHERE MaMonhoc='001')
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ quản trị cơ sở dữ liệu Oracle: Chương 1 - Ngô Thùy Linh
31 p | 183 | 25
-
Bài giảng Hệ quản trị cơ sở dữ liệu Oracle: Chương 5 - Ngô Thùy Linh
34 p | 95 | 18
-
Bài giảng Hệ quản trị cơ sở dữ liệu Access - ĐH Phạm Văn Đồng
159 p | 112 | 17
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Tổng quan hệ quản trị CSDL SQL Server - TS. Lại Hiền Phương
50 p | 112 | 14
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 - ĐH Công nghiệp Thực phẩm
92 p | 145 | 11
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - ĐH Công nghiệp Thực phẩm
31 p | 99 | 10
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Giới thiệu - Phạm Thọ Hoàn
14 p | 157 | 9
-
Bài giảng Hệ quản trị cơ sở dữ liệu Oracle - Trường ĐH Đồng Tháp
119 p | 35 | 8
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Nguyễn Thị Uyên Nhi
33 p | 84 | 6
-
Bài giảng Hệ quản trị cơ sở dữ liệu (Database Management Systems) - Bài 1.1: Tổng quan về Hệ quản trị cơ sở dữ liệu
5 p | 17 | 6
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Nguyễn Trường Sơn
29 p | 46 | 5
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 2 - Phạm Nguyên Thảo
39 p | 78 | 5
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Lê Thị Minh Nguyện
14 p | 72 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Các tác vụ quản trị hệ thống - TS. Lại Hiền Phương (Phần 3)
61 p | 53 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Các tác vụ quản trị hệ thống - TS. Lại Hiền Phương (Phần 1)
32 p | 52 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 6 - Nguyễn Thị Mỹ Dung
33 p | 58 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 6 - Phạm Nguyên Thảo
44 p | 51 | 3
-
Bài giảng Hệ quản trị cơ sở dữ liệu MSSQL 2005: Chương 7 - Hồ Thị Anh Đào
24 p | 62 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn