Professional Documents
Culture Documents
SELECT TENMH,SOTIET*15 AS ST
FROM monhoc
2.3. Ngôn ngữ thao tác dữ liệu (DML)
SELECT SOTIET
FROM MONHOC
Mệnh đề WHERE
Mệnh đề WHERE trong câu lệnh SELECT được sử dụng
nhằm xác định các điều kiện đối với việc truy xuất dữ liệu.
SELECT <ds các cột>
FROM <tên bảng>
WHERE <ds điều kiện>
Ví dụ: Hiện thị danh sách tất cả các sinhvien thuộc khoa công
nghệ thông tin
SELECT *
FROM SINHVIEN
WHERE MAKHOA=‘CNTT’
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Mệnh đề WHERE
Các phép toán so sánh: <,>,>=,<=,<>;Logic:AND,OR,NOT
SELECT MASV,HOSV,TENSV
FROM SINHVIEN
WHERE YEAR(NS)=1985 AND PHAI='Nam'
Ví dụ 2: Danh sách các MASV,HOSV,TENSV, NS của những
sinh viên sinh ra trong khoảng từ năm 1983 đến 1986?
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Mệnh đề WHERE
BETWEEN..AND VÀ NOT BETWEEN…AND
Ví dụ 1: Lấy ra MASV, MAMH,DIEM có điểm thi nằm
khoảng 7 đến 9
SELECT MASV, MAMH,DIEM
FROM KETQUA
WHERE DIEM BETWEEN 7 AND 9
Ví dụ 2: Lấy ra MASV, MAMH,DIEM có điểm thi nằm ngoài
khoảng 5 đến 10
SELECT MASV, MAMH,DIEM
FROM KETQUA
WHERE DIEM NOT BETWEEN 5 AND 10
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Mệnh đề WHERE
Toán tử LIKE và các ký tự đại diện: Từ khoá LIKE (NOT
LIKE) sử dụng trong câu lệnh SELECT nhằm mô tả khuôn
dạng của dữ liệu cần tìm kiếm.
Chúng thường được kết hợp với các ký tự đại diện sau:
Ký tự đại diện ý nghĩa
% Chuỗi ký tự bất kỳ gồm không hoặc nhiều ký tự
_ Ký tự đơn bất kỳ
[ ] Ký tự đơn bất kỳ trong giới hạn được chỉ định
(ví dụ [a-f]) hay một tập (ví dụ [abcdef])
[^] Ký tự đơn bất kỳ không nằm trong giới hạn
được chỉ định ( ví dụ [^a-f] hay một tập (ví dụ [^abcdef])
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Mệnh đề WHERE
Toán tử LIKE _ (1 kí tự ), % (chuỗi kí tự bất kì)
SELECT *
FROM SINHVIEN
WHERE TENSV LIKE ‘H%'
Mệnh đề WHERE
Toán tử NOT LIKE
Mệnh đề WHERE
IS NULL và IS NOT NULL
Kiểm tra giá trị của một cột có giá trị NULL hay không
Mệnh đề WHERE
IN và NOT IN
• Từ khoá IN được sử dụng khi ta cần chỉ định điều kiện tìm kiếm dữ
liệu cho câu lệnh SELECT là một danh sách các giá trị.
• Sau IN (hoặc NOT IN) có thể là một danh sách các giá trị hoặc là một
câu lệnh SELECT khác.
Ví dụ 1: Để biết danh sách các môn học có số tiết 45 hoặc 60 thay vì
sử dụng câu lệnh
Ví dụ: Tạo bảng Tuổi sinh viên bao gồm HoSV, Tên, Tuổi
Select Hosv, Ten,Year(getdate())-Year(ngaysinh) as Tuoi
INTO Tuoisv
FROM Sinhvien
2.3. Ngôn ngữ thao tác dữ liệu (DML)
20
2.3. Ngôn ngữ thao tác dữ liệu (DML)
21
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Các hàm làm việc với kiểu dữ liệu Ngày tháng/ Thời gian
Hàm GETDATE(): cho ngày/ tháng/ năm hiện thời
Hàm DAY(x): cho giá trị ngày của x
22
2.3. Ngôn ngữ thao tác dữ liệu (DML)
AVG(biểu thức) : tính trung bình tổng các giá trị dạng số
Cú pháp:
SELECT danh_sách_các cột
FROM danh_sách_tên_bảng
WHERE <Phép so sánh> <lượng từ> <Khối SELECT
con>
Trong đó:
- Phép so sánh: >, >, >=, <=, =, <>, like, not, notIn, Not
Exists,…
- Lượng từ: All (= NotIn), Any (=In),
2.3. Ngôn ngữ thao tác dữ liệu (DML)
SELECT Masv,hosv,tensv,makhoa
FROM sinhvien
WHERE Exists(
SELECT masv
FROM ketqua
WHERE masv=sinhvien.masv)
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Cú pháp:
FROM tên_bảng_a LEFT|RIGHT|FULL [OUTER] JOIN
tên_bảng_b ON điều_kiện_nối
• LEFT JOIN trả về tất cả các dòng của bảng thứ nhất, ngay cả khi các
dòng đó không ứng với dòng nào ở bảng thứ hai.
• RIGHT JOIN trả về tất cả các dòng ở bảng thứ hai, ngay cả khi các
dòng đó không ứng với dòng nào ở bảng thứ nhất.
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Cú pháp:
FROM tên_bảng_a LEFT|RIGHT|FULL [OUTER] JOIN
tên_bảng_b ON điều_kiện_nối
Select *
ON Ketqua.Masv = Sinhvien.Masv
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Select *
from Ketqua RIGHT OUTER JOIN Sinhvien
ON Ketqua.Masv = Sinhvien.Masv
2.3. Ngôn ngữ thao tác dữ liệu (DML)
Cú pháp:
FROM tên_bảng_a LEFT|RIGHT|FULL [OUTER] JOIN
tên_bảng_b ON điều_kiện_nối
Select *
ON Ketqua.Masv = Sinhvien.Masv