intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Hệ quản trị cơ sở dữ liệu MSSQL 2005: Chương 3 - Hồ Thị Anh Đào

Chia sẻ: Phong Phong | Ngày: | Loại File: PPT | Số trang:46

66
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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,

Chủ đề:
Lưu

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

  1. KHOA CÔNG NGHỆ THÔNG TIN Chương 3 NGÔN NGỮ THAO TÁC DỮ LIỆU LOGO
  2. 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.
  3. 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. 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ó.
  5.  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
  6. 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) yyyy­mm­dd (yy­mm­dd) 103  (3) dd/mm/yyyy (dd/mm/yy) SELECT HoTen,CONVERT(char(10),NgaySinh,101) AS 'Ngày Sinh' FROM SINHVIEN
  7. 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
  8. 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
  9. 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: >,=,
  10.  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
  11. 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 
  12. 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
  13.  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
  14.  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
  15.  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
  16.  Ví dụ: Cho biết những sinh viên có ít nhất 2 môn học có DiemMH 
  17.  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 
  18. 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’)
  19. 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
  20. 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')
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
5=>2