Skip to main content

[Thủ Thuật Linux] Thay đổi kiểu dữ liệu trong MySQL mà không mất dữ liệu

Bài viết này sẽ hướng dẫn cách chuyển kiểu dữ liệu của cột thành VARCHAR mà không làm mất dữ liệu .

Chúng ta sẽ bắt đầu bằng cách tạo một bảng mẫu student_enroll_data .

CREATE TABLE student_enroll_data (
student_id INT,
student_name VARCHAR(50),
enroll_date DATE,
student_ssn_no INT,
fee_submitted DECIMAL(10,2)
);

Hãy để chúng tôi chèn một số dữ liệu vào bảng student_enroll_data .

INSERT INTO student_enroll_data(student_id,student_name,enroll_date,student_ssn_no,fee_submitted) 
VALUES(1,"Daniel",'2021-12-12',1147483782,12378.90),
(2,"Sandy",'2021-10-12',1147483788,14578.90),
(3,"Ryma",'2021-11-22',1147483789,22378.90),
(4,"Jennifer",'2021-12-02',1147483790,12378.90),
(5,"Austin",'2021-11-12',1147483791,12378.90),
(6,"George",'2021-10-10',1147483792,12788.90),
(7,"Veronica",'2021-02-13',1147483793,12378.90);

Xem ảnh bảng dữ liệu bằng cách thực thi lệnh sau

SELECT * FROM student_enroll_data;
Image
Xem ảnh chụp dữ liệu của bảng

Thay đổi loại cột thành VARCHAR mà không làm mất dữ liệu bằng "MODIFY"

Truy vấn dưới đây là sửa đổi kiểu dữ liệu của cột student_ssn_no từ INT thành VARCHAR .

ALTER TABLE student_enroll_data MODIFY student_ssn_no VARCHAR(50);

Chạy truy vấn dưới đây để xác nhận xem kiểu dữ liệu có được thay đổi hay không.

SELECT 
   COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    table_name = 'student_enroll_data';
Image
 Thay đổi type của column trong MySQL mà không mất dữ liệu - 1

Như hình cho thấy rằng kiểu dữ liệu của student_ssn_no hiện là varchar là 50. Hãy để chúng tôi xác minh xem dữ liệu có được bảo toàn hay không bằng cách thực thi:

SELECT * FROM student_enroll_data;
Image
Thay đổi type của column trong MySQL mà không mất dữ liệu -2

 Dữ liệu vẫn còn đó.

Thay đổi loại cột thành VARCHAR mà không làm mất dữ liệu bằng "CHANGE"

Tương tự mình dùng lệnh Change như sau

ALTER TABLE student_enroll_data CHANGE student_ssn_no student_ssn_no VARCHAR(50);

Quan sát bảng student_enroll_data bằng cách thực thi:

DESC student_enroll_data;
Image
Thay đổi type của column trong MySQL mà không mất dữ liệu - 4

Tương tự kiểm tra dữ liệu bằng lệnh 

SELECT * FROM student_enroll_data;
Image
Thay đổi type của column trong MySQL mà không mất dữ liệu -2

Hy vọng bài viết sẽ giúp cho bạn "Chuyển đổi kiểu dữ liệu cột trong MySQL mà không mất dữ liệu