Trong bài này mình sẽ hướng dẫn cách sử dụng hàm TRUNCATE trong MySQL thông qua cú pháp và ví dụ thực tế. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.freetuts.net, không được copy dưới mọi hình thức. 1. Mô tảHàm TRUNCATE trả về một số bị cắt cụt đến một số vị trí thập phân nhất định. 2. Cú phápCú pháp của hàm TRUNCATE trong MySQL là: TRUNCATE( number, decimal_places ) Trong đó: number : Số để cắt ngắndecimal_places : Số lượng các vị trí thập phân cắt ngắn đến. Giá trị này phải là số nguyên dương hoặc âm.
3. VersionHàm TRUNCATE có thể được sử dụng trong các phiên bản sau của MySQL : Bài viết này được đăng tại [free tuts .net] - MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23
4. Ví dụmysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115
Đã đăng vào thg 5 27, 2018 3:35 CH 2 phút đọc 2 phút đọc
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1
TRUNCATE
- Cú pháp:
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 3 - Đối với
TRUNCATE chúng ta chỉ có thể dùng cho bảng chứ không thể dùng cho từng record. - Khi chạy lệnh
TRUNCATE thì SQL sẽ xóa hết dữ liệu của bảng và reset mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 6, vì thế khi tạo 1 record mới, giá trị cua mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 7 sẽ bắt đầu từ mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 8, đây cũng chính là khác biệt lớn nhất của mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 và TRUNCATE . - Ví dụ
- Chúng ta sẽ chạy lệnh
TRUNCATE 1 với bảng ví dụ ở trên - Như các bạn có thể thấy bản chất câu lệnh
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 là xóa từng row khi có 109 rows đã bị tác động còn TRUNCATE đơn giản là xóa cả 1 dữ liệu của 1 bảng không kể số lượng dòng khi có 0 rows đã bị tác động.
- 1 vài điều lưu ý
TRUNCATE không thể chạy được khi bảng bạn định xóa có TRUNCATE 5 (nếu bảng đó có TRUNCATE 5 trỏ đến chính nó thì bạn có thể xóa bình thường)- Dữ liệu bị xóa bởi
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 có thể TRUNCATE 8 được còn TRUNCATE thì không. - Tùy vào từng trường hợp thì bạn sẽ dùng
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 hoặc TRUNCATE , TRUNCATE sẽ luôn nhanh hơn vì nó tiêu tốn ít bộ nhớ hơn, các bạn có thể cân nhắc điều này khi cần xóa 1 bảng lớn vs nhiều record.
All rights reserved - Lệnh DELETEDELETE
- Cú pháp:
MySQL 3 - Hoặc nếu muốn xóa cả bảng thì chúng ta có cú pháp:
MySQL 4 - Khi chạy lệnh
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 thì SQL sẽ log lại từng dòng đã xóa vào mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 6, vì thế nên khi bạn tạo 1 record mới, giá trị của mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 7 sẽ không bắt đầu từ mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 8 mà sẽ có giá trị MySQL 9 với TRUNCATE 0 là giá trị của record cuối cùng được tạo. - Ví dụ:
- Chạy lệnh
TRUNCATE 1 TRUNCATE 2 - Vậy là giá trị
TRUNCATE 3 = ‘S10_1678’ đã bị xóa khỏi DB; - Tiếp đến là ví dụ về xóa cả bảng với
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 TRUNCATE 5 - Và bây giờ bảng đã trống trơn
TRUNCATE
- Cú pháp:
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 3 - Đối với
TRUNCATE chúng ta chỉ có thể dùng cho bảng chứ không thể dùng cho từng record. - Khi chạy lệnh
TRUNCATE thì SQL sẽ xóa hết dữ liệu của bảng và reset mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 6, vì thế khi tạo 1 record mới, giá trị cua mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 7 sẽ bắt đầu từ mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 8, đây cũng chính là khác biệt lớn nhất của mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 và TRUNCATE . - Ví dụ
- Chúng ta sẽ chạy lệnh
TRUNCATE 1 với bảng ví dụ ở trên - Như các bạn có thể thấy bản chất câu lệnh
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 là xóa từng row khi có 109 rows đã bị tác động còn TRUNCATE đơn giản là xóa cả 1 dữ liệu của 1 bảng không kể số lượng dòng khi có 0 rows đã bị tác động.
- 1 vài điều lưu ý
TRUNCATE không thể chạy được khi bảng bạn định xóa có TRUNCATE 5 (nếu bảng đó có TRUNCATE 5 trỏ đến chính nó thì bạn có thể xóa bình thường)- Dữ liệu bị xóa bởi
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 có thể TRUNCATE 8 được còn TRUNCATE thì không. - Tùy vào từng trường hợp thì bạn sẽ dùng
mysql> SELECT TRUNCATE(115.34523, 0);
Ket qua: 115
mysql> SELECT TRUNCATE(115.34523, 1);
Ket qua: 115.3
mysql> SELECT TRUNCATE(115.34523, 2);
Ket qua: 115.34
mysql> SELECT TRUNCATE(115.34523, -1);
Ket qua: 110
mysql> SELECT TRUNCATE(115.34523, -2);
Ket qua: 100
mysql> SELECT TRUNCATE(-115.34523, 0);
Ket qua: -115 1 hoặc TRUNCATE , TRUNCATE sẽ luôn nhanh hơn vì nó tiêu tốn ít bộ nhớ hơn, các bạn có thể cân nhắc điều này khi cần xóa 1 bảng lớn vs nhiều record.
Đọc thêm bài viết |