Bắt đầu ngayBắt đầu miễn phí

Chuyển kiểu bằng USING với một hàm

Nếu bạn không muốn dành quá nhiều dung lượng cho một cột varchar nào đó, bạn có thể cắt ngắn (truncate) các giá trị trước khi chuyển kiểu.

Để làm việc này, bạn có thể dùng cú pháp sau:

ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)

Bạn có thể hiểu như sau: Vì bạn chỉ muốn dành x ký tự cho column_name, bạn phải giữ lại một SUBSTRING của mỗi giá trị, tức là x ký tự đầu tiên của giá trị đó, và bỏ phần còn lại. Bằng cách này, các giá trị sẽ đáp ứng yêu cầu varchar(x).

Bài tập này là một phần của khóa học

Nhập môn Cơ sở dữ liệu quan hệ bằng SQL

Xem khóa học

Hướng dẫn bài tập

  • Chạy mã mẫu như hiện tại và lưu ý thông báo lỗi.
  • Bây giờ hãy dùng SUBSTRING() để rút gọn firstname còn 16 ký tự để có thể đổi kiểu của nó thành varchar(16).

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors 
ALTER COLUMN firstname 
TYPE varchar(16)
Chỉnh sửa và Chạy Mã