bài 4.1 - sql (structured query language) - sql server

42
1 1 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC SQL Server

Upload: hoc-lap-trinh-web

Post on 25-Jun-2015

7.268 views

Category:

Documents


4 download

DESCRIPTION

Lệnh truy vấn dữ liệu

TRANSCRIPT

Page 1: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

11

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

SQL Server

Page 2: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - 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

Page 3: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 4: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 5: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 6: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 7: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 8: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 9: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 10: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 11: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 12: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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;

Page 13: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 14: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 15: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 16: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 17: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 18: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 19: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 20: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 21: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 22: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 23: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 24: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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]

Page 25: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 26: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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'

Page 27: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 28: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 29: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 30: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 31: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 32: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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%';

Page 33: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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;

Page 34: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 35: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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%';

Page 36: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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%';

Page 37: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 38: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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.

Page 39: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 40: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 41: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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

Page 42: Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server

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