Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Thả so với Cắt ngắn trong SQL

Trong bài này, chúng ta sẽ tìm hiểu và hiểu về lệnh Drop và Truncate và sự khác biệt giữa hai lệnh này.

Drop Command là gì?

Drop là một lệnh Ngôn ngữ Định nghĩa Dữ liệu trong Ngôn ngữ Truy vấn Có cấu trúc. Lệnh Drop trong SQL được sử dụng để xóa hoặc loại bỏ định nghĩa bảng, cơ sở dữ liệu, chỉ mục, chế độ xem, trình kích hoạt và ràng buộc dữ liệu khỏi bảng cơ sở dữ liệu.

Trong Ngôn ngữ truy vấn có cấu trúc, lệnh drop được sử dụng để loại bỏ các phần tử khỏi hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS).

Lệnh Delete có thể khôi phục dữ liệu sau khi nó được thực hiện, nhưng lệnh Drop không thể khôi phục dữ liệu sau khi nó được thực hiện. Lệnh Drop được sử dụng để giải phóng bộ nhớ nơi lưu trữ không gian bảng vì lệnh drop sẽ xóa vĩnh viễn bảng và nội dung của nó.

Lệnh Drop nhanh hơn so với lệnh cắt ngắn trong Ngôn ngữ truy vấn có cấu trúc. Tuy nhiên, thời gian thực hiện của lệnh thả chậm vì nó có nhiều phức tạp.

Để xóa một hoặc nhiều cột khỏi bảng, chúng tôi sử dụng lệnh drop với lệnh ALTER TABLE.

Cú pháp cho lệnh DROP để xóa cơ sở dữ liệu như sau:

DROP DATABASE Database_Name;

Trong cú pháp trên, chúng ta phải chỉ định tên cơ sở dữ liệu mà chúng ta muốn xóa khỏi hệ thống.

Lưu ý:- Hãy cẩn thận trước khi sử dụng lệnh DROP để xóa cơ sở dữ liệu vì lệnh drop xóa tất cả các đối tượng khỏi cơ sở dữ liệu như bảng, chỉ mục, dạng xem, trình kích hoạt được tạo trong cơ sở dữ liệu.

Cú pháp để xóa bảng như sau:

DROP TABLE Table_Name;

Trong cú pháp trên, chúng ta phải chỉ định tên bảng mà chúng ta muốn xóa khỏi cơ sở dữ liệu.

Cú pháp để xóa nhiều bảng khỏi cùng một cơ sở dữ liệu trong một câu lệnh như sau:

DROP TABLE table1, table2, table3;

Chúng tôi có thể xóa nhiều bảng khỏi cùng một cơ sở dữ liệu bằng cú pháp trên.

Cú pháp để xóa chỉ mục như sau:

DROP INDEX Index_Name;

Chúng tôi phải chỉ định tên chỉ mục trong cú pháp trên ngay sau Từ khóa lập chỉ mục.

Cú pháp để xóa chế độ xem như sau:

DROP VIEW View_Name;

Chúng tôi phải chỉ định tên chế độ xem trong cú pháp trên ngay sau Từ khóa Chế độ xem.

Cú pháp để loại bỏ ràng buộc khỏi bảng bằng ALTER TABLE như sau:

ALTER TABLE Table_Name DROP CONSTRAINT Constraint_Name;

Sử dụng lệnh ALTER TABLE trong SQL, chúng ta có thể xóa ràng buộc khỏi bảng.

Ví dụ về lệnh DROP:

Chúng tôi sẽ lấy một vài ví dụ bằng cách sử dụng lệnh DROP.

Bước 1: Tạo cơ sở dữ liệu hoặc sử dụng cơ sở dữ liệu hiện có. Chúng tôi sẽ sử dụng hai cơ sở dữ liệu cho lệnh DROP.

Bước 2: Tạo bảng mới hoặc sử dụng bảng, chỉ mục, dạng xem hiện có.

Ví dụ 1: Viết truy vấn để loại bỏ thông tin bảng sinh viên từ cơ sở dữ liệu của trường.

Trước tiên, chúng tôi sẽ chọn cơ sở dữ liệu Trường học bằng cách sử dụng Từ khóa SỬ DỤNG, sau đó là tên cơ sở dữ liệu.

USE School;

Chúng tôi sẽ viết lệnh drop để xóa bảng student_information khỏi cơ sở dữ liệu đã chọn.

Hãy xem xét bảng Students_information với các bản ghi sau:

Student_Id Student_Name Student_Course Student_Marks
1 Anjali BCOM 85
2 Pranav BCA 80
3 Yogesh B.E 88
4 Bhushan MBA 95
5 Poonam MCOM 97
6 Bhavesh B.E 90
7 Khushi BSC 94
8 Piyush BCOM 75
9 Nikita 88
10 Aishwariya BSC 70
DROP TABLE Students_Information;

Chúng tôi đã loại bỏ bảng Students_information với tất cả các bản ghi có bên trong bảng từ truy vấn trên.

Để kiểm tra chéo xem truy vấn đã được thực thi thành công hay chưa, chúng tôi sẽ thực hiện truy vấn CHỌN.

SELECT * FROM Students_Information;

Khi chúng tôi thực hiện truy vấn chọn trên bảng Students_information, thông báo bảng không tồn tại được hiển thị, có nghĩa là truy vấn lệnh Drop trên bảng Students_information được thực thi thành công.

Ví dụ 2: Viết truy vấn để loại bỏ chế độ xem manager_view1 từ cơ sở dữ liệu của công ty.

Hãy xem xét chế độ xem manager_view1 với các bản ghi sau:

MANAGERID MANAGER_NAME MANAGER_DEPARTMENT
1 Snehdeep Kaur ORACLE
3 Abhishek Manish JAVA

Chúng tôi sẽ viết lệnh drop để xóa chế độ xem manager_view1 khỏi cơ sở dữ liệu đã chọn.

DROP VIEW Manager_view1;

Chúng tôi đã loại bỏ chế độ xem manager_view1 khỏi truy vấn trên với tất cả các bản ghi có bên trong chế độ xem.

Để kiểm tra chéo xem truy vấn có được thực thi thành công hay không, chúng tôi sẽ thực hiện truy vấn CHỌN.

SELECT * FROM Manager_view1;

Khi chúng tôi thực hiện truy vấn chọn trên chế độ xem manager_view1, thông báo chế độ xem không tồn tại được hiển thị, có nghĩa là truy vấn lệnh Drop trên chế độ xem manager_view1 được thực thi thành công.

Ví dụ 3: Viết truy vấn để loại bỏ cơ sở dữ liệu Cricket khỏi hệ thống.

Trước khi thực hiện lệnh thả cho cơ sở dữ liệu, trước tiên chúng tôi thực hiện lệnh show cơ sở dữ liệu để xác minh ở cuối lệnh thả rằng chúng tôi đã loại bỏ thành công cơ sở dữ liệu Cricket khỏi hệ thống.

SHOW DATABASES;
Cơ sở dữ liệu
Chk
Công ty
Cricket
Nhân viên
Information_schema
Mysql
Performance_schema
Phpmyadmin
Trường
Kiểm tra
WordPress

Trên đây là các cơ sở dữ liệu đã có trong hệ thống; chúng tôi sẽ xóa cơ sở dữ liệu Cricket khỏi hệ thống. Bỏ cơ sở dữ liệu có nghĩa là xóa tất cả các đối tượng có bên trong bảng cơ sở dữ liệu, dạng xem, chỉ mục, trình kích hoạt, v.v.

Bây giờ, chúng tôi sẽ thực hiện một truy vấn để loại bỏ cơ sở dữ liệu Cricket.

DROP DATABASE Cricket;

Chúng tôi đã thực hiện truy vấn thả trên cơ sở dữ liệu Cricket. Để kiểm tra xem cơ sở dữ liệu có bị loại bỏ thành công hay không, chúng tôi sẽ thực hiện truy vấn HIỂN THỊ DỮ LIỆU.

SHOW DATABASES;
Cơ sở dữ liệu
Chk
Công ty
Nhân viên
Information_schema
Mysql
Performance_schema
Phpmyadmin
Trường
Kiểm tra
WordPress

Như bạn có thể thấy, cơ sở dữ liệu cricket đã bị xóa khỏi hệ thống thành công.

Ví dụ 4: Viết truy vấn để xóa cột họ khỏi bảng nhân viên.

ALTER TABLE employee DROP Last_Name;

Chúng tôi đã xóa cột Last_Name khỏi bảng nhân viên bằng lệnh DROP với lệnh ALTER trong truy vấn trên.

Field Loại Không Phím Mặc định Thêm
NHÂN VIÊN int (11) KHÔNG PRI KHÔNG ĐẦY ĐỦ
FIRST_NAME varchar (20) KHÔNG ĐẦY ĐỦ
LƯƠNG int (11) KHÔNG ĐẦY ĐỦ
THÀNH PHỐ varchar (20) KHÔNG ĐẦY ĐỦ
PHÒNG varchar (20) KHÔNG ĐẦY ĐỦ
MANAGERID int (11) KHÔNG ĐẦY ĐỦ

Kết quả trên cho thấy Last_Name đã bị xóa khỏi bảng nhân viên.

Lệnh Truncate là gì?

Truncate là một lệnh Ngôn ngữ Định nghĩa Dữ liệu khác trong Ngôn ngữ Truy vấn Có cấu trúc. Lệnh Truncate được sử dụng để xóa tất cả các bản ghi khỏi bảng. Giống như lệnh DROP, nhưng lệnh TRUNCATE không chứa mệnh đề WHERE. Lệnh Truncate nhanh hơn cả lệnh DROP và lệnh DELETE. Chúng tôi không thể khôi phục các bản ghi như lệnh DROP sau khi sử dụng lệnh TRUNCATE.

Cú pháp của lệnh TRUNCATE trong SQL:

TRUNCATE TABLE tablename;

Trong cú pháp trên, chúng ta phải đề cập đến tên bảng có dữ liệu mà chúng ta muốn xóa khỏi bảng.

Chúng tôi sẽ lấy một vài ví dụ bằng cách sử dụng lệnh TRUNCATE.

Ví dụ về lệnh TRUNCATE:

Bước 1: Tạo cơ sở dữ liệu hoặc sử dụng cơ sở dữ liệu hiện có.

Bước 2: Tạo bảng mới hoặc sử dụng bảng hiện có.

Xem xét bảng hiện có với các bản ghi sau:

Bảng:Nhân viên:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
3001 PRANOTI CHIA SẺ 55500 PUNE JAVA 3
3002 ANUJA DÂY 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4
4002 ASHWINI TÚI XÁCH 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI KIỂM TRA 4

Ví dụ: Viết truy vấn để xóa tất cả các bản ghi khỏi bảng nhân viên bằng lệnh truncate.

TRUNCATE TABLE Employee;

Chúng tôi đã xóa tất cả các bản ghi từ truy vấn trên khỏi bảng nhân viên.

Để kiểm tra chéo xem tất cả các bản ghi từ bảng nhân viên có bị xóa thành công hay không, chúng tôi sẽ thực hiện truy vấn CHỌN trên bảng nhân viên.

SELECT * FROM Employee;
EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID

Khi chúng tôi thực hiện truy vấn chọn trên bảng nhân viên, thông báo tập hợp trống sẽ hiển thị, có nghĩa là lệnh cắt ngắn trên bảng nhân viên được thực hiện thành công.

Các điểm dưới đây cho thấy sự khác biệt giữa lệnh Drop và lệnh Truncate trong Ngôn ngữ truy vấn có cấu trúc:

Lệnh DROP Lệnh TRUNCATE
Lệnh DROP xóa cấu trúc bảng và các bản ghi bảng. Lệnh TRUNCATE xóa tất cả các bản ghi khỏi bảng.
Lệnh DROP là lệnh Ngôn ngữ Định nghĩa Dữ liệu. Lệnh TRUNCATE cũng là lệnh Ngôn ngữ Định nghĩa Dữ liệu.
Trong lệnh DROP, không gian bảng trống trong bộ nhớ Lệnh TRUNCATE không giải phóng không gian bảng khỏi bộ nhớ.
Chế độ xem bảng không tồn tại trong lệnh DROP Chế độ xem bảng tồn tại trong lệnh TRUNCATE
Trong lệnh DROP, chúng ta không thể sử dụng dấu cách xóa. Trong lệnh TRUNCATE, chúng ta có thể sử dụng khoảng trắng xóa nhưng ít hơn so với lệnh DELETE.
Trong lệnh DROP, các ràng buộc về tính toàn vẹn sẽ tự động bị xóa khỏi bảng. Các ràng buộc toàn vẹn sẽ không bị xóa khỏi bảng trong lệnh TRUNCATE.
Lệnh DROP xóa các bản ghi nhanh, nhưng có nhiều phức tạp. Lệnh TRUNCATE nhanh hơn lệnh DROP.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo bảng từ truy vấn SQL

  2. SQL tham gia

  3. Một cách tiếp cận để điều chỉnh chỉ mục - Phần 2

  4. Khóa chính SQL

  5. Sai lầm sơ đồ ER thường gặp