Bài 3: Câu Lệnh Truy Vấn Dữ Liệu Trong SQL | Tìm ở đây
Có thể bạn quan tâm
Sơ đồ thực thể liên kết cơ sở dữ liệu Sinh Viên
Nắm rõ sơ đồ thực thể liên kết và cấu trúc các bảng phục vụ cho phần truy vấn sau.
1. Cú pháp truy vấn dữ liệu tổng quát
SELECT <Danh sách các cột> FROM <Danh sách Bảng> WHERE <Các điều kiện> GROUP BY <Tên cột> HAVING <Điều kiện dựa trên GROUP BY> ORDER BY <Danh sách cột>2. Dạng truy vấn đơn giản
SELECT <Danh sách các cột> FROM <Danh sách Bảng>=> lấy ra một số cột trong một bảng nào đó.
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;3. Ký tự đại diện *
Ký tự * đại diện cho tất cả các cột
SELECT * FROM <Tên Bảng>Ví dụ: Lấy ra danh sách các khoa
SELECT * FROM KHOA;4. Mệnh đề WHERE
- Dùng để thiết lập điều kiện lấy dữ liệu
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ữ";- Các phép toán trong mệnh đề WHERE:
- Toán tử so sánh: >, <, >=, <=, =, <>
- Toán tử 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";- Toán tử BETWEEN <giá trị 1> AND <giá trị 2>
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;- 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 có Họ đệm bắt đầu là “Nguyễn”
SELECT * FROM SINHVIEN WHERE HoDem LIKE "Nguyễn%";- 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 (mã CNTT), nông học (mã NH) và chăn nuôi thú y (mã CNTY).
SELECT * FROM LOP WHERE MaKhoa IN ("CNTT", "NH", "CNTY");5. Truy vấn dữ liệu 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
- 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 giống nhau ở nhiều bảng thì cần chỉ định rõ theo quy tắc [Tên Bảng].[Tên cột]
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;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;7. Mệnh đề GROUP BY
- 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ê.
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.TenLop, COUNT(SINHVIEN.MaSV) AS 'Số sinh viên' FROM SINHVIEN, LOP WHERE SINHVIEN.MaLop = LOP.MaLop GROUP BY SINHVIEN.MaLop, LOP.TenLop;- 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ử
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.TenLop, COUNT(SINHVIEN.MaSV) AS 'Số sinh viên' FROM SINHVIEN, LOP WHERE SINHVIEN.MaLop = LOP.MaLop GROUP BY SINHVIEN.MaLop, LOP.TenLop HAVING COUNT(SINHVIEN.MaSV)>=29. Phát biểu Select với AS
- Đặt lại tên cột 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;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ỉ các bản tin duy nhất (không trùng nhau) ta dùng từ khoá DISTINCT
Ví dụ: In ra danh sách các lớp trong bảng SINHVIEN
SELECT DISTINCT MaLop FROM SINHVIEN;11. Truy vấn con
- Đô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 chính.
- Dạng tổng quát:
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úc các bạn thành công!
Từ khóa » Tính điểm Trung Bình Môn Học Trong Sql
-
Chủ đề: Tính Trung Bình Trong SQL - Diễn Đàn Tin Học
-
Hàm AVG Trong SQL Server
-
/forum/p?t=5939
-
Tìm điểm Lớn Nhất Trong Mỗi Môn Học Của Mỗi Người Rồi Tính điểm ...
-
Group By Having Trong SQL Server | How Kteam
-
Câu Lệnh SQL Nào Sử Dụng để Tính điểm Thi ... - Trắc Nghiệm Online
-
Tính điểm Trung Bình Từ Dữ Liệu Trong Database? [Archive]
-
Hàm AVG Trong SQL | 79 Bài Học SQL Hay Nhất
-
Bài Tập Lớn Môn SQL Quản Lý điểm Sinh Viên - Tài Liệu Text - 123doc
-
Hàm AVG Trong SQL Server
-
AVG - Hàm Tính Trung Bình - SQL & Database
-
Hướng Dẫn Cách Tính điểm Trung Bình Môn Cho Học Sinh Và Sinh Viên ...
-
Hàm AVG() Tính Giá Trị Trung Bình Trong Sql
-
Câu Lệnh SQL Nào Sử Dụng để Tính điểm Thi Trung Bình Cho Bài Kiểm ...