1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình viên mã nguồn mở (Module 3) - Bài 3: Truy vấn trong CSDL MySQL - truy vấn con và cập nhật dữ liệu

15 69 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 1,84 MB

Nội dung

Bài giảng Lập trình viên mã nguồn mở (Module 3) - Bài 3: Truy vấn trong CSDL MySQL - truy vấn con và cập nhật dữ liệu trình bày các nội dung chính sau: Truy vấn con trả về một giá trị, truy vấn con trả về danh sách các giá trị, giá trị trực tiếp, lệnh xóa dữ liệu. Mời các bạn cùng tham khảo để nắm nội dung chi tiết.

Trang 1

Go Screen Capture Trường ĐH Khoa Học Tự Nhiên Tp Hồ Chí Minh

Trang 2

LTV Mã nguồn mở PHP - Module 3 Truy vấn con Khái niệm

e Truy vấn con là một câu lệnh truy vấn SELECT được lồng vào các câu lệnh truy vấn khác nhằm

thực hiện các truy vấn tính toán phức tạp

e Lưu ý: khi dùng truy vấn con cần tuân theo các quy

tac

= Truy vấn con phải được đặt trong cặp ngoặc đơn ()

= Truy vấn con chỉ có thể tham chiếu đến 1 cột hoặc 1 biểu

thức

e Kết quả trả về của truy vấn con có thê là một giá trị

Trang 3

Truy vấn con pc UTruy van con trả vê một giá trị

eLà truy vấn mà kết quả trả về của nó là một giá trị duy nhất

eVí dụ: hãy cho biết sản phẩm sữa nào có trọng lượng lớn nhất

= Tim trong lượng lớn nhất

SELECT MAX(Trong_ luong) MAX(Trong_luong) FROM sua 900 LTV Ma nguồn mở PHP - Module 3 4 Đến, Truy vấn con HH Lọc ra các sữa có trọng lượng bằng với trọng lượng lớn nhất này SELECT Ma sua, Ten_ sua, Trong_ luong

FROM sua TNNG Ey —— Trøng lưông

WHERE Trong_luong = (SELECT = Conxinex 900

Daisy Khong Đường 900

Trang 4

Truy vấn con Truy vấn con trả về danh sách các giá trị eLà truy vấn con mà kết quả trả về là tập hợp các giá trị

e Toán tử IN hoặc NOT IN thường được dùng

trong trường hợp này vì nó so sánh một

phân tử có thuộc (hay không thuộc) tập hợp

các giá trị hay không | | @ LTV Ma nguon mo PHP - Module 3 Truy van con

e Ví dụ: Hãy cho biết các khách hàng nào chưa mua hàng (chưa có thông tin khách hàng trong bảng hóa đơn)

= Tim các khách hàng đã mua hàng

" Lọc ra những khách hàng chưa mua hàng

SELECT Ma khach_ hang | | SELECT Ma_khach_ hang FROM hoa_ don FROM khach_hang

Trang 5

Truy vấn con

Làm việc với toán tử so sánh

e Các toán tử so sánh thường được sử dụng

trong truy vẫn con có thê là: >, >=, <, <=, =,

<>

eLưu ý: Thông thường các toán tử so sánh

được sử dụng khi dùng truy vấn con trả về một giá trị | | ở LTV Ma nguon mo PHP - Module 3 Truy van con

O Lam viéc với toán tử truy vấn con

e Các toán tử truy vấn con thường hay sử dụng là:

ANY, SOME, ALL, IN, NOT IN, EXISTS, NOT EXISTS

Trang 6

Truy vấn con pc e Ví dụ: Viết lại câu lệnh truy vấn cho biết các khách hàng chưa mua hàng

SELECT Ma_khach_ hang "Ma | khach_hang | FROM khach_ hang _kh004 |

WHERE Ma_khach_hang <>ALL _kh005 |

(SELECT Ma_khach_hang _ kh006 | FROM hoa_ don) _kh008_ lÌ

LTV Mã nguồn mở PHP - Module 3 10

Truy vấn con 333°

ULam viéc voi toan tử truy vân con

eSử dụng từ khóa EXISTS hoặc NOT

EXISTS dé kiểm tra tính tồn tại (hay không

tồn tại) của dữ liệu

eSau EXISTS hoac NOT EXISTS la cau lệnh

Trang 7

sess° k secs

Truy van con os:

eVí dụ: Tìm những khách hàng chưa mua hang theo cach dung NOT EXISTS

SELECT Ma_khach_hang _Ma khach_hang

FROM khach_ hang - kh004

WHERE NOT EXISTS (SELECT * - kh005

FROM hoa_ don kh0 06

Trang 8

Insert

O Cau lénh INSERT INTO được dùng đề thêm

mới một hay nhiều dòng dữ liệu vào bên trong một bảng ¬ Có thê thêm vào bảng: e Giá trị trực tiếp e Dữ liệu lấy từ các bảng khác (GV demo cách thêm dữ liệu bằng GD đồ học cho HV) If ở LTV Ma nguon mo PHP - Module 3 14 Insert ñ Giá trị trực tiếp e Cú pháp: INSERT INTO Tén_bang [(Ds cac cét trong bang)] VALUES (Danh_sach_cac_gia_tri)

e Ví dụ: Thêm mới một khách hàng có các thông tin sau vào bảng khach_ hang:

» Mã khách hàng: kh00Q7, Họ tên: Phan Nam, Phái: 0 (nam), Địa chỉ: 12A — Pasteur — Q.1 — TP

Trang 9

Insert

e\V/i du

INSERT INTO khach_hang(Ma_khach_hang,

Ten_khach_hang, Phai, Dia_chi, Dien_thoai, Email)

VALUES(“kh001”, “Phan Nam”, 0, “12A — Pasteur — Q.1 — TP

HCM”, “8497625”, “phannam@yahoo.com”)

INSERT INTO khach_hang

VALUES(“kh001”, “Phan Nam”, 0, “12A — Pasteur — Q.1 — TP HCM”, “8497625”, “phannam@yahoo.com”) LTV Mã nguồn mở PHP - Module 3 16 Insert

Q Lay dir liéu ttr cac bảng khác

e Bằng cách kết hợp giữa INSERT và SELECT

e Cú pháp:

INSERT INTO Tén_bang

[(Danh sách các cột cần thêm dữ liệu)] SELECT Danh_sách các cột lấy dữ liệu FROM Tên_ bảng_ nguồn

WHERE Điều kiện lọc dữ liệu

e Danh sách các cột cần thêm dữ: liệu và

Trang 10

f LTV Mã nguồn mở PHP - Module 3 9229 Insert se

eVí dụ: Thêm vào bảng ct_hoadon_07_2013

(bảng chưa có dữ liệu) các chỉ tiết hóa đơn

bán sữa của tháng 07/2013

INSERT INTO ct_hoadon_07_2013

Trang 11

Update

HGiá trị trực tiếp

e Dùng câu lệnh UPDATTE đề cập nhật giá trị

trực tiếp hay một biểu thức có giá trị trả về cho mẫu tin trong bảng

eCu pháp:

UPDATE Tên_ bảng

SET Tên_ cột = Giá trị (hoặc biểu thức) [ ]

WHERE Điều_ kiện cập nhật

(GV demo cách cập nhật dữ liệu bằng GD đồ học cho HV) H LTV Mã nguồn mở PHP - Module 3 20 Update e Ví dụ: Cập nhật lại đơn giá cho sữa có tên là

Trang 12

Update esos

e\/i du: cap nhat lai đơn giá cho các sữa có

mã hãng sữa là “AB” với đơn giá mới = đơn

giá cũ + 5% UPDATE sua

len sua Øon gia Ma hạngsus | SET Don_gia = Don_ gia + Don_ gia

Gain Advance 107000 AB * 09.05

Gain 10 107000 AB

Abbott Grow 67000 AB WHERE Ma_hang_sua = "AB"

Abbott Grow School 87000 AB

Abbott Pedia Sue 146000 AB Ten sua Don gia Ma hang sua

9mlscNeoOme | 145008 AB Gamn Advance 112350 AB Đơn giá cũ oo —— — Bội

Đơn giá mới Abbott Grow School $1350 AB Abbott Pedia Sure 15300 AB

Similac Neo Sure 152250 AB

LTV Mã nguồn mở PHP - Module 3 22

Update esos

OLay dir liéu tir các bảng khác

eKét hop gitva UPDATE va SELECT dé lay dữ liệu từ bảng khác cập nhật vào bảng eCu pháp:

UPDATE Tén_bang

SET Tén_cét = (SELECT FROM WHERE .)

WHERE Điều kiện cập nhật

LTV Mã nguồn mở PHP - Module 3 23

Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Cơng GMC Trang 53

Cong GUC

Trang 13

Update bảng sữa

eVí dụ: Cột đơn giá trong bảng c†_hoadon

chưa có giá trị, hãy cập nhật đơn giá cho cột

này với giá trị được lấy từ cột đơn giá của

Trang 14

Delete ¬ Lệnh xóa dữ liệu đơn giản e Cú pháp: DELETE FROM Tén_bang WHERE Diéu_kién_x6a e Vi du: Hay xoa khach hang co ma khach hang la “kh007” trong bảng khách hang DELETE FROM khach_hang WHERE Ma_khach_hang = ‘kh007’ Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Cơng GMC Trang 55 LTV Mã nguồn mở PHP - Module 3 26 Delete se Lệnh xóa dữ liệu có điều kiện được lầy từ các bảng khác

e khi việc xóa phức tạp hơn vì có liên quan

tới các quy tắc ràng buộc dữ liệu —› kết hợp câu lénh DELETE voi SELECT

eCu phap:

DELETE FROM Tén_bang

WHERE Tén_cét toan_tuw (SELECT FROM WHERE

Trang 15

đi Delete esos eVí dụ: xóa các hãng sữa không có sản phẩm sữa nào

DELETE FROM hang_ sua

WHERE Ma_hang_sua NOT IN (SELECT DISTINCT

Ngày đăng: 11/01/2020, 20:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w