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;
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';
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;
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;
Tương tự kiểm tra dữ liệu bằng lệnh
SELECT * FROM student_enroll_data;
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"