- 1 1. บทนำ
- 2 2. การดำเนินงานพื้นฐานของ MySQL (เหมาะสำหรับผู้เริ่มต้น)
- 3 3. การดำเนินการฐานข้อมูล
- 4 4. การดำเนินการตาราง
- 4.1 4.1 Creating a Table
- 4.2 4.1 การสร้างตาราง
- 4.3 4.2 Checking Table Structure
- 4.4 4.2 การตรวจสอบโครงสร้างตาราง
- 4.5 4.3 Listing Tables
- 4.6 4.3 การแสดงรายการตาราง
- 4.7 4.4 Deleting a Table
- 4.8 4.4 การลบตาราง
- 4.9 4.5 Resetting Table Data (Delete All Rows)
- 4.10 4.5 รีเซ็ตข้อมูลตาราง (ลบแถวทั้งหมด)
- 4.11 4.6 Common Errors and Fixes
- 4.12 4.6 ข้อผิดพลาดทั่วไปและวิธีแก้
- 4.13 4.7 สรุป
1. บทนำ
MySQL เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพ่นซอร์สที่ได้รับความนิยมอย่างกว้างขวางในหมู่ระบบจัดการฐานข้อมูล (DBMS) ต่าง ๆ โดยเฉพาะอย่างยิ่งในแอปพลิเคชันเว็บและระบบองค์กร ในบทความนี้ เราจะอธิบายคำสั่ง MySQL ที่สำคัญอย่างละเอียดและจัดโครงสร้างเนื้อหาเพื่อให้ผู้เริ่มต้นจนถึงระดับกลางสามารถเรียนรู้ได้อย่างราบรื่น
1.1 MySQL คืออะไร?
MySQL คือซอฟต์แวร์ที่ใช้จัดการฐานข้อมูลเชิงสัมพันธ์ (RDB) ข้อมูลจะถูกเก็บในตารางและคุณจะจัดการข้อมูลโดยใช้ SQL (Structured Query Language) MySQL มีลักษณะดังต่อไปนี้
- โอเพ่นซอร์ส และฟรีสำหรับทุกคนที่ต้องการใช้
- เร็วและเบา ในการทำงาน
- เข้ากันได้กับหลายภาษาโปรแกรม (เช่น PHP, Python, และ Java)
- เหมาะสำหรับการดำเนินงานฐานข้อมูลขนาดใหญ่
1.2 ประโยชน์ของการเรียนรู้คำสั่ง MySQL
เพื่อใช้ MySQL อย่างมีประสิทธิภาพ การเข้าใจคำสั่งพื้นฐานเป็นสิ่งสำคัญ ประโยชน์หลักได้แก่
- การจัดการข้อมูลที่มีประสิทธิภาพมากขึ้น : การเชี่ยวชาญคำสั่ง SQL ทำให้คุณสามารถดึงข้อมูล, ปรับปรุง, และลบข้อมูลได้อย่างรวดเร็ว
- การอัตโนมัติของกระบวนการทำงาน : การใช้สคริปต์ช่วยให้คุณอัตโนมัติการดำเนินงานฐานข้อมูล
- การจัดการข้อผิดพลาดที่ราบรื่น : เมื่อเกิดปัญหา คุณสามารถแก้ไขได้ด้วยคำสั่ง SQL ที่เหมาะสม
1.3 สิ่งที่คุณจะได้เรียนในบทความนี้
บทความนี้อธิบายหัวข้อต่อไปนี้อย่างละเอียด
- การดำเนินงานพื้นฐานของ MySQL (การเริ่มต้น, การเชื่อมต่อ, และการดำเนินงานฐานข้อมูล)
- การเพิ่ม, ดึง, ปรับปรุง, และลบข้อมูล (การดำเนินงาน CRUD)
- การจัดการผู้ใช้และการตั้งค่าสิทธิ์
- คำสั่งที่เป็นประโยชน์และการแก้ไขปัญหา
ต่อไปเราจะไปทีละส่วนตามลำดับ เริ่มต้นด้วยการดำเนินงานพื้นฐานของ MySQL
2. การดำเนินงานพื้นฐานของ MySQL (เหมาะสำหรับผู้เริ่มต้น)
2.1 การเริ่มต้นและการเชื่อมต่อกับ MySQL
2.1.1 การเริ่มต้น MySQL
เนื่องจาก MySQL ทำงานเป็นโปรแกรมเซิร์ฟเวอร์ คุณต้องเริ่มเซิร์ฟเวอร์ก่อน วิธีการเริ่มต้นจะแตกต่างกันตามระบบปฏิบัติการ
การเริ่มต้นบน Linux / macOS
บน Linux และ macOS คุณสามารถเริ่ม MySQL ด้วยคำสั่ง systemctl
sudo systemctl start mysql
ตรวจสอบว่า MySQL กำลังทำงานหรือไม่
sudo systemctl status mysql
หากคุณเห็น “active (running)” หมายความว่า MySQL ทำงานปกติ
การเริ่มต้นบน Windows
บน Windows MySQL มักทำงานเป็นบริการ ดังนั้นคุณสามารถใช้คำสั่ง net start
net start mysql
หรือ หากคุณใช้ XAMPP ให้เปิด XAMPP Control Panel แล้วคลิก “Start” สำหรับ “MySQL”.
2.1.2 การเชื่อมต่อกับ MySQL
เพื่อเชื่อมต่อกับ MySQL ให้ใช้คำสั่ง mysql คำสั่งเชื่อมต่อพื้นฐานมีดังนี้
mysql -u username -p
เชื่อมต่อในฐานะผู้ใช้ root
โดยค่าเริ่มต้น ผู้ใช้ root ถูกตั้งค่าเป็นผู้ดูแลระบบ คุณสามารถเชื่อมต่อด้วยคำสั่งต่อไปนี้
mysql -u root -p
หลังจากกด Enter ระบบจะขอให้คุณใส่รหัสผ่าน หากใส่รหัสผ่านที่ถูกต้อง คุณจะเข้าสู่ระบบ MySQL ได้
เชื่อมต่อไปยังโฮสต์เฉพาะ
เพื่อเชื่อมต่อไปยังเซิร์ฟเวอร์ MySQL ระยะไกล ให้ใช้ตัวเลือก -h
mysql -h hostname -u username -p
ตัวอย่างเช่น การเชื่อมต่อไปยังเซิร์ฟเวอร์ MySQL ที่ 192.168.1.100 ให้เขียนว่า
mysql -h 192.168.1.100 -u root -p
เชื่อมต่อโดยระบุหมายเลขพอร์ต
พอร์ต MySQL เริ่มต้นคือ 3306 หากพอร์ตถูกเปลี่ยนแปลง คุณสามารถระบุได้ด้วยตัวเลือก -P
mysql -h 192.168.1.100 -P 3307 -u root -p
2.2 คำสั่งพื้นฐานของ MySQL
เมื่อคุณเชื่อมต่อกับ MySQL แล้ว ลองรันคำสั่งพื้นฐานบางอย่าง
2.2.1 ตรวจสอบเวอร์ชันของ MySQL
เพื่อดูเวอร์ชันของ MySQL ที่คุณกำลังใช้อยู่ ให้รันคำสั่งต่อไปนี้
SELECT VERSION();
2.2.2 ตรวจสอบฐานข้อมูลปัจจุบัน
เพื่อดูว่าฐานข้อมูลใดถูกเลือกอยู่ในขณะนี้ ให้รัน
SELECT DATABASE();
หากไม่มีฐานข้อมูลถูกเลือก จะคืนค่า NULL
2.2.3 แสดงรายการฐานข้อมูลที่มีอยู่
เพื่อแสดงรายการฐานข้อมูลที่มีใน MySQL ให้ใช้
SHOW DATABASES;
2.3 ข้อผิดพลาดทั่วไปและการแก้ไข
2.3.1 ข้อผิดพลาด “Access denied”
ตัวอย่างข้อผิดพลาด:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
วิธีแก้ไข:
- ตรวจสอบว่ารหัสผ่านถูกต้อง
- ตรวจสอบและรีเซ็ตสิทธิ์
rootprivilegesALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_PASSWORD'; FLUSH PRIVILEGES;
2.3.2 “ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL บน ‘localhost’” ข้อผิดพลาด
ตัวอย่างข้อผิดพลาด:
ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (10061)
วิธีแก้ไข:
- ตรวจสอบว่า MySQL กำลังทำงานหรือไม่ (
systemctl status mysql) - รีสตาร์ท MySQL
sudo systemctl restart mysql
2.4 สรุป
ในส่วนนี้ เราได้อธิบายวิธีการเริ่มต้น MySQL และเชื่อมต่อกับมัน.
3. การดำเนินการฐานข้อมูล
ใน MySQL คุณสร้าง ฐานข้อมูล เพื่อจัดการข้อมูล และจากนั้นจัดระเบียบข้อมูลโดยใส่ ตาราง เข้าไปภายในมัน. ในส่วนนี้ เราจะอธิบายการดำเนินการพื้นฐาน เช่น การสร้าง, การเลือก, การแสดงรายการ, และการลบฐานข้อมูล อย่างละเอียด.
3.1 การสร้างฐานข้อมูล
เพื่อสร้างฐานข้อมูลใน MySQL ให้ใช้คำสั่ง CREATE DATABASE.
3.1.1 สร้างฐานข้อมูลพื้นฐาน
หากคุณรันคำสั่ง SQL ด้านล่างนี้ คุณสามารถสร้างฐานข้อมูลใหม่ชื่อ my_database.
CREATE DATABASE my_database;
ข้อความเมื่อการสร้างสำเร็จ
Query OK, 1 row affected (0.01 sec)
3.1.2 เมื่อคุณพยายามสร้างฐานข้อมูลที่มีอยู่แล้ว
หากฐานข้อมูลมีอยู่แล้ว คุณจะเห็นข้อผิดพลาดเช่นต่อไปนี้:
ERROR 1007 (HY000): Can't create database 'my_database'; database exists
เพื่อป้องกันข้อผิดพลาดนี้ การเพิ่มตัวเลือก IF NOT EXISTS จะเป็นประโยชน์.
CREATE DATABASE IF NOT EXISTS my_database;
เมื่อคุณรันคำสั่งนี้ ฐานข้อมูลจะถูกสร้างเฉพาะเมื่อยังไม่มีอยู่.
3.2 การแสดงรายการฐานข้อมูล
เพื่อตรวจสอบว่ามีฐานข้อมูลใดบ้างบนเซิร์ฟเวอร์ MySQL ปัจจุบัน ให้ใช้คำสั่ง SHOW DATABASES.
SHOW DATABASES;
ตัวอย่างผลลัพธ์:
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_database |
| mysql |
| performance_schema |
| sys |
+--------------------+
หมายเหตุ: ฐานข้อมูลระบบเช่น mysql และ information_schema จำเป็นสำหรับการดูแล MySQL.
3.3 การเลือกฐานข้อมูล
ใน MySQL คุณต้องเลือกฐานข้อมูลที่ต้องการใช้ เพื่อระบุฐานข้อมูล ให้รันคำสั่ง USE.
USE my_database;
ข้อความเมื่อสำเร็จ
Database changed
เพื่อยืนยันว่าฐานข้อมูลใดถูกเลือกอยู่ในขณะนี้ ให้ใช้คำสั่งต่อไปนี้:
SELECT DATABASE();
ตัวอย่างผลลัพธ์:
+------------+
| DATABASE() |
+------------+
| my_database |
+------------+
3.4 การลบฐานข้อมูล
เพื่อลบฐานข้อมูลที่คุณไม่ต้องการใช้อีกต่อไป ให้ใช้คำสั่ง DROP DATABASE.
DROP DATABASE my_database;
3.4.1 หมายเหตุสำคัญก่อนการลบ
- ระวัง: การลบฐานข้อมูลจะทำให้ข้อมูลทั้งหมดหายไป!
- เพื่อหลีกเลี่ยงข้อผิดพลาดโดยไม่ได้ตั้งใจ คุณสามารถเพิ่ม
IF EXISTSได้เช่นกัน.DROP DATABASE IF EXISTS my_database;
คำสั่งนี้จะเสร็จสิ้นโดยไม่มีข้อผิดพลาดแม้ว่า my_database จะไม่มีอยู่.
3.5 ข้อผิดพลาดทั่วไปและวิธีแก้ไข
3.5.1 ข้อผิดพลาด “Access denied for user”
ตัวอย่างข้อผิดพลาด:
ERROR 1044 (42000): Access denied for user 'user_name'@'localhost' to database 'my_database'
วิธีแก้ไข
- ให้สิทธิ์โดยใช้คำสั่ง
GRANTGRANT ALL PRIVILEGES ON my_database.* TO 'user_name'@'localhost'; FLUSH PRIVILEGES;
3.5.2 ข้อผิดพลาด “Can’t drop database”
ตัวอย่างข้อผิดพลาด:
ERROR 1010 (HY000): Error dropping database (can't rmdir './my_database', errno: 39)
วิธีแก้ไข
- รีสตาร์ท MySQL
sudo systemctl restart mysql
- ลบตารางทั้งหมดใน
my_databaseก่อน แล้วจึงรันDROP DATABASE.
3.6 สรุป
ในส่วนนี้ คุณได้เรียนรู้วิธีการสร้าง, เลือก, แสดงรายการ, และลบฐานข้อมูล.
4. การดำเนินการตาราง
After creating a database, you need to create tables inside it to organize data. A table is like a grid for storing data, consisting of columns and rows (records).
หลังจากสร้างฐานข้อมูลแล้ว คุณต้องสร้าง ตาราง ภายในเพื่อจัดระเบียบข้อมูล ตารางเป็นเหมือนกริดสำหรับเก็บข้อมูล ประกอบด้วยคอลัมน์และแถว (บันทึก)
In this section, we will explain basic operations such as creating, checking, listing, and deleting tables in detail.
ในส่วนนี้ เราจะอธิบายการดำเนินการพื้นฐานเช่น การสร้าง, การตรวจสอบ, การแสดงรายการ, และการลบตาราง อย่างละเอียด
4.1 Creating a Table
4.1 การสร้างตาราง
To create a table, use the CREATE TABLE command. If you run the following SQL, it creates a table named users.
เพื่อสร้างตาราง ใช้คำสั่ง CREATE TABLE หากคุณรัน SQL ด้านล่างนี้ จะสร้างตารางชื่อ users
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4.1.1 Explanation of each element when creating a table
4.1.1 คำอธิบายของแต่ละองค์ประกอบเมื่อสร้างตาราง
id INT AUTO_INCREMENT PRIMARY KEYคอลัมน์
idเป็นจำนวนเต็ม (INT) ที่เพิ่มค่าอัตโนมัติ (AUTO_INCREMENT) และตั้งเป็นคีย์หลัก (PRIMARY KEY).name VARCHAR(50) NOT NULLคอลัมน์
nameเป็นสตริง (VARCHAR) ความยาวสูงสุด 50 ตัวอักษรและจำเป็นต้องมีค่า (NOT NULL).email VARCHAR(100) UNIQUE NOT NULLคอลัมน์
emailเป็นสตริงความยาวสูงสุด 100 ตัวอักษร และข้อจำกัดUNIQUEป้องกันอีเมลซ้ำ.created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP- คอลัมน์
created_atตั้งค่าเวลา/วันที่ปัจจุบันโดยอัตโนมัติเป็นค่าเริ่มต้น (DEFAULT CURRENT_TIMESTAMP).
Message when successful
ข้อความเมื่อสำเร็จ
Query OK, 0 rows affected (0.02 sec)
4.2 Checking Table Structure
4.2 การตรวจสอบโครงสร้างตาราง
To check the structure of a table you created, use DESC or SHOW COLUMNS.
เพื่อตรวจสอบโครงสร้างของตารางที่คุณสร้าง ใช้ DESC หรือ SHOW COLUMNS.
DESC users;
Or หรือ
SHOW COLUMNS FROM users;
Example output: ตัวอย่างผลลัพธ์:
+------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| email | varchar(100) | NO | UNI | NULL | |
| created_at | timestamp | YES | | CURRENT_TIMESTAMP | |
+------------+--------------+------+-----+-------------------+----------------+
4.3 Listing Tables
4.3 การแสดงรายการตาราง
To list the tables that exist in the current database, run the SHOW TABLES command.
เพื่อแสดงรายการตารางที่มีอยู่ในฐานข้อมูลปัจจุบัน ให้รันคำสั่ง SHOW TABLES.
SHOW TABLES;
Example output: ตัวอย่างผลลัพธ์:
+------------------+
| Tables_in_mydb |
+------------------+
| users |
| products |
| orders |
+------------------+
4.4 Deleting a Table
4.4 การลบตาราง
To delete a table you no longer need, use the DROP TABLE command.
เพื่อลบตารางที่คุณไม่ต้องการใช้อีกต่อไป ใช้คำสั่ง DROP TABLE.
DROP TABLE users;
4.4.1 Important notes when deleting a table
4.4.1 หมายเหตุสำคัญเมื่อทำการลบตาราง
- Be careful: deleting a table permanently removes the data!
ระวัง: การลบตารางจะทำให้ข้อมูลหายไปอย่างถาวร!
To avoid errors when deleting, add
IF EXISTS.- เพื่อหลีกเลี่ยงข้อผิดพลาดเมื่อทำการลบ ให้เพิ่ม
IF EXISTS.DROP TABLE IF EXISTS users;
Message when successful
ข้อความเมื่อสำเร็จ
Query OK, 0 rows affected (0.01 sec)
4.5 Resetting Table Data (Delete All Rows)
4.5 รีเซ็ตข้อมูลตาราง (ลบแถวทั้งหมด)
If you want to keep the table structure but delete only the data inside, use TRUNCATE TABLE.
หากคุณต้องการเก็บโครงสร้างตารางไว้แต่ลบข้อมูลภายในเท่านั้น ใช้ TRUNCATE TABLE.
TRUNCATE TABLE users;
Difference from DROP TABLE
ความแตกต่างจาก DROP TABLE
DROP TABLEdeletes the table itself.DROP TABLEลบตารางเองทั้งหมด.TRUNCATE TABLEdeletes only the data and keeps the table structure.TRUNCATE TABLEลบเฉพาะข้อมูลและเก็บโครงสร้างตารางไว้.
4.6 Common Errors and Fixes
4.6 ข้อผิดพลาดทั่วไปและวิธีแก้
4.6.1 “Table already exists” error
4.6.1 ข้อผิดพลาด “Table already exists”
Example error: ตัวอย่างข้อผิดพลาด:
ERROR 1050 (42S01): Table 'users' already exists
How to fix
วิธีแก้ไข
- Check existing tables
- ตรวจสอบตารางที่มีอยู่
SHOW TABLES;
- Create the table with
IF NOT EXISTS - สร้างตารางด้วย
IF NOT EXISTSCREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
4.6.2 “Unknown table” error
4.6.2 ข้อผิดพลาด “Unknown table”
Example error: ตัวอย่างข้อผิดพลาด:
ERROR 1051 (42S02): Unknown table 'users'
How to fix
วิธีแก้ไข
- ตรวจสอบว่าตารางมีอยู่หรือไม่โดยใช้
SHOW TABLES; - หากไม่มี ให้เพิ่ม
IF EXISTSDROP TABLE IF EXISTS users;
4.7 สรุป
ในส่วนนี้ เราได้ครอบคลุมการดำเนินการพื้นฐานของตาราง MySQL: การสร้าง, การตรวจสอบ, และการลบตาราง.


