I- With Grant Option
5. PHẮT BIỂU SQL
5.9. Phát biểu SQLd ạng DELETE
Với p h á t biểu SQ L dạng D E LETE th ì đơn giản hơn. Khi thực hiện lện h xoá m ẩu tin trong bảng chúng ta chỉ cần quan tâm đến tê n bảng, và m ệnh đề W HERE để xoá với những m ẩu tin đã chọn lọc nếu có. Cú pháp của Delete:
Delete from <table name> Where <condition>
Với m ệnh đề W HERE giông như b ấ t kỳ m ệnh đề W HERE nào trong p h át biểu SE L E C T hay
UPDATE và IN S E R T của b ấ t kỳ ứng dụng cơ sở dữ liệu nào có sử dụng SQL.
Conditions có th ể là phép toán giữa các cột và giá trị, nhưng cũng có th ể giá trị là k ế t quả trả về từ một p h á t biểu S E L E C T khác.
Ghi chú: Không có khái niệm xóa giá trị trong m ột cột, vì xóa giá trị một cột đồng nghĩa với cập n h ậ t cột đó bằng giá trị rỗng.
V í dụ 8-19: X óa m ẩ u tin v ớ i p h á t b iể u SQL d ạ n g DELETE
/* Xoá mẩu tin từ bảng với điều kiện * I
Delete from tblCustomers Where CustName is null
Trong trường hợp có ràn g buộc về quan hệ của dữ liệu, thì xóa m ẩu tin phải tu ân thủ theo quy tắc: Xoá mẩu tin con trước rồi mới xoá mẩu tin cha.
Chẳng hạn, trong trường hợp ta có 2 bảng: hợp đồng bán hàng (tblOrders) và hợp đồng bán hàng chi tiế t (tblOrderDetails).
Để xoá m ột hợp dồng bạn cần xóa mẩu tin trong bảng tblOrders trước rồi mới đến các m ẩu tin trong bảng tblOrderDetails.
V i dụ 8-20: Xoá m ẩ u tin vứ i D e le te
/* Xoá mẩu tin từ bảng con */ Delete from tblOrđerDetails where OrderID=123
/* Xoá mẩu tin từ bảng cha * I
Delete from tblOrders where OrderID=123
Bạn có th ể thực h iện m ột p h á t biểu SQL dạng D E LE TE với điều kiện trong m ệnh đề WHERE
lấy giá trị trả về từ p h á t biểu SE L E C T từ bảng khác, khai báo như vậy chỉ có hiệu lực trong cơ sỡ dữ liệu MySQL phiên bản 8.1 trở về sau hay trong cơ sở dữ liệu SQ L Server và Oracle.
V í du 8-21: Xoá m ẩ u tin th e o a u v tắ c có r à n g b u ô c q uan h
/* Xoá mẩu tin từ bảng với điều kiện lấy giá trị từ bảng khác * /
Delete from tblOrderDetails where ItemlD in
(select ItemlD from tblltems
where ItemName like ' IT% ' )
6. PHẮT BĩỂU SQL DANG JOIN
Ngoài các p h á t biểu SQ L với 4 dạng trên, trong phần k ế tiếp, chúng tôi trìn h bày m ột số p h á t biểu SQ L dạng Select để k ế t nối dữ liệu giữa các bảng có quan hệ với nhau, những p h á t biểu sẽ trìn h bày trong chương 5 như:
> K hái niệm J O IN
> Phát biểu IN N E R J O IN
> Phát biểu L E F T J O IN > Phát biểu R IG H T JO IN