เขียนเว็บ เดอะ ซีรีส์ ตอนที่ 27: สร้างฐานข้อมูล MySQL ด้วยภาษา SQL
ในตอนที่แล้วได้มีการอธิบายเกี่ยวกับฐานข้อมูลในเบื้องต้นแล้ว ซึ่งฐานข้อมูลที่จะใช้อธิบายในเขียนเว็บ เดอะ ซีรีส์ นี้ คือ MySQL/MariaDB ซึ่งต้องใช้ภาษา SQL (Structured Query Language) ในการเขียนโปรแกรมเพื่อจัดการฐานข้อมูลให้เป็นระบบ
หมายเหตุ:
ภาษา SQL สามารถใช้ร่วมกันได้กับฐานข้อมูลหลากหลายยี่ห้อ ไม่ว่าจะเป็น MySQL Oracle หรือ Microsoft SQL Server โดยทั่วไปคำสั่งต่าง ๆ ของภาษา SQL จะใช้เหมือนกัน แต่อาจจะมีบางคำสั่งที่แตกต่างกันขึ้นอยู่กับยี่ห้อ (และเวอร์ชัน) ของฐานข้อมูล
การใช้งาน MySQL จะต้องเปิดซอฟต์แวร์ XAMPP เพื่อใช้งานฐานข้อมูล (ดู วิธีการติดตั้งและการใช้งาน XAMPP บน Windows)
ให้คลิก “Start” ที่ Apache และ MySQL บน XAMPP Control Panel จากนั้นเปิดเบราวเซอร์แล้วพิมพ์ลงในช่องกรอก URL ว่า “localhost/phpmyadmin” เพื่อเปิดหน้าเว็บ phpMyAdmin
เมื่อเข้า phpMyAdmin แล้ว ให้คลิกที่เมนู “SQL” เพื่อเริ่มสร้างฐานข้อมูลด้วยภาษา SQL
เมื่อคลิกที่เมนู SQL แล้วจะมีช่อง “Run SQL query/queries” ที่สามารถพิมพ์โค้ด SQL เพื่อจัดการฐานข้อมูลได้
การสร้างฐานข้อมูล
การสร้างฐานข้อมูลด้วยภาษา SQL จะใช้คำสั่ง CREATE DATABASE โดยมีโครงสร้างคำสั่งดังนี้
CREATE DATABASE ชื่อฐานข้อมูล;
เริ่มสร้างฐานข้อมูลโดยตั้งชื่อฐานข้อมูลว่า test_db โดยพิมพ์คำสั่งลงในช่อง “Run SQL query/queries” ดังนี้
CREATE DATABASE test_db;
เมื่อพิมพ์คำสั่งเสร็จแล้วให้คลิกปุ่ม “Go” เพื่อให้คำสั่ง SQL ทำงาน ระบบจะสร้างฐานข้อมูลที่มีชื่อว่า “test_db” โดยมีการแจ้งเตือนว่าคำสั่งนี้ทำงานสำเร็จ (มีคำอธิบายเป็นพื้นหลังสีเขียวพร้อมเครื่องหมายถูก) และจะพบว่าฐานข้อมูล test_db ได้ถูกสร้างขึ้นมาเรียบร้อยแล้ว (กรอบสีแดงตามภาพ)
หรือสามารถตรวจสอบได้ว่าฐานข้อมูล test_db ถูกสร้างขึ้นเรียบร้อยแล้วโดยการคลิกที่เมนู “Databases” ก็จะพบฐานข้อมูล test_db อยู่ในรายการฐานข้อมูล (กรอบสีแดงตามภาพ)
หมายเหตุ:
- การพิมพ์คำสั่งของภาษา SQL ใช้ตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ก็ได้
- เมื่อจบคำสั่งของ SQL ไม่จำเป็นต้องพิมพ์สัญลักษณ์ Semicolon (;)ต่อท้าย ยกเว้นถ้ามีการพิมพ์คำสั่งหลายคำสั่ง ต้องพิมพ์สัญลักษณ์ Semicolon ต่อท้าย
การตั้งค่าฐานข้อมูลให้รองรับ UTF-8
ในการสร้างฐานข้อมูลควรจะทำให้ฐานข้อมูลรองรับรหัสชุดอักขระ UTF-8 เพื่อรองรับข้อมูลต่าง ๆ ได้ทุกภาษา (รวมทั้งภาษาไทย)
ถ้าต้องการสร้างฐานข้อมูลที่รองรับ UTF-8 ให้พิมพ์คำสั่ง SQL ลงในช่อง “Run SQL query” ดังนี้
CREATE DATABASE test_db CHARACTER SET utf8 COLLATE utf8_unicode_ci;
คำอธิบาย:
- CHARACTER SET เป็นคำสั่งที่ใช้ในการตั้งค่ารหัสอักขระ เช่น utf8, tis620, latin1 เป็นต้น
- COLLATE เป็นคำสั่งที่ใช้ในการตั้งค่าประเภทของรหัสอักขระ เช่น utf8_unicode_ci, tis620_thai_ci, latin1_swedish_ci เป็นต้น
หลังจากพิมพ์คำสั่งเสร็จแล้วให้คลิกปุ่ม “Go” ระบบจะสร้างฐานข้อมูลที่มีชื่อว่า “test_db” ที่รองรับรหัสอักขระ UTF-8 แบบ utf8_unicode_ci
เมื่อคลิกที่เมนู “Databases” จะเห็นว่าฐานข้อมูล test_db นั้นได้รองรับ utf8_unicode_ci เรียบร้อยแล้ว (กรอบสีแดงตามภาพ)
การแก้ไขโครงสร้างฐานข้อมูล
การแก้ไขฐานข้อมูลจะใช้คำสั่ง ALTER DATABASE โดยมีโครงสร้างคำสั่งดังนี้
ALTER DATABASE ชื่อฐานข้อมูล ตามด้วยสิ่งที่ต้องการแก้ไข เช่น แก้ไขรหัสอักขระ เป็นต้น;
ตัวอย่างการแก้ไขข้อมูล คือ การแก้ไขรหัสอักขระ ให้พิมพ์โค้ดลงในช่อง “Run SQL query” ดังนี้
ALTER DATABASE test_db CHARACTER SET latin1 COLLATE latin1_swedish_ci;
หลังจากพิมพ์คำสั่งเสร็จแล้วให้คลิกปุ่ม “Go” ระบบจะแก้ไขฐานข้อมูล “test_db” โดยเปลี่ยนรหัสอักขระเป็น Latin1 แบบ latin1_swedish_ci
เมื่อคลิกที่เมนู “Databases” จะเห็นว่าฐานข้อมูล test_db นั้นได้เปลี่ยนมารองรับ latin1_swedish_ci เรียบร้อยแล้ว (กรอบสีแดงตามภาพ)
การลบฐานข้อมูล
การลบฐานข้อมูลจะใช้คำสั่ง DROP DATABASE โดยมีโครงสร้างคำสั่งดังนี้
DROP DATABASE ชื่อฐานข้อมูล;
ถ้าต้องการลบฐานข้อมูล test_db ให้พิมพ์โค้ดลงในช่อง “Run SQL query” ดังนี้
DROP DATABASE test_db;
หลังจากพิมพ์คำสั่งเสร็จแล้วให้คลิกปุ่ม “Go” ระบบจะลบฐานข้อมูล “test_db”
เมื่อคลิกที่เมนู “Databases” จะเห็นว่าฐานข้อมูล test_db นั้นได้ถูกลบออกจากรายการฐานข้อมูลไปเรียบร้อยแล้ว
IF NOT EXISTS
คำว่า “IF NOT EXISTS” จะใช้เป็นเงื่อนไขในการตรวจสอบว่ามีฐานข้อมูลนี้อยู่หรือไม่
ถ้าพิมพ์คำสั่งภาษา SQL ตามตัวอย่างด้านล่างนี้
CREATE DATABASE IF NOT EXISTS test_db;
ระบบจะตรวจสอบก่อนว่ามีฐานข้อมูลชื่อ test_db อยู่ในระบบหรือไม่ ถ้าไม่มีระบบจะทำการสร้างฐานข้อมูลชื่อ test_db ขึ้นมาให้
จัดการฐานข้อมูลมากกว่า 1 ฐานข้อมูล
การสร้าง ลบ หรือแก้ไขฐานข้อมูลในภาษา SQL สามารถดำเนินการได้มากกว่า 1 ฐานข้อมูล
ตัวอย่างโค้ด SQL ที่สามารถดำเนินการได้มากกว่า 1 ฐานข้อมูลมีดังนี้
สร้างฐานข้อมูล:
CREATE DATABASE test_db01;
CREATE DATABASE test_db02 CHARACTER SET tis620 COLLATE tis620_thai_ci;
แก้ไขฐานข้อมูล:
ALTER DATABASE test_db01 CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER DATABASE test_db02 CHARACTER SET latin1 COLLATE latin1_swedish_ci;
ลบฐานข้อมูล:
DROP DATABASE test_db01;
DROP DATABASE test_db02;
ข้อสังเกต:
- เมื่อสร้างฐานข้อมูลฐานแรกด้วยคำสั่ง CREATE DATABASE แล้ว ถ้าต้องการสร้างฐานข้อมูลฐานที่ 2 จะต้องพิมพ์สัญลักษณ์ Semicolon ต่อท้ายคำสั่งแรกก่อนจึงจะพิมพ์คำสั่ง CREATE DATABASE ฐานข้อมูลฐานที่ 2 ได้
- เช่นเดียวกันกับการลบ หรือแก้ไขฐานข้อมูล ถ้าต้องการลบ แก้ไขฐานข้อมูลมากกว่า 1 ฐานข้อมูล จะต้องคั่นคำสั่งด้วยสัญลักษณ์ Semicolon เสมอ
สรุป
- phpMyAdmin เป็นเครื่องมือที่ช่วยในการจัดการฐานข้อมูล และยังสามารถเขียนโปรแกรมด้วยภาษา SQL เพื่อช่วยจัดการต่าง ๆ ในฐานข้อมูล MySQL ได้
- การสร้างฐานข้อมูลด้วยภาษา SQL จะใช้คำสั่ง CREATE DATABASE
- สามารถกำหนดให้ฐานข้อมูลรองรับอักขระต่าง ๆ ได้โดยใช้คำสั่ง CHARACTER SET เพื่อกำหนดรหัสอักขระ และ COLLATE เพื่อกำหนดประเภทของรหัสอักขระ
- ถ้าต้องการแก้ไขโครสร้างของฐานข้อมูลให้ใช้คำสั่ง ALTER DATABASE
- ถ้าต้องการลบฐานข้อมูลให้ใช้คำสั่ง DROP DATABASE
- เราสามารถสร้าง ลบ หรือแก้ไขฐานข้อมูลได้มากกว่า 1 ฐานข้อมูล
- ถ้าต้องการพิมพ์คำสั่งจากภาษา SQL มากกว่า 1 คำสั่ง จะต้องคั่นด้วยสัญลักษณ์ Semicolon (;) ก่อนจะพิมพ์คำสั่งต่อไปเสมอ
- IF NOT EXISTS ใช้เป็นเงื่อนไขในการตรวจสอบก่อนที่จะสร้างฐานข้อมูลว่ามีฐานข้อมูลนี้อยู่หรือไม่