Bài 2.2. Truy vấn SELECT
Nội dung bài học
Tìm hiểu về truy vấn SELECT
- Mục đích sử dụng: sử dụng truy vấn SELECT để lấy dữ liệu từ các bản ghi(còn gọi là các hàng trong bảng) trong CSDL ra.
- Cấu trúc của lệnh SELECT: SELECT columns FROM table_name WHERE conditions
- Trong đó các lệnh SQL quy ước viết hoa hoàn toàn màu XANH.
- Lệnh SELECT là bắt buộc phải có, luôn đứng đầu câu truy vấn.
- Phần columns là danh sách các cột cần lấy thông tin. Nếu chọn nhiều cột thì các cột phân tách nhau bởi dấu phẩy.
- Nếu chọn tất cả các cột của bảng thì dùng dấu * thay vào columns. Ta chỉ nên sử dụng SELECT * khi số lượng cột trong bảng tương đối nhỏ, ví dụ dụ bảng chỉ có dưới 10 cột.
- Lệnh FROM là bắt buộc, đứng trước tên bảng.
- Phần table_name là tên của bảng trong CSDL cần thao tác. Có thể chỉ rõ tên_CSDL.tên_bảng trong câu truy vấn. Ví dụ bảng Students, Items, Employees.
- Mệnh đề WHERE là tùy chọn dùng để thiết lập các điều kiện lọc dữ liệu trong conditions. Ví dụ cần tìm ra những sinh viên có điểm trung bình tích lũy gpa >= 3.5 thì ta phải dùng tới mệnh đề WHERE: WHERE gpa >= 3.5
- Chi tiết về mệnh đề WHERE và các mục liên quan ta sẽ tìm hiểu ở các bài học tiếp theo của khóa học này.
Ví dụ thực hành
- CSDL: click vào đây
- Yêu cầu:
-
- — 1. Lấy tất cả các cột dữ liệu trong bảng Students
- — 2. Lấy mã sv, tên sv, địa chỉ sv trong bảng Students
- — 3. Lấy mã sv, tên sv, địa chỉ sv, chuyên ngành sv trong bảng sv sao sv học ngành CNTT
- — 4. Lấy mã, tên sv của các sv ở một địa chỉ cho trước
- Lấy tất cả các cột dữ liệu trong bảng Students:
-- ý 1:
-- cách 1: sử dụng select *
-- SELECT * FROM Students
-- cách 2: liệt kê tất cả các cột
SELECT
FullName, Address, Major, Id, BirthDate, PhoneNumber
FROM
Students
-- nếu truy vấn từ bên ngoài database, bổ sung thêm [tên_CSDL.dbo.]:
SELECT
FullName, Address, Major, Id, BirthDate, PhoneNumber
FROM
LearnSQL.dbo.Students

- Lấy mã sv, tên sv, địa chỉ sv trong bảng Students:
SELECT
Id, FullName, Address
FROM
Students

- Lấy mã sv, tên sv, địa chỉ sv, chuyên ngành sv trong bảng sv sao sv học ngành CNTT:
SELECT
Id, FullName, Address, Major
FROM
Students
WHERE
Major = 'CNTT'

- Lấy mã, tên sv của các sv ở một địa chỉ cho trước:
SELECT
Id, FullName
FROM
Students
WHERE
Address = N'Hà Nội'

- Nếu thao tác với tiếng Việt có dấu ta để N ở trước nháy đơn(hoặc kép) như ví dụ trên.
Bài tập thực hành
- Lưu ý: bạn vui lòng lấy CSDL mới nhất trong bài học hoặc nhấn vào đây để lấy về sau đó thực hành trên đó. CSDL chỉ học viên của Branium mới có thể tải về được.
- Hãy cho biết mã sinh viên, tên, ngày tháng năm sinh của các sinh viên trong bảng Students?
- Hãy cho biết mã môn học, tên môn học và số tín chỉ của các môn học trong bảng Subjects?
- Hãy cho biết mã sinh viên và điểm Gpa của sinh viên trong bảng Student?
- Hãy cho biết thông tin các sinh viên có tháng sinh là số chẵn?
- Hãy cho biết tất cả các thông tin về sinh viên có điểm TB >= 3.2?
- Hãy cho biết tên các môn học và số tiết, số tín chỉ của các môn học trong bảng Subjects?
- Hãy cho biết tên các môn học có số tín chỉ nhiều nhất trong bảng Subjects?
- Hãy cho biết tên các môn học có số lượng tín chỉ ít nhất trong bảng Subjects?
- Hãy cho biết tên các môn học thuộc thể loại chuyên ngành trong bảng Subject?
- Hãy cho biết thông tin về các môn học thỏa mãn: có số tín chỉ nhiều nhất, thể loại chuyên ngành .
Lời giải mẫu: nhấn vào đây
