Xem mẫu

29/01/2016

FAA

MỤC TIÊU

NGÔN NGỮ TRUY VẤN DỮ
LIỆU

Sau khi buổi học sinh viên biết được:
 Về kiến thức: Cấu trúc các câu lệnh truy
vấn và xử lý dữ liệu trong SQL
 Về kỹ năng: xem và thay đổi được dữ liệu
trên một database

2

1

NỘI DUNG

TOÁN TỬ VÀ ĐỘ ƯU TIÊN

T- SQL chia làm 3 nhóm câu lệnh:
 Ngôn ngữ định nghĩa dữ liệu
 Ngôn ngữ thao tác dữ liệu
 Ngôn ngữ điều khiển dữ liệu

Độ ưu tiên

Toán tử

1

* (Multiply), / (Division), % (Modulo)

2

+ (Positive), - (Negative), + (Add), - (Subtract)

3

=, >, =, , !< (Comparison operators)

4

NOT

5

AND

6

ALL, ANY, BETWEEN, IN, LIKE, OR, SOME

7

= (Assignment)

3

Ngôn ngữ định nghĩa dữ liệu

Lệnh CREATE
Create Database TenCSDL
Create Table TenBang (

 1. Create: Tạo đối tượng
 2. Alter: Thay đổi cấu trúc bảng
 3. Drop: Xóa đối tượng

Tên Cột

Kiểu DL Null | Not Null,

CONSTRAINT [Tên ràng buộc] CHECK (điều kiện),
CONSTRAINT [Tên khóa chính] PRIMARY KEY
CLUSTERED (DS CỘT),
CONSTRAINT [Tên khóa ngoại] FOREIGN KEY (Cột
khóa ngoại) REFERENCES Bảng LK đến (Cột LK)
ON UPDATE CASCADE
ON DELETE CASCADE
)
5

6

1

29/01/2016

Lệnh ALTER

Lệnh ALTER

 ALTER TABLE
VD: Thêm thông tin vào bảng
ALTER TABLE …
ADD TênĐốiTượng Thông tin đối tượng
VD: Chỉnh sửa thông tin bảng
ALTER TABLE …
ADD TênĐốiTượng Thông tin đối tượng

VD: Xóa đối tượng trong bảng
ALTER TABLE …
DROP TênĐốiTượng

7

Lệnh DROP

8

NGÔN NGỮ THAO TÁC DỮ LIỆU

 DROP TênĐốiTượng

1. Câu lệnh Select – Hiển thị dữ liệu
2. Câu lệnh Insert – Thêm dữ liệu
3. Câu lệnh Update – Cập nhật dữ liệu
4. Câu lệnh Delete – Xoá dữ liệu

9

1. CÂU LỆNH SELECT

10

Danh_Sách _Chọn
Chọn tất cả các cột trong bảng

Cú pháp:

Cú pháp:
SELECT * FROM Tên bảng
VD: Hiển thị tất cả những dữ liệu của
bảng DMHH

SELECT [ALL | DISTINCT | TOP n] danh_sách_chọn
[INTO tên_bảng_mới]
FROM danh_sách_bảng/khung_nhìn
[WHERE điều_kiện]
[GROUP BY danh_sách_cột]
[HAVING điều_kiện]
[ORDER BY cột_sắp_xếp]
[COMPUTE danh_sách_hàm_gộp [BY danh_sách_cột]

Select *
From T01_DMHH
11

12

2

29/01/2016

Danh_Sách _Chọn

Danh_Sách _Chọn

Lưu ý:

Chọn các cột được chỉ định
Cú pháp:
SELECT TenCot1, TenCot2,…
FROM Tên bảng
VD: Hiển thị Mã hàng và Tên hàng
Select MaHang, TenHang

Từ khóa DISTINCT
TOP
INTO

From T01_DMHH
13

Danh_Sách _Chọn

14

Danh_Sách _Chọn

Đổi tên các cột ở kết quả hiển thị

Thêm một Field tính toán vào kết
quả

Cú pháp:
SELECT ‘tiêu_đề_cột’ = TenCot
hoặc TenCot ‘tiêu_đề_cột’
hoặc TenCot as [tiêu_đề_cột]
FROM Tên bảng

VD:
SELECT ThanhTien = SL*DonGia
FROM Tên bảng

15

Mệnh đề FROM

Mệnh đề WHERE

Ý nghĩa: Xác định table, khung nhìn và
sự liên kết giữa các table khi truy vấn dữ
liệu
 DL truy vấn từ nhiều bảng nên dùng
phép nối
VD: Hiển thị toàn bộ thông tin hàng hóa từ
bảng DanhMucHangHoa
SELECT *
FROM T01_DMHH

16

17

Xác định điều kiện cho câu truy vấn
Sau WHERE có thể là:
 Toán tử so sánh
 Giới hạn
 Danh sách
 Khuôn dạng
 Giá trị
 Kết hợp các điều kiện
18

3

29/01/2016

Mệnh đề WHERE

Mệnh đề WHERE
 Giới hạn khoảng tìm kiếm
(BETWEEN và NOT BETWEEN)
VD: Hiển thị mặt hàng có số lượng nhập
từ 10.000 đến 20.000
SELECT *
FROM ChiTietPhieuNX
WHERE SoLuong between 10000 and
20000 AND SoPhieu Like ‘PN%’

 Các toán tử so sánh (>,10000
23

Khi sử dụng ký tự đại diện ta dùng từ khoá LIKE,
NOT LIKE
Ký tự đại diện:

 % : chuỗi ký tự bất kỳ
 - : Ký tự đơn bất kỳ
 [] ký tự đơn bất kỳ trong giới hạn được chỉ
định
 [^] ký tự đơn bất kỳ không trong giới hạn
được chỉ định

22

Mệnh đề Group By
GROUP BY để
Phân nhóm dữ liệu
Có thể áp dụng các hàm tổng hợp đối với
những nhóm nhỏ hàng dữ liệu chọn ra.

24

4

29/01/2016

Mệnh đề Group By

Mệnh đề Group By

 SQL cung cấp các hàm gộp

Câu lệnh thống kê chia làm 2 loại:
 Thống kê trên toàn bộ dữ liệu
 Thống kê phân nhóm dữ liệu

• SUM
• AVG
• COUNT
• MAX
• MIN

25

Mệnh đề Group By

26

Mệnh đề HAVING

VD1: Nhập xuất kho bao nhiêu mặt hàng?
SELECT count(distinct mahang)
FROM ChiTietPhieuNhapXuat
VD2: Đếm số lần nhập xuất của từng mặt
hàng
SELECT MaHang, COUNT(MaHang)
FROM ChiTietPhieuNhapXuat
GROUP BY MaHang

Thiết lập điều kiện cho một nhóm hoặc
hàm tổng hợp
Phân biệt HAVING và WHERE?
Lưu ý:
Chỉ sau khi dữ liệu đã được nhóm và
tổng hợp, điều kiện trong mệnh đề
HAVING mới được áp dụng.

27

28

Mệnh đề HAVING

Mệnh đề ORDER BY

VD: Hiển thị mặt hàng nhập kho nhiều
lần trong kỳ
SELECT MaHang, ‘Số lần nhập’=
COUNT(MaHang)
FROM ChiTietNhapXUAT
WHERE SOPHIEU LIKE ‘PN%’
GROUP BY MaHang
HAVING count(MaHang)>=2
29

Sắp xếp theo thứ tự (tăng ASC, giảm
DESC)
VD: Sắp xếp theo chiều giảm dần về số
lần nhập xuất kho của các mặt hàng
SELECT MaHang,
COUNT(*) as SoLanNhap
FROM ChiTietPhieuNhapXuat
GROUP BY MaHang
ORDER BY COUNT(*) DESC
30

5

nguon tai.lieu . vn