SQL Server - Bài 4: SQL
Một số lưu ý khi viết câu lệnh SQL
• Câu lệnh SQL không phân biệt chữ hoa, chữ thường.
• Câu lệnh SQL có thể viết trên 1 hoặc nhiều dòng.
• Các từ khóa không được viết tắt hoặc tách ra thành nhiều
dòng.
• Các mệnh đề khác nhau nên đặt trên những dòng khác nhau
1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SQL Server
2TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SQL (STRUCTURED QUERY
LANGUAGE)
4
3TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Lệnh truy vấn dữ liệu
4TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Câu lệnh SELECT đơn giản
5TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khả năng của lệnh SELECT
Chọn dòngChọn cột
Bảng 1 Bảng 2
Bảng 1Bảng 1
Kết
6TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Lệnh SELECT cơ bản
SELECT *|{[DISTINCT] cot|bieu_thuc [bi_danh],...}
FROM bang
• SELECT : xác định những cột gì
• FROM : xác định bảng nào
7TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT *FROM qlns.phong
Chọn tất cả các cột
8TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Chọn những cột cần thiết
SELECT maphong, makhuvuc
FROM qlns.phong
9TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Một số lưu ý khi viết câu lệnh SQL
• Câu lệnh SQL không phân biệt chữ hoa, chữ thường.
• Câu lệnh SQL có thể viết trên 1 hoặc nhiều dòng.
• Các từ khóa không được viết tắt hoặc tách ra thành nhiều
dòng.
• Các mệnh đề khác nhau nên đặt trên những dòng khác nhau
10
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các phép toán của biểu thức
Tạo các biểu thức với các kiểu dữ liệu số và ngày bằng các
phép toán số học
Toán tử
+
-
*
/
Mô tả
Cộng
Trừ
Nhân
Chia
11
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng các phép toán số học
SELECT tennv, mucluong, mucluong + 300
FROM qlns.nhanvien
…
12
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng các dấu ngoặc
SELECT tennv, mucluong, 12*(mucluong+100)
FROM qlns.nhanvien;
…
13
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm giá trị NULL
• NULL là một giá trị chưa được xác định
• NULL khác với zero hoặc giá trị rỗng.
SELECT tennv, macongviec, mucluong, phucap
FROM qlns.nhanvien
…
…
14
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT tennv,mucluong,phucap,12*(mucluong+phucap)FROM qlns.nhanvien
Giá trị NULL trong các biểu thức số học
Các biểu thức số học có chứa giá trị NULL sẽ cho kết quả
NULL
…
…
15
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm bí danh của cột (Alias)
Bí danh của cột là :
• Sự đổi tên tiêu đề cho cột
• Rất hữu ích cho các biểu thức tính toán
• Xuất hiện ngay sau tên cột hoặc biểu thức, có thể
thêm từ khóa AS giữa tên cột và bí danh
• Yêu cầu phải đặt trong dấu nháy kép hoặc móc
vuông nếu có chứa khoảng trắng, ký tự đặc biệt
hoặc sử dụng chữ hoa
16
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng các bí danh cột
SELECT tennv [Ten], mucluong*12 “Luong Mot Nam"
FROM qlns.nhanvien
SELECT tennv AS ten, phucap pc
FROM qlns.nhanvien
…
…
17
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng toán tử ghép nối
SELECT tennv + macongviec AS "Nhanvien"
FROM qlns.nhanvien
…
18
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các dòng trùng nhau
Theo mặc định thì kết quả hiểu thị của câu lệnh truy
vấn là tất cả các dòng, bao gồm cả những dòng trùng
nhau
SELECT maphong
FROM qlns.nhanvien
…
19
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Loại bỏ những dòng trùng nhau
Sử dụng từ khóa DISTINCT trong mệnh đề SELECT.
SELECT DISTINCT maphong
FROM qlns.nhanvien
20
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Chỉ thể hiện một số dòng
SELECT [TOP (expression) [PERCENT][ WITH TIES ]]
[danh_sach_cot]
FROM ...
SELECT TOP 3
tennv, mucluong
FROM qlns.nhanvien
Ví dụ : Cho biết tên và mức lương 3 nhân viên đầu tiên
21
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thực hành
• Chọn xem tất cả dữ liệu từ những bảng
khác nhau
• Chọn xem các cột, thực hiện các phép
toán số học trên các cột
• Đặt bí danh cho các cột, biểu thức
22
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Giới hạn dòng và sắp xếp dữ
liệu
23
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Giới hạn các dòng bằng cách sử dụng
các điều kiện chọn lọc
“Hiển thị tất cả nhân
viên trong phòng 20”
NHANVIEN
…
24
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Giới hạn các dòng trả về
• Sử dụng mệnh đề WHERE.
• Mệnh đề WHERE theo sau mệnh đề FROM.
SELECT *|{[DISTINCT] cot|bieu_thuc [bi_danh],...}
FROM bang
[WHERE dieu_kien]
25
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng mệnh đề WHERE
SELECT manhanvien,honv,tennv,maphong,macongviec,ngayvaolam
FROM qlns.nhanvien
WHERE maphong = 20
26
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Chuỗi ký tự và ngày
• Chuỗi ký tự và giá trị ngày được bao trong dấu nháy đơn.
• Các chuỗi ký tự có phân biệt chữ hoa, chữ thường.
• Nếu là chuỗi unicode thì phải thêm chữ N đầu chuỗi trước dấu nháy
• Để đảm bảo chuỗi ngày được hiểu đúng, ta sử dụng dạng ‘yyyy-mm-
dd’.
SELECT tennv, macongviec, maphong
FROM qlns.nhanvien
WHERE tennv = N‘Tùng'
SELECT tennv, macongviec, maphong
FROM qlns.nhanvien
WHERE ngayvaolam = ‘2005-01-15'
27
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các phép toán so sánh
Toán tử
=
>
>=
<
<=
Ý nghĩa
Bằng
Lớn hơn
Lớn hơn hoặc bằng
Nhỏ hơn
Nhỏ hơn hoặc bằng
Không bằng
28
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT tennv, mucluong
FROM qlns.nhanvien
WHERE mucluong <= 3000000;
Sử dụng các phép toán so sánh
29
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các điều kiện so sánh khác
Toán tử
BETWEEN
...AND...
IN(set)
LIKE
IS NULL
Ý nghĩa
Giữa hai giá trị,
Một trong các giá trị
So sánh ký tự theo mẫu
Là giá trị NULL
30
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng BETWEEN
Chọn lọc các dòng dựa trên phạm vi giá trị
SELECT honv, tennv, mucluong
FROM qlns.nhanvien
WHERE mucluong BETWEEN 2500000 AND 3500000
Lower limit Upper limit
31
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT manhanvien,honv+‘ ‘+tennv as hotennv,
mucluong, manguoiquanly
FROM qlns.nhanvien
WHERE manguoiquanly IN (100, 114, 201);
Sử dụng IN
Kiểm tra giá trị nằm trong danh sách
32
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng LIKE
−
% đại diện cho không hoặc nhiều ký tự.
−
_ đại diện cho 1 ký tự.
SELECT honv
FROM nhanvien
WHERE honv LIKE ‘L%'
SELECT tennv
FROM qlns.nhanvien
WHERE tennv LIKE '_o%';
33
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng NULL
Kiểm tra giá trị NULL với toán tử IS
NULL.
SELECT honv, tennv, manguoiquanly
FROM qlns.nhanvien
WHERE manguoiquanly IS NULL;
34
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử logic
Toán tử
AND
OR
NOT
Ý nghĩa
TRUE nếu cả hai thành phần đều true
TRUE nếu một trong hai thành phần là
true
TRUE nếu theo sau là giá trị false
35
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng AND
SELECT manhanvien, honv, tennv, macongviec, mucluong
FROM qlns.nhanvien
WHERE mucluong >=5000000
AND macongviec LIKE '%TH%';
36
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng OR
SELECT manhanvien, honv, tennv, macongviec, mucluong
FROM qlns.nhanvien
WHERE mucluong >= 5000000
OR macongviec LIKE ‘%TH%';
37
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT manv, tennv, macongviec
FROM qlns.nhanvien
WHERE macongviec
NOT IN (‘QLDAPM‘,’TPHONG’,’THI’,’BHANG’);
Sử dụng NOT
38
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT tennv, macongviec, maphong, ngayvaolam
FROM qlns.nhanvien
ORDER BY ngayvaolam
Mệnh đề ORDER BY
• Sắp xếp các dòng với ORDER BY
−
ASC: thứ tự tăng dần, mặc định
−
DESC: thứ tự giảm dần
• Mệnh đề ORDER BY xuất hiện sau cùng
trong câu lệnh SELECT.
…
39
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sắp xếp theo thứ tự giảm dần
SELECT tennv, macongviec, maphong, ngayvaolam
FROM qlns.nhanvien
ORDER BY ngayvaolam DESC
…
40
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sắp xếp theo bí danh của cột
SELECT manhanvien, tennv, mucluong*12 LuongCaNam
FROM qlns.nhanvien
ORDER BY LuongCaNam
…
41
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
• Thứ tự các cột trong danh sách ORDER BY
chính là thứ tự sắp xếp.
SELECT tennv, maphong, mucluong
FROM qlns.nhanvien
ORDER BY maphong, mucluong DESC
Sắp xếp theo nhiều cột
…
42
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Thực hành
• Giới hạn các dòng bằng mệnh đề WHERE
• Sắp xếp kết quả bằng ORDER BY
File đính kèm:
SQL Server - Bài 4_SQL.pdf

