Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Xóa dữ liệu với DELETE

  1. #1
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Xóa dữ liệu với DELETE

    Xem mục lục các bài viết


    Bây giờ cùng học cách xóa dữ liệu với DELETE.
    Rất đơn giản lại hiệu quả nhưng cần sự cẩn thận trong khi thực hiện.
    Xóa tất cả các record
    Để xóa tất cả các record trong một bảng bạn dùng cấu trúc :
    Code:
    DELETE FROM
    	<table_name>
    Ví dụ tớ muốn xóa hết các record trong bảng ‘Employees’ thì viết thế này
    Code:
    DELETE FROM
    	Employees;
    GO
    Vậy là xong. Nhưng nếu mà để xóa tất cả các record đơn thuần thế này thì thường người ta không xài DELETE vì hiệu quả thấp. Khi dùng DELETE mỗi khi xóa một record thì Server sẽ chuyển sang log sau đó mới chuyển sang xóa record tiếp theo. Để đạt hiệu quả tốt thì lúc này dùng TRUNCATE.
    Cáu trúc :
    Code:
    TRUNCATE <table_name>
    Ví dụ xóa các record ở trên thì viết đơn giản là :
    Code:
    TRUNCATE Employees;
    GO
    Vì TRUNCATE chỉ xóa và không làm log hay tác vụ khác cho nên hiệu quả cao hơn DELETE trường hợp này.
    Xóa các record có tính chất
    Bạn dùng thêm mệnh đề WHERE để xác định các record cần xóa.
    Ví dụ xóa các record trong bảng ‘Employees’ có EmployeeID > 5 thì viết thành :
    Code:
    DELETE FROM
    	Employees
    WHERE
    	EmployeeID > 5;
    GO
    Bạn dùng mệnh đề WHERE và các toán tử đi kèm như AND , OR, LIKE … để xác định các record cần xóa.
    Xóa với TOP X
    Tương tự với SELECT và INSERT có thể dùng DELETE TOP X để xóa X record TOP.
    Giống như INSERT, lệnh DELETE cũng có nhiều biến tấu nhưng rất phức tạp. Mình sẽ đề cập ở các bài sau.

    Bài viết kết thúc tại đây.
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 04-08-2007 lúc 08:40 PM.
    None!

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    SN06 - 70 Trương Định - HBT - HN
    Bài viết
    36

    Bài viết trên còn so xài quá,, trong một database, khi xóa 1 hàng dữ liệu nào đó, các bác nhớ chú ý xóa từ chi tiết đến tổng quát.

    Nghĩa là xóa những cái có sự liên quan tới nó ở các bảng khác rùi mới xóa tới nó . Ví dụ cần xóa khách hàng A thì sẽ phải xóa hóa đơn mà a ta mua, rồi mới xóa anh ta ( Nhưng đừng xóa mặt hàng nha,,, vì 1 mặt hàng có thể có nhiều người mua, )-->> phân biệt được khóa CHÍNH và khóa PHỤ....

    vẫn còn vài vấn đề khác về chuyện xóa, ai biết gì thì góp ý thêm...


    =====================================
    XWAYSTYLE ---------> Brings joy to milions.....
    Intel(R) Pentium 4(R) 2.8GHz Main IntelD845Pemy (Socket 478) RAM 1024Mb VGAFX5200 128Mb 128Bit HDD Maxtor 160Gb PATA Sound Blaster live 5.1 Gamer

    Windows Vista Ultimate Sp1 (activated)
    Rating : 2.5 Mark
    Theme: Windows Aero (very nice!)

  3. #3
    Ngày gia nhập
    11 2007
    Nơi ở
    Trái đất
    Bài viết
    7

    Ôi sao lại vậy, khi CSDL đã có Relationship thì khi xóa một anh chàng khách hàng, thì những cái có liên quan trực tiếp tới anh ta sẽ tự động xóa hết, đâu cần phải làm gì dài dòng như là xóa thư mục trong Dos vậy.
    Không có việc gì khó
    Chỉ sợ tiền không nhiều
    Đào núi và lấp biển
    Không làm được thì đi thuê.

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà nội
    Bài viết
    77

    Trích dẫn Nguyên bản được gửi bởi KimDaiHiep Xem bài viết
    Ôi sao lại vậy, khi CSDL đã có Relationship thì khi xóa một anh chàng khách hàng, thì những cái có liên quan trực tiếp tới anh ta sẽ tự động xóa hết, đâu cần phải làm gì dài dòng như là xóa thư mục trong Dos vậy.
    hiểu 1 cách sai lầm rồi bạn ơi
    câu bạn nói chỉ đúng với trường hợp khi bạn đã set delete rule=cascade cho ràng buộc giữa 2 bảng có quan hệ
    thay vì để cascade bạn để no action thì nó sẽ báo lỗi đó,và như vậy bạn sẽ phải xóa DL ở bảng có quan hệ con trước khi xóa DL ở bảng có quan hệ cha
    Sống ở trên đời cần có một TẤM LÒNG để lúc đói còn có chỗ mà nhét THỨC ĂN

Các đề tài tương tự

  1. Lệnh Delete (SQL) thông báo thành công nhưng trong CSLD không xóa
    Gửi bởi hatnang trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 19-11-2013, 10:27 AM
  2. Chặn nút delete trong datagridview khi xóa dữ liệu?
    Gửi bởi xiu_coi trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 26-09-2012, 10:38 AM
  3. ADO.NET Xóa 1 row trên Gridcontrol bằng phím Delete
    Gửi bởi wind9k trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 04-06-2012, 12:16 PM
  4. mọi người giúp mình hàm delete xóa control với
    Gửi bởi giophieulang trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 02-06-2012, 09:07 AM
  5. new và delete | có thể xóa một con trỏ không còn trỏ vào phần tử đầu tiên của mảng?
    Gửi bởi dieucay555 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 18-05-2008, 10:43 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn