เขียนเว็บ เดอะ ซีรีส์ ตอนที่ 27: สร้างฐานข้อมูล MySQL ด้วยภาษา SQL

Sattaya Metharakcheep
4 min readDec 20, 2020

--

ในตอนที่แล้วได้มีการอธิบายเกี่ยวกับฐานข้อมูลในเบื้องต้นแล้ว ซึ่งฐานข้อมูลที่จะใช้อธิบายในเขียนเว็บ เดอะ ซีรีส์ นี้ คือ 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

เปิด Apache และ MySQL บน XAMPP
เปิด Apache และ MySQL บน XAMPP
พิมพ์ localhost/phpmyadmin จะแสดงหน้าแรกของ phpMyAdmin บนเบราวเซอร์
พิมพ์ localhost/phpmyadmin จะแสดงหน้าแรกของ phpMyAdmin บนเบราวเซอร์

เมื่อเข้า phpMyAdmin แล้ว ให้คลิกที่เมนู “SQL” เพื่อเริ่มสร้างฐานข้อมูลด้วยภาษา SQL

คลิกที่เมนู SQL เพื่อเริ่มสร้างฐานข้อมูลด้วยภาษา SQL
คลิกที่เมนู SQL เพื่อเริ่มสร้างฐานข้อมูลด้วยภาษา SQL

เมื่อคลิกที่เมนู SQL แล้วจะมีช่อง “Run SQL query/queries” ที่สามารถพิมพ์โค้ด SQL เพื่อจัดการฐานข้อมูลได้

สามารถพิมพ์โค้ด SQL ลงในช่อง “Run SQL query/queries” เพื่อจัดการฐานข้อมูลได้
สามารถพิมพ์โค้ด SQL ลงในช่อง “Run SQL query/queries” เพื่อจัดการฐานข้อมูลได้

การสร้างฐานข้อมูล

การสร้างฐานข้อมูลด้วยภาษา SQL จะใช้คำสั่ง CREATE DATABASE โดยมีโครงสร้างคำสั่งดังนี้

CREATE DATABASE ชื่อฐานข้อมูล;

เริ่มสร้างฐานข้อมูลโดยตั้งชื่อฐานข้อมูลว่า test_db โดยพิมพ์คำสั่งลงในช่อง “Run SQL query/queries” ดังนี้

CREATE DATABASE test_db;
พิมพ์คำสั่งสร้างฐานข้อมูลลงในช่อง “Run SQL query/queries”
พิมพ์คำสั่งสร้างฐานข้อมูลลงในช่อง “Run SQL query/queries”

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

หลังจากคลิกปุ่ม “Go” ระบบจะแสดงข้อความว่าสร้างฐานข้อมูล test_db สำเร็จ
หลังจากคลิกปุ่ม “Go” ระบบจะแสดงข้อความว่าสร้างฐานข้อมูล test_db สำเร็จ

หรือสามารถตรวจสอบได้ว่าฐานข้อมูล test_db ถูกสร้างขึ้นเรียบร้อยแล้วโดยการคลิกที่เมนู “Databases” ก็จะพบฐานข้อมูล test_db อยู่ในรายการฐานข้อมูล (กรอบสีแดงตามภาพ)

ตรวจสอบว่าฐานข้อมูล test_db ถูกสร้างขึ้นเรียบร้อยแล้ว
ตรวจสอบว่าฐานข้อมูล 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;
พิมพ์คำสั่งสร้างฐานข้อมูลที่รองรับ UTF-8 ลงในช่อง “Run SQL query/queries”
พิมพ์คำสั่งสร้างฐานข้อมูลที่รองรับ UTF-8 ลงในช่อง “Run SQL query/queries”

คำอธิบาย:

  • CHARACTER SET เป็นคำสั่งที่ใช้ในการตั้งค่ารหัสอักขระ เช่น utf8, tis620, latin1 เป็นต้น
  • COLLATE เป็นคำสั่งที่ใช้ในการตั้งค่าประเภทของรหัสอักขระ เช่น utf8_unicode_ci, tis620_thai_ci, latin1_swedish_ci เป็นต้น

หลังจากพิมพ์คำสั่งเสร็จแล้วให้คลิกปุ่ม “Go” ระบบจะสร้างฐานข้อมูลที่มีชื่อว่า “test_db” ที่รองรับรหัสอักขระ UTF-8 แบบ utf8_unicode_ci

หลังจากคลิกปุ่ม “Go” ระบบจะแสดงข้อความว่าสร้างฐานข้อมูล test_db ที่รองรับ UTF-8 สำเร็จ
หลังจากคลิกปุ่ม “Go” ระบบจะแสดงข้อความว่าสร้างฐานข้อมูล test_db ที่รองรับ UTF-8 สำเร็จ

เมื่อคลิกที่เมนู “Databases” จะเห็นว่าฐานข้อมูล test_db นั้นได้รองรับ utf8_unicode_ci เรียบร้อยแล้ว (กรอบสีแดงตามภาพ)

ตรวจสอบว่าฐานข้อมูล test_db รองรับ UTF-8 หรือไม่
ตรวจสอบว่าฐานข้อมูล test_db รองรับ UTF-8 หรือไม่

การแก้ไขโครงสร้างฐานข้อมูล

การแก้ไขฐานข้อมูลจะใช้คำสั่ง ALTER DATABASE โดยมีโครงสร้างคำสั่งดังนี้

ALTER DATABASE ชื่อฐานข้อมูล ตามด้วยสิ่งที่ต้องการแก้ไข เช่น แก้ไขรหัสอักขระ เป็นต้น;

ตัวอย่างการแก้ไขข้อมูล คือ การแก้ไขรหัสอักขระ ให้พิมพ์โค้ดลงในช่อง “Run SQL query” ดังนี้

ALTER DATABASE test_db CHARACTER SET latin1 COLLATE latin1_swedish_ci;
พิมพ์คำสั่งแก้ไขฐานข้อมูลให้รองรับ latin1_swedish_ci ลงในช่อง “Run SQL query/queries”
พิมพ์คำสั่งแก้ไขฐานข้อมูลให้รองรับ latin1_swedish_ci ลงในช่อง “Run SQL query/queries”

หลังจากพิมพ์คำสั่งเสร็จแล้วให้คลิกปุ่ม “Go” ระบบจะแก้ไขฐานข้อมูล “test_db” โดยเปลี่ยนรหัสอักขระเป็น Latin1 แบบ latin1_swedish_ci

หลังจากคลิกปุ่ม “Go” ระบบจะแสดงข้อความว่าแก้ไขฐานข้อมูล test_db ให้รองรับ latin1_swedish_ci สำเร็จ
หลังจากคลิกปุ่ม “Go” ระบบจะแสดงข้อความว่าแก้ไขฐานข้อมูล test_db ให้รองรับ latin1_swedish_ci สำเร็จ

เมื่อคลิกที่เมนู “Databases” จะเห็นว่าฐานข้อมูล test_db นั้นได้เปลี่ยนมารองรับ latin1_swedish_ci เรียบร้อยแล้ว (กรอบสีแดงตามภาพ)

ตรวจสอบว่าฐานข้อมูล test_db เปลี่ยนมาเป็นรองรับ latin1_swedish_ci หรือไม่
ตรวจสอบว่าฐานข้อมูล test_db เปลี่ยนมาเป็นรองรับ latin1_swedish_ci หรือไม่

การลบฐานข้อมูล

การลบฐานข้อมูลจะใช้คำสั่ง DROP DATABASE โดยมีโครงสร้างคำสั่งดังนี้

DROP DATABASE ชื่อฐานข้อมูล;

ถ้าต้องการลบฐานข้อมูล test_db ให้พิมพ์โค้ดลงในช่อง “Run SQL query” ดังนี้

DROP DATABASE test_db;
พิมพ์คำสั่งลบฐานข้อมูลลงในช่อง “Run SQL query/queries”
พิมพ์คำสั่งลบฐานข้อมูลลงในช่อง “Run SQL query/queries”

หลังจากพิมพ์คำสั่งเสร็จแล้วให้คลิกปุ่ม “Go” ระบบจะลบฐานข้อมูล “test_db”

หลังจากคลิกปุ่ม “Go” ระบบจะแสดงข้อความว่าลบฐานข้อมูล 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 ใช้เป็นเงื่อนไขในการตรวจสอบก่อนที่จะสร้างฐานข้อมูลว่ามีฐานข้อมูลนี้อยู่หรือไม่

--

--

No responses yet