bài 4.1 - sql (structured query language) - sql server
DESCRIPTION
Lệnh truy vấn dữ liệuTRANSCRIPT
11
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SQL Server
22
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SQL (STRUCTURED QUERY LANGUAGE)
4
33
TRƯỜ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
44
TRƯỜ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
55
TRƯỜ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 SELECTChọn dòngChọn cột
Bảng 1 Bảng 2
Bảng 1Bảng 1
Kết
66
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Lệnh SELECT cơ bảnSELECT *|{[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
77
TRƯỜ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
88
TRƯỜ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ếtSELECT maphong, makhuvucFROM qlns.phong
99
TRƯỜ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
1010
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
1111
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ọcSELECT tennv, mucluong, mucluong + 300FROM qlns.nhanvien
…
1212
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ặcSELECT tennv, mucluong, 12*(mucluong+100)FROM qlns.nhanvien;
…
1313
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, phucapFROM qlns.nhanvien
…
…
1414
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ọcCác biểu thức số học có chứa giá trị NULL sẽ cho kết quả
NULL
…
…
1515
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
1616
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 pcFROM qlns.nhanvien
…
…
1717
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ốiSELECT tennv + macongviec AS "Nhanvien"FROM qlns.nhanvien
…
1818
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 nhauTheo 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 nhauSELECT maphongFROM qlns.nhanvien
…
1919
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 nhauSử dụng từ khóa DISTINCT trong mệnh đề SELECT.
SELECT DISTINCT maphongFROM qlns.nhanvien
2020
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
2121
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
2222
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
2323
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
…
2424
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]
2525
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng mệnh đề WHERESELECT manhanvien,honv,tennv,maphong,macongviec,ngayvaolamFROM qlns.nhanvienWHERE maphong = 20
2626
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, maphongFROM qlns.nhanvienWHERE tennv = N‘Tùng'
SELECT tennv, macongviec, maphongFROM qlns.nhanvienWHERE ngayvaolam = ‘2005-01-15'
2727
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
2828
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT tennv, mucluongFROM qlns.nhanvienWHERE mucluong <= 3000000;
Sử dụng các phép toán so sánh
2929
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)LIKEIS 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
3030
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng BETWEENChọn lọc các dòng dựa trên phạm vi giá trị
SELECT honv, tennv, mucluongFROM qlns.nhanvienWHERE mucluong BETWEEN 2500000 AND 3500000
Lower limit Upper limit
3131
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.nhanvienWHERE manguoiquanly IN (100, 114, 201);
Sử dụng INKiểm tra giá trị nằm trong danh sách
3232
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 honvFROM nhanvienWHERE honv LIKE ‘L%'
SELECT tennvFROM qlns.nhanvienWHERE tennv LIKE '_o%';
3333
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng NULLKiểm tra giá trị NULL với toán tử IS
NULL.SELECT honv, tennv, manguoiquanlyFROM qlns.nhanvienWHERE manguoiquanly IS NULL;
3434
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử logicToá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
3535
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng ANDSELECT manhanvien, honv, tennv, macongviec, mucluongFROM qlns.nhanvienWHERE mucluong >=5000000AND macongviec LIKE '%TH%';
3636
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Sử dụng ORSELECT manhanvien, honv, tennv, macongviec, mucluongFROM qlns.nhanvienWHERE mucluong >= 5000000OR macongviec LIKE ‘%TH%';
3737
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT manv, tennv, macongviecFROM qlns.nhanvienWHERE macongviec NOT IN (‘QLDAPM‘,’TPHONG’,’THI’,’BHANG’);
Sử dụng NOT
3838
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
SELECT tennv, macongviec, maphong, ngayvaolamFROM qlns.nhanvienORDER 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.
…
3939
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ầnSELECT tennv, macongviec, maphong, ngayvaolamFROM qlns.nhanvienORDER BY ngayvaolam DESC
…
4040
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 LuongCaNamFROM qlns.nhanvienORDER BY LuongCaNam
…
4141
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, mucluongFROM qlns.nhanvienORDER BY maphong, mucluong DESC
Sắp xếp theo nhiều cột
…
4242
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