Hướng dẫn mysql truncate - mysql cắt ngắn

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ế.

Hướng dẫn mysql truncate - mysql cắt ngắn

Hướng dẫn mysql truncate - mysql cắt ngắn

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áp

Cú pháp của hàm TRUNCATE trong MySQL là:

TRUNCATE( number, decimal_places )

Trong đó:

  • number:  Số để cắt ngắn
  • decimal_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. Version

Hà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

Hướng dẫn mysql truncate - mysql cắt ngắn

Đã đăng vào thg 5 27, 2018 3:35 CH 2 phút đọc 2 phút đọc

  1. 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
  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 TRUNCATE1 với bảng ví dụ ở trên
    Hướng dẫn mysql truncate - mysql cắt ngắ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. 1 vài điều lưu ý
  • TRUNCATE không thể chạy được khi bảng bạn định xóa có TRUNCATE5 (nếu bảng đó có TRUNCATE5 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ể TRUNCATE8 đượ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

  1. Lệnh DELETEDELETE
  • Cú pháp: MySQL3
  • Hoặc nếu muốn xóa cả bảng thì chúng ta có cú pháp: MySQL4
  • 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ị MySQL9 với TRUNCATE0 là giá trị của record cuối cùng được tạo.
  • Ví dụ:
  • Chạy lệnh TRUNCATE
  • TRUNCATE
  • Vậy là giá trị TRUNCATE3 = ‘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
  • Và bây giờ bảng đã trống trơn 
  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 TRUNCATE1 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. 1 vài điều lưu ý
  • TRUNCATE không thể chạy được khi bảng bạn định xóa có TRUNCATE5 (nếu bảng đó có TRUNCATE5 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ể TRUNCATE8 đượ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 TRUNCATETRUNCATE 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