Sự khác biệt giữa Truncate Và Xoá Khác biệt giữa

Anonim

Việc tạo và thao tác dữ liệu tạo thành cơ sở dữ liệu và chúng ta gọi nó là DDL và DML. DDL là chữ viết tắt cho Ngôn ngữ Định nghĩa Dữ liệu. Nó có thể tạo ra hoặc sửa đổi các cấu trúc dữ liệu trong cơ sở dữ liệu và chúng không thể được sử dụng để thay đổi dữ liệu có trong bảng. Ví dụ, chúng ta có các lệnh mà chỉ cần tạo một bảng với các thuộc tính bảng được chỉ định nhưng nó không bao giờ thêm bất kỳ hàng vào bảng. Nhưng một DML, ngôn ngữ Thao tác Dữ liệu, có khả năng thêm, xóa hoặc sửa đổi dữ liệu trong bảng. Theo nguyên tắc chung, các lệnh DDL đề cập đến các cấu trúc bảng trong khi các lệnh DML giải quyết các dữ liệu thực tế. Hãy để nó được, tại sao chúng ta chỉ đi chệch khỏi chủ đề "Sự khác biệt giữa Truncate và Delete"? Có những lý do mà chúng tôi đã nói về DML và DDL. Bạn sẽ hiểu nó trong cuộc thảo luận sắp tới.

Lệnh Truncate là gì?

Mục đích của lệnh Truncate là xóa toàn bộ bảng. Vì vậy, khi bạn sử dụng lệnh Truncate, bạn sẽ mất tất cả dữ liệu trên bảng và bạn nên cẩn thận khi sử dụng nó. Hãy cho chúng tôi biết cách sử dụng nó.

Cú pháp của Truncate:

TRUNCATE TABLE bảng tên ;

Ở đây, bạn nên chỉ định tên của bảng cần xóa trên toàn bộ. Điều này đảm bảo rằng sẽ có bất kỳ bảng ngồi trong không gian bộ nhớ. Dưới đây là một ví dụ về việc sử dụng Truncate.

Dưới đây là bảng "nhân viên" và chỉ cần nhìn vào hàng dữ liệu trong đó.

emp-id tên thương hiệu tên
1011 Jack Thư ký
1012 Rosy Quản trị
1014 Nancy > Tài chính
Bây giờ, chúng ta hãy đưa ra lệnh dưới đây trên bảng nhân viên.

TRUNCATE TABLE

nhân viên; Đây là kết quả của cú pháp ở trên và không có dữ liệu trong đó.

emp-id

tên thương hiệu chỉ định Lệnh Xóa là gì?

Mục đích của lệnh Xoá là xóa các hàng được chỉ định khỏi bảng. Ở đây, mệnh đề 'Where' được sử dụng ở đây để xác định các hàng cần phải được xóa. Khi chúng ta không xác định các hàng, lệnh sẽ xóa tất cả các hàng trong bảng. Chỉ cần nhìn vào cú pháp của nó.

XÓA T FROM

nhân viên; Cú pháp ở trên sẽ xóa tất cả các hàng từ bảng 'nhân viên'. Vì vậy, bảng kết quả sẽ không chứa dữ liệu.

XÓA T FROM

nhân viên WHERE emp-id = 1011; Câu lệnh này chỉ cần xóa một hàng duy nhất có emp-id là 1011. Vì vậy, bảng kết quả sẽ như dưới đây.

emp-id

tên công ty tên 1012
Rosy Quản trị 1014
Nancy Tài chính Sự khác nhau:

Truncate một DDL; Xóa là một DML:

  • Chúng tôi đã thảo luận ở trên cách DDL và DML làm việc trong cuộc thảo luận ở trên của chúng tôi.Lệnh Truncate là một DDL và nó hoạt động ở cấp cấu trúc dữ liệu. Nhưng Xóa là một lệnh DML và nó hoạt động trên dữ liệu bảng. Các ví dụ khác cho DDL là CREATE và ALTER. Tương tự như vậy, chúng ta có thể nói các lệnh như SELECT, UPDATE và REPLACE là ví dụ hoàn hảo cho một DML. Làm thế nào để Truncate và Xóa công trình:
  • Ngay khi chúng tôi ra lệnh Truncate, nó chỉ cần tìm các bảng quy định. Sau đó, nó hoàn toàn loại bỏ tất cả các dữ liệu từ bộ nhớ. Nhưng thủ tục làm việc không giống nhau trong trường hợp Xóa. Ở đây, dữ liệu bảng ban đầu được sao chép vào không gian được gọi là không gian 'Quay lại' trước khi thực hiện thao tác dữ liệu thực tế. Sau đó các thay đổi được thực hiện trên không gian dữ liệu bảng thực tế. Vì vậy, cả hai đều khác nhau theo cách họ làm việc. Truncate

-> xóa toàn bộ dữ liệu khỏi bảng -> Không gian bảng được giải phóng ngay bây giờ. Xóa

-> Sao chép dữ liệu bảng ban đầu vào không gian Lùi lại -> xóa dữ liệu đã được chỉ định / toàn bộ bảng -> Không gian bảng được giải phóng nhưng không gian Lùi lại được lấp đầy. Quay lại:

  • Quay lại giống như lệnh Undo trong phụ kiện của Microsoft của chúng tôi. Nó được sử dụng để hủy bỏ các thay đổi mà chúng tôi đã làm gần đây i. e. từ điểm lưu cuối cùng. Để thực hiện thao tác, dữ liệu phải được sao chép vào không gian Lùi lại trước khi nó được chỉnh sửa. Mặc dù những bộ nhớ đệm này yêu cầu bộ nhớ thêm, nhưng chúng rất hữu ích để trở lại bản gốc. Đặc biệt, khi bạn chỉnh sửa một cách nhầm lẫn! Hãy để chúng tôi đến Truncate và Xóa đối với Roll trở lại bây giờ. Như chúng ta đã thảo luận ở trên, Truncate không bao giờ sử dụng một khoảng trống quay trở lại và chúng ta không thể quay lại với dữ liệu ban đầu. Nhưng lệnh Delete sử dụng không gian trôi lùi và chúng ta chỉ có thể sử dụng 'Commit' hoặc 'Rollback' để chấp nhận hoặc hủy các thay đổi tương ứng. Kích hoạt:
  • Đối với những người cần giải thích về các yếu tố kích hoạt, đây là một lưu ý nhỏ. Bộ kích hoạt là một bộ hoạt động / hoạt động được xác định trước nên được kích hoạt khi bảng gặp một điều kiện đặc biệt. Ví dụ, chúng tôi có thể kích hoạt thay đổi số tiền lương khi kinh nghiệm của nhân viên với công ty là hơn một năm. Những kích hoạt này cũng có thể hoạt động trên các bảng khác. Ví dụ, chúng tôi có thể cập nhật bảng tài chính ngay khi tăng lương cho nhân viên. Truncate là một lệnh DDL, trình kích hoạt không được cho phép ở đây. Nhưng Xóa là một lệnh DML, Các trình kích hoạt được cho phép ở đây.

Nhanh hơn?

  • Như bạn đã biết, lệnh Truncate sẽ nhanh hơn lệnh Delete. Các cựu có thể loại bỏ tất cả các dữ liệu và không có cần phải kiểm tra cho bất kỳ điều kiện phù hợp. Ngoài ra, dữ liệu ban đầu không được sao chép vào không gian sao lưu và điều này tiết kiệm rất nhiều thời gian. Hai yếu tố này làm cho Truncate hoạt động nhanh hơn Delete. Chúng ta có thể sử dụng mệnh đề WHERE?
  • Mệnh đề 'Where' được sử dụng để chỉ các điều kiện kết hợp nhất định và không có gì với Truncate. Vì Truncate không bao giờ tìm kiếm bất kỳ điều kiện nào phù hợp và nó chỉ xóa tất cả các hàng, nên chúng tôi không thể sử dụng mệnh đề 'Where' ở đây.Nhưng chúng ta luôn có thể chỉ định điều kiện với sự trợ giúp của mệnh đề 'where' trong lệnh Xóa. Mà chiếm nhiều không gian hơn?
  • Các truncate sẽ không sử dụng không gian rollback và nó sẽ tiết kiệm bộ nhớ đó. Nhưng xóa cần một bản sao lưu ở dạng không gian Rollback và do đó nó đòi hỏi nhiều không gian bộ nhớ hơn truncate. Vì vậy, đó là những khác biệt và chúng ta hãy nhìn vào trong một hình thức bảng.

S. Không

Sự khác nhau trong Truncate Xóa 1.
DDL hoặc DML? Đó là một DDL và nó hoạt động ở cấp cấu trúc dữ liệu. Các ví dụ khác cho DDL là CREATE và ALTER. Đây là một lệnh DML và nó hoạt động trên dữ liệu bảng. DML là viết tắt của Ngôn ngữ Thao tác Dữ liệu. Các lệnh như SELECT, UPDATE, và REPLACE là các ví dụ hoàn hảo cho một DML. DML là viết tắt của Ngôn ngữ Thao tác Dữ liệu.

2.

Làm thế nào để nó làm việc? Ngay khi chúng ta đưa ra lệnh Truncate, nó chỉ cần tìm bảng được chỉ định. Sau đó, nó hoàn toàn loại bỏ tất cả các dữ liệu từ bộ nhớ. Ở đây, dữ liệu bảng ban đầu được sao chép vào không gian được gọi là không gian 'Quay lại' trước khi thực hiện thao tác dữ liệu thực tế. Sau đó các thay đổi được thực hiện trên không gian dữ liệu bảng thực tế. 3.
Rollback Lệnh Truncate không bao giờ sử dụng một khoảng trống và chúng ta không thể quay lại với dữ liệu ban đầu. Một không gian Rollback là một không gian độc quyền và được sử dụng khi các lệnh DML được phát hành. Lệnh Xoá sử dụng khoảng trống và chúng ta chỉ có thể sử dụng 'Commit' hoặc 'Rollback' để chấp nhận hoặc hủy các thay đổi tương ứng. 4.

Kích hoạt Truncate là một lệnh DDL, các trình kích hoạt không được phép. Xóa là một lệnh DML, Triggers được cho phép ở đây. 5.

Nhanh hơn? Nó có thể xóa tất cả dữ liệu và không cần phải kiểm tra các điều kiện phù hợp. Ngoài ra, dữ liệu ban đầu không được sao chép vào không gian sao lưu và điều này tiết kiệm rất nhiều thời gian. Hai yếu tố này làm cho Truncate hoạt động nhanh hơn Delete. Nó sử dụng không gian rollback và luôn luôn giữ nguyên dữ liệu ban đầu. Đây là một gánh nặng và lần lượt mất nhiều thời gian hơn Truncate.

6.
Chúng ta có thể sử dụng mệnh đề WHERE? Vì Truncate không bao giờ tìm kiếm bất kỳ điều kiện nào phù hợp và chỉ xóa tất cả các hàng, chúng tôi không thể sử dụng mệnh đề 'Where' ở đây. Nhưng chúng ta luôn có thể chỉ định điều kiện với sự trợ giúp của mệnh đề 'where' trong lệnh Delete. 7.
Mà chiếm nhiều không gian hơn? Các truncate sẽ không sử dụng không gian rollback và nó sẽ tiết kiệm bộ nhớ đó. Nó cần một bản sao lưu ở dạng không gian Rollback và do đó nó đòi hỏi nhiều không gian bộ nhớ hơn truncate. Biết được sự khác biệt giữa hai thực thể mở rộng kiến ​​thức về cả hai! Bạn đã đi trên con đường bên phải i. e. các trang web để hiểu được sự khác biệt, đặc biệt, giữa lệnh cắt ngắn và xóa. Hy vọng bạn đã rõ ràng với những khác biệt và cho chúng tôi biết nếu chúng tôi đã giúp bạn hiểu nó. Bạn cũng có thể giúp chúng tôi chỉ ra những gì đã được trái!