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