1.1 Danh sách chọn select list Đổi tên các cột trong kết quả Cú pháp: SELECT ‘tiêu_đề_cột’ = tên_cột hoặc tên_cột as ‘tiêu_đề_cột’ Ví dụ: Đổi tiêu đề cột trong kết quả câu truy vấn T
Trang 1CHƯƠNG 3 :
TRUY VẤN DỮ LIỆU
< tiết>
Trang 2 Về kỹ năng: tìm đọc và thay đổi
được dữ liệu trên một database
Trang 3NỘI DUNG
1 Câu lệnh Select – Tìm đọc dữ liệu
2 Câu lệnh Insert – Thêm hàng dữ liệu
3 Câu lệnh Update - Nhật tu các cột
4 Câu lệnh Delete – Xoá hàng dữ liệu
Trang 4TÀI LIỆU
Giáo trình: Chương 3: Truy vấn dữ liệu, HT TTKT P.2
Tài liệu tham khảo:
[1] Dương Quang Thiện, Chương 6: ‘Truy vấn dữ liệu, “Lập trình T – SQL”, NXB Văn Hoá Sài Gòn, trang 191 - 232
[2] SQL Server Books Online (từ khoá
tìm kiếm Select Query)
Trang 6Cú pháp:
SELECT [ ALL |DISTINCT ] select_list
[ INTO new_table] FROM table_source
Trang 71.1 Danh sách chọn (select
list)
Chọn tất cả các cột trong bảng
Cú pháp:
SELECT * FROM table_name
Ví dụ: Đọc toàn bộ dữ liệu của DMHH
SELECT *
FROM DanhMucHangHoa
Trang 91.1 Danh sách chọn (select
list)
Đổi tên các cột trong kết quả
Cú pháp:
SELECT ‘tiêu_đề_cột’ = tên_cột
hoặc tên_cột as ‘tiêu_đề_cột’
Ví dụ: Đổi tiêu đề cột trong kết quả câu truy vấn TenHang => Tên hàng
SELECT ‘Tên hàng’ =TenHang
FROM DanhMucHangHoa
Select Tenhang as ‘Tên Hàng’
Trang 111.1 Danh sách chọn (select
list)
Từ khoá DISTINCT loại bỏ ra khỏi
kết quả truy vấn những dòng dữ liệu giống (trùng) nhau.
Ví dụ: Liệt kê mã hàng nhập kho, loại bỏ các hàng trùng nhau
SELECT DISTINCT mahang
FROM chitietnhapkho
Trang 121.1 Danh sách chọn (select
list)
Tạo bảng mới câu lệnh SELECT …
INTO có cấu trúc được xác định từ kết quả câu truy vấn
Ví dụ: Tạo bảng DMHH từ kết quả câu lệnh select mặt hàng có đvt là mét
SELECT *
INTO DMHH_DVT
FROM DanhMucHangHoa
WHERE dvt = 'mét'
Trang 131.2 Mệnh đề FROM
Ý 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
Cú pháp:
FROM {<table_source>} [ , n ] ]
<joined_table> (mục 1.8 Mệnh đề Join)
Trang 171.3 Mệnh đề WHERE
Giới hạn khoảng tìm kiếm
( BETWEEN và NOT BETWEEN )
Ví dụ: Hiển thị mặt hàng có số lượng nhập từ 10.000 đến 20.000
SELECT *
FROM chitietnhapkho
WHERE slnhap between 10000 and
20000
Trang 181.3 Mệnh đề WHERE
Danh sách ( IN, NOT IN ) chỉ định điều kiện tìm kiếm (danh sách các giá trị)
Trang 191.3 Mệnh đề WHERE
Các ký tự đại diện: t ừ khoá LIKE (NOT LIKE):
mô tả khuôn dạng của dữ liệu cần t ìm kiếm
Trang 211.3 Mệnh đề WHERE
Toán tử logic AND, OR để kết hợp
các điều kiện
Ví dụ: Đọc thông tin về mặt hàng nhập kho thoả mãn điều kiện mặt hàng B
Trang 23Ví dụ 1: Tính tổng trị giá cuối kỳ
SELECT 'Tổng trị giá cuối kỳ' ,
sum (tienTonDk)
From danhmuchanghoa
Ví dụ 2: Nhập kho bao nhiêu mặt hàng?
SELECT count (distinct mahang )
FROM chitietnhapkho
Trang 25Để ý:
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
Trang 26Ví dụ: Hiển thị mặt hàng nhập trong kỳ, với số lần nhập lớn hơn 2
SELECT mahang, COUNT(*)
FROM chitietnhapkho
GROUP BY mahang
HAVING count(*)>2
Trang 271.6 Mệnh đề ORDER BY
Ý nghĩa: Sắp xếp theo thứ tự (tăng
ASC, giảm DESC) các hàng dữ liệu của kết quả truy vấn
Ví dụ: Sắp xếp theo chiều giảm dần về số lần nhập kho của các mặt hàng
Trang 29 Khi mệnh đề COMPUTE BY được dùng thì ORDER BY cũng phải được dùng tên cột hay
Trang 31Ví dụ: Hiển thị thông tin về tổng số lượng nhập kho của từng mã hàng
SELECT mahang , slnhap
FROM ChitietNhapKho
ORDER BY MAHANG asc
COMPUTE sum (SLNHAP) BY MAHANG
Trang 321.8 Mệnh đề JOIN
Mệnh đề JOIN để kết nối các bảng
lại
Kết nối chỉ tồn tại khi truy vấn
Kết nối dữ liệu không làm thay đổi
dữ liệu giữa các bảng dữ liệu
Nên tạo bí danh (alias) cho tên bảng
để tránh gõ tên dài và làm truy vấn
dễ đọc hơn
Trang 33Các loại kết nối (Join)
Inner Join (Phép nối trong)
Outer Join (Phép nối ngoài)
Left Outer Join
Right Outer Join
Full Outer Join
Cross Join (phép nối chéo)
Equi Join
Natural Join
Self Join (Tự kết nối)
Trang 34Inner Join
Dữ liệu từ nhiều bảng được hiển thị sau khi so sánh giá trị trong 1 cột chung
Chỉ những hàng mà có giá trị thoả mãn điều kiện kết nối trong cột chung đó mới được hiển thị
Trang 37Outer join (phép nối ngoài)
Kết nối ngoài được dùng để cho ra kết quả chứa tất cả các hàng của 1 bảng và các hàng trùng nhau của bảng còn lại
Những cột mà không có giá trị phù hợp
sẽ được hiển thị giá trị NULL
Trang 38Outer join (phép nối ngoài)
Trang 39Phép nối trái (Left join)
Tất cả các hàng từ bảng bên trái trong mối kết nối giữa 2 bảng sẽ được hiển thị trong bảng kết quả
Trang 40Phép nối phải (right join)
Tất cả các hàng từ bảng bên phải trong mệnh đề kết nối sẽ được hiển thị trong bảng kết quả
Trang 41Phép nối ngoài đầy đủ (full
outer join)
Tất cả các hàng của 2 bảng đều được hiển thị trong bảng kết quả
Những cột nào không có giá trị phù hợp
sẽ hiển thị giá trị NULL
Trang 421.9 Truy vấn con (Subquery)
Subquery là lệnh SELECT mà kết quả
trả về là 1 giá trị hoặc hoặc danh sách và được đặt lồng vào bên trong
các lệnh SELECT, INSERT, UPDATE,
hay DELETE, hay bên trong truy vấn con khác.
Subquery được thay thế cho Join để
để cho ra cùng về Results (“có nhiều con đường đi đến La Mã’’)
Trang 441.9 Truy vấn con (Subquery)
Subquery có thể được dùng theo 1 trong các dạng sau:
Giá trị đơn hoặc danh sách
WHERE expression [NOT] IN (subquery)
Giá trị so sánh
WHERE expression comparison_operator
[ANY | ALL] (subquery)
Kiểm tra dữ liệu, trả về True, False
WHERE [NOT] EXISTS (subquery)
Trang 45INSERT INTO table_name (col1, col2…)
VALUES (value1, value2…)
Để ý: số lượng các giá trị, kiểu dữ liệu
khi Insert
Trang 472 CÂU LỆNH INSERT
Câu lệnh INSERT SELECT:
INSERT INTO table_name (col1, col2…)
SELECT ….
Ví dụ: Chèn dữ liệu từ table ThuChiTienMat
sang table NhatKyChung
INSERT INTO NhatKyChung
SELECT * FROM ThuChiTienMat
Để ý: Hàm CONVERT
Trang 483 CÂU LỆNH UPDATE
Câu lệnh update dùng để thay đổi
hàng dữ liệu hiệu hữu.
Cú pháp:
UPDATE table_name| view_name
SET column_name = {expression
Trang 493 CÂU LỆNH UPDATE
Tăng giá lên 10% cho tất cả các sản phẩm
UPDATE DanhMucHangHoa
SET GiaBan =giaban*1.1
Thay đổi tên sản phẩm và đơn vị tính đối với sản phẩm H
UPDATE DanhMucHangHoa
SET TenHang =' Máy tính để bàn',
DVT ='Chiếc'
WHERE Mahang ='Sp_H'
Trang 503 CÂU LỆNH UPDATE
Cập nhập số lượng tồn đầu kỳ cho tất
cả các mặt hàng sau khi nhập thêm
Trang 53THỰC HÀNH BUỔI 3,4
Chương 3: Try vấn xử lý dữ liệu
(Câu lệnh Select)
Trang 54Đến đây anh (chị) đã có những kiến thức cơ bản về quản trị cơ
sở dữ liệu trên MS SQL (đủ xài) còn một số nội dung không
đề cập (quá sức) như Stored
Trigger… Anh (chị) tự tìm hiểu
và có thể trao đổi qua email!
Trang 55Bài học kế tiếp
PHẦN 2: PHẦN MỀM KẾ TOÁN – SSP ACCOUNTING
Chuẩn bị: Máy tính có cài đặt
phần mền SSP - Accounting
Trang 56Q & HỎI A
ĐÁP
Trân trọng cảm ơn!