แปลงชนิดข้อมูลด้วยฟังก์ชัน
หากไม่ต้องการจองพื้นที่มากเกินไปสำหรับคอลัมน์ varchar คอลัมน์หนึ่ง สามารถ ตัดทอน ค่าก่อนแปลงชนิดข้อมูลได้
ใช้ syntax ต่อไปนี้:
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)
อ่านความหมายได้ดังนี้: เนื่องจากต้องการจองพื้นที่เพียง x ตัวอักษรสำหรับ column_name จึงต้องเก็บเฉพาะ SUBSTRING ของแต่ละค่า นั่นคือ x ตัวอักษรแรก แล้วตัดส่วนที่เหลือทิ้ง วิธีนี้ทำให้ค่าทั้งหมดเป็นไปตามข้อกำหนดของ varchar(x)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
SQL เบื้องต้น: ฐานข้อมูลเชิงสัมพันธ์
คำแนะนำการฝึกหัด
- รันโค้ดตัวอย่างตามที่เป็นอยู่ แล้วสังเกตข้อผิดพลาดที่เกิดขึ้น
- จากนั้นใช้
SUBSTRING()เพื่อลดความยาวของfirstnameให้เหลือ 16 ตัวอักษร เพื่อให้สามารถเปลี่ยนชนิดข้อมูลเป็นvarchar(16)ได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(16)