ฟังก์ชัน CAST ของ MySQL อธิบาย: ไวยากรณ์, ตัวอย่าง, การแปลงประเภทข้อมูลและแนวปฏิบัติที่ดีที่สุด

目次

1. แนวคิดพื้นฐานของฟังก์ชัน CAST

ฟังก์ชัน CAST คืออะไร?

ฟังก์ชัน CAST ของ MySQL เป็นฟังก์ชัน SQL ที่ใช้แปลงประเภทข้อมูล โดยจะแปลงนิพจน์ที่ระบุให้เป็นประเภทข้อมูลอื่น ๆ การใช้ฟังก์ชัน CAST คุณสามารถเช่น แปลงสตริงเป็นจำนวนเต็ม หรือแปลงประเภทวันที่เป็นสตริงได้ เป็นเครื่องมือที่มีประโยชน์และถูกใช้บ่อยในงานฐานข้อมูลเพื่อรักษาความสอดคล้องของประเภทข้อมูล

การใช้งานหลักของฟังก์ชัน CAST

ฟังก์ชัน CAST มีการใช้งานที่หลากหลายและมักถูกใช้ในสถานการณ์ต่อไปนี้

  • การทำให้ข้อมูลเป็นมาตรฐาน : ใช้เพื่อทำให้ข้อมูลที่เก็บในรูปแบบต่าง ๆ มีความสอดคล้องกัน ตัวอย่างเช่น ช่วยทำให้รูปแบบวันที่ที่เก็บในตารางเป็นรูปแบบเดียวกัน
  • การแปลงประเภทข้อมูล : แปลงจำนวนเต็มเป็นสตริงหรือกลับกันเพื่อเพิ่มประสิทธิภาพในการแสดงผลและการคำนวณ
    SELECT CAST('2023-09-22' AS DATE);
    

ความแตกต่างระหว่างฟังก์ชัน CAST กับการแปลงประเภทข้อมูลอื่น ๆ

ฟังก์ชัน CAST มีลักษณะคล้ายกับฟังก์ชันการแปลงของ MySQL อื่น ๆ (เช่น CONVERT) แต่ความแตกต่างสำคัญคือ CAST ปฏิบัติตามมาตรฐาน SQL และได้รับการสนับสนุนจากระบบฐานข้อมูลหลายระบบ ส่วน CONVERT เป็นฟังก์ชันเฉพาะของ MySQL และมักใช้เพื่อวัตถุประสงค์พิเศษ เช่น การแปลงชุดอักขระ

2. ไวยากรณ์และการใช้งานของฟังก์ชัน CAST

ไวยากรณ์ของฟังก์ชัน CAST

ไวยากรณ์พื้นฐานของฟังก์ชัน CAST มีดังนี้

CAST(expression AS data_type)

ในไวยากรณ์นี้ ให้ระบุค่าที่ต้องการแปลงในส่วนของ expression และระบุประเภทข้อมูลเป้าหมายในส่วนของ data_type

ตัวอย่างการใช้ฟังก์ชัน CAST

  • แปลงเป็นประเภทจำนวนเต็ม : ใช้เมื่อแปลงสตริงเป็นจำนวนเต็ม
    SELECT CAST('123' AS SIGNED);
    
  • แปลงเป็นประเภทสตริง : ใช้เมื่อแปลงค่าตัวเลขเป็นสตริง
    SELECT CAST(123 AS CHAR);
    

การจัดการข้อผิดพลาด

เมื่อใช้ฟังก์ชัน CAST อาจเกิดข้อผิดพลาดหากค่าที่ระบุไม่ถูกต้องสำหรับประเภทข้อมูลเป้าหมาย ตัวอย่างเช่น การพยายามแปลง 'abc' เป็นค่าตัวเลขจะทำให้เกิดข้อผิดพลาด ในกรณีเช่นนี้แนะนำให้จัดการข้อผิดพลาดโดยใช้ฟังก์ชันร่วมเช่น IFNULL

3. ประเภทข้อมูลที่ใช้บ่อยและตัวอย่างการแปลง

สถานการณ์ทั่วไปสำหรับการแปลงประเภทข้อมูล

ด้วยฟังก์ชัน CAST มักจะมีการแปลงเป็นประเภทข้อมูลต่อไปนี้

  • ประเภท INT : แปลงค่าให้เป็นประเภทจำนวนเต็ม
  • ประเภท VARCHAR : แปลงค่าตัวเลขหรือวันที่ให้เป็นสตริง
  • ประเภท DATE : แปลงสตริงหรือค่าตัวเลขให้เป็นวันที่

การแปลงเป็นประเภท INT

SELECT CAST('456' AS SIGNED);

ในตัวอย่างนี้ สตริง '456' ถูกแปลงเป็นประเภทจำนวนเต็ม

การแปลงเป็นประเภท VARCHAR

SELECT CAST(456 AS CHAR);

นี่คือตัวอย่างการแปลงจำนวนเต็มเป็นสตริง การทำเช่นนี้มีประโยชน์เมื่อคุณต้องการแสดงข้อมูลในรูปแบบที่กำหนด

การแปลงเป็นประเภท DATE

SELECT CAST('2024-01-01' AS DATE);

ตัวอย่างนี้จะแปลงสตริงให้เป็นประเภทวันที่ ด้วยวิธีนี้ข้อมูลจะถูกจัดเก็บอย่างแม่นยำและสามารถนำไปใช้ในงานที่เกี่ยวกับวันที่ต่อไปได้

4. หมายเหตุสำคัญและแนวปฏิบัติที่ดีที่สุดสำหรับฟังก์ชัน CAST

หมายเหตุสำคัญเมื่อใช้ฟังก์ชัน CAST

มีประเด็นสำคัญหลายอย่างที่ควรพิจารณาเมื่อใช้ฟังก์ชัน CAST

  1. ความเข้ากันได้ของประเภท : การแปลงที่ไม่ถูกต้องอาจทำให้เกิดข้อผิดพลาด ดังนั้นต้องตรวจสอบความเข้ากันได้ของประเภทล่วงหน้า
  2. การสูญเสียความแม่นยำของข้อมูล : โดยเฉพาะเมื่อแปลงตัวเลขแบบทศนิยม ความแม่นยำของข้อมูลอาจสูญเสียไป

แนวปฏิบัติที่ดีที่สุด

  • ใช้ประเภท DECIMAL : เมื่อแปลงตัวเลขแบบทศนิยม ควรใช้ประเภท DECIMAL เพื่อป้องกันการสูญเสียความแม่นยำ
    SELECT CAST(123.456 AS DECIMAL(5,2));
    
  • การจัดการข้อผิดพลาด : หากมีการผสมประเภทข้อมูลที่ไม่คาดคิด แนะนำให้จัดการข้อผิดพลาดด้วย IFNULL หรือคำสั่ง CASE

5. ความแตกต่างระหว่างฟังก์ชัน CAST กับฟังก์ชัน CONVERT

การเปรียบเทียบระหว่าง CAST และ CONVERT

.ทั้ง CAST และ CONVERT ถูกใช้เพื่อแปลงประเภทข้อมูล แต่มีความแตกต่างกันในด้านไวยากรณ์และวัตถุประสงค์

  • ฟังก์ชัน CAST : ใช้กันอย่างแพร่หลายในมาตรฐาน SQL โดยมีไวยากรณ์ CAST(expression AS data_type)
  • ฟังก์ชัน CONVERT : ฟังก์ชันเฉพาะของ MySQL โดยมีไวยากรณ์ CONVERT(expression, data_type)

ตัวอย่างการใช้ฟังก์ชัน CONVERT

ฟังก์ชัน CONVERT มักใช้สำหรับการแปลงชุดอักขระ

SELECT CONVERT('abc' USING utf8);

ในตัวอย่างนี้ ชุดอักขระของสตริงจะถูกแปลง

ควรใช้ฟังก์ชันใด?

โดยทั่วไปแนะนำให้ใช้ฟังก์ชัน CAST เพราะเป็นไปตามมาตรฐาน SQL และได้รับการสนับสนุนอย่างกว้างขวาง อย่างไรก็ตามเมื่อจำเป็นต้องแปลงชุดอักขระ ฟังก์ชัน CONVERT จะเหมาะสมกว่า

6. ตัวอย่างเชิงปฏิบัติ: การจัดการข้อมูลด้วยฟังก์ชัน CAST

ตัวอย่างการจัดการข้อมูลในโลกจริง

ต่อไปนี้คือตัวอย่างการทำงานกับข้อมูลจริงโดยใช้ฟังก์ชัน CAST

การจัดเรียงหลังจากแปลงตัวเลขเป็นสตริง

เช่น เมื่อแปลงค่าตัวเลขเป็นสตริงก่อนจัดเรียง คุณสามารถเขียนคิวรีได้ดังนี้

SELECT CAST(column_name AS CHAR) FROM table ORDER BY column_name;

การกรองหลังจากแปลงสตริงเป็นตัวเลข

คุณสามารถแปลงสตริงเป็นตัวเลขและกรองตามช่วงค่าที่กำหนดได้

SELECT * FROM table WHERE CAST(column_name AS SIGNED) > 100;

7. สรุป

สรุปบทความ

ฟังก์ชัน CAST มีประโยชน์อย่างยิ่งสำหรับการแปลงประเภทข้อมูลอย่างมีประสิทธิภาพ ในบทความนี้เราได้ครอบคลุมตั้งแต่การใช้งานพื้นฐานจนถึงตัวอย่างเชิงปฏิบัติ เมื่อทำการแปลงประเภทข้อมูล ควรใส่ใจความเข้ากันได้ของประเภทและความแม่นยำของข้อมูล และใช้ฟังก์ชัน CAST อย่างเต็มที่ในงานฐานข้อมูลของคุณ