1.คำสั่ง CREATE
TABLE
CREATE TABLE phonebook (id
INT (4) NOT NULL
AUTO_INCREMENT, fname
VARCHAR (35) , lname VARCHAR (35) ,
email VARCHAR (50) ,
office VARCHAR (200) , province CHAR (2) ,
PRIMARY KEY(id),
UNIQUE(id), INDEX(id))
โดยทั่วไปขนาดของตารางข้อมูลหนึ่งๆ
จะมีขนาดไม่เกิน 2G หรือ 4G ขึ้นอยู่กับระบบปฏิบัติการ เราสามารถทำให้ประหยัดเนื้อที่ได้อีกโดยการบีบอัด
(PACK) ข้อมูลดัชนี ซึ่งสามารถให้บีบอัดโดยกำหนดค่า PACK_KEYS=1 การบีบอัดนี้จะทำให้การทำงานช้าลง แต่ก็ประหยัดเนื้อที่ขึ้น
และตามปกติถ้าผู้ใช้ไม่ได้กำหนดให้บีบอัด
ข้อมูลที่เป็นสตริงหรือตัวอักษรก็จะได้รับการบีบอัดข้อมูลอยู่แล้ว
สำหรับข้อมูลตัวเลข ค่าการทำงานปกติจะไม่รับการบีบอัด เว้นแต่กำหนดการบีบอัดด้วยการใช้
UNION จะใช้กรณีที่ต้องการรวมตารางข้อมูลหลายๆ
ตารางเข้าด้วยกันเป็นอันเดียว ซึ่งจะทำงานกับตารางประเภท MERGE เท่านั้น
2.คำสั่ง DROP
TABLE
DROP TABLE phonebook
เป็นคำสั่งเพื่อให้ลบตารางข้อมูลออกจากระบบ
สำหรับออปชัน RESTRICT และ CASCADE
ยังไม่สามารถงานได้ในปัจจุบัน
เนื่องจากเป็นความสามารถที่มีแผนจะรองรับในอนาคต สำหรับการใช้คำสั่ง DROP TABLE จะต้องให้ความระมัดระวังในการใช้งานเป็นอย่างยิ่ง
โดยเฉพาะการทำงานกับตารางข้อมูลประเภท nontransaction เพราะจะทำการ commit การทำงานโดยอัตโนมัติ
3.คำสั่ง DELETE
DELETE FROM phonebook
WHERE id=4
เป็นคำสั่งสำหรับลบข้อมูลจากตาราง
โดยสามารถกำหนดเงื่อนไขสำหรับการลบได้ ซึ่งถ้าไม่ได้ระบุเงื่อนไข
จะเป็นการลบข้อมูลทั้งหมดออกจากตาราง และถ้าอยู่ใน AUTOCOMMIT
mode (กรณีปกติทั่วไป) จะไม่สามารถทำการยกเลิกการลบครั้งนี้ได้
4.คำสั่ง TRUNCATE
TRUNCATE phonebook
เป็นคำสั่งที่ให้ผลเช่นเดียวกับ
DELETE FROM table_name แต่มีข้อแตกต่างดังนี้
- จะทำการดรอปตารางข้อมูลก่อน
แล้วทำการสร้างใหม่ ซึ่งจะให้ผลที่เร็วกว่าการลบตารางทั้งหมด
- การทำงานเป็น non-transaction
ไม่สามารถทำการยกเลิกได้
5.คำสั่ง SELECT
SELECT id, fname FROM
phonebook ORDER BY fname DESC
เป็นคำสั่งสำหรับการแสดงผล
หรือการดึงข้อมูลจากตาราง โดยสามารถกำหนดเงื่อนไข รูปแบบและวิธีการได้อย่างหลากหลาย
การดึงข้อมูลสามารถระบุว่าจะเลือกจากตารางเดียว หรือหลายตารางก็ได้
การใช้ LIMIT rows ก็จะช่วยกำหนดให้ทำการดึงข้อมูลจากตาราง
ได้ไม่เกินจำนวนแถว rows ที่ระบุ
การใช้คำสั่งคีย์เวิร์ดตามหลัง SELECT จะต้องใช้ให้ถูกต้อง
มีบางคีย์เวิร์ดที่ต้องใช้เรียงลำดับกัน เช่น
HAVING clause ต้องใช้ตามหลัง
GROUP BY clause และใช้ก่อน ORDER BY clause เป็นต้น
ตามปกติหากไม่ได้ระบุวิธีการจัดเรียงข้อมูล
ก็จะเป็นการเรียงจากน้อยไปมาก (Ascending) หรือ คีย์เวิร์ด ASC แต่ถ้าต้องการเรียงจากมากไปน้อย (Descending) ให้ใช้คีย์เวิร์ด
DESC
การใช้คีย์เวิร์ด HAVING จะใช้ในกรณีร่วมกับ GROUP BY ซึ่งก็เป็นการกำหนดเงื่อนไขในการดึงข้อมูล ด้วยคำสั่ง SELECT
SELECT id,fname FROM
phonebook GROUP BY fname HAVING id>2
6.คำสั่ง FLUSH
FLUSH TABLES phonebook
เป็นคำสั่งที่ใช้สำหรับการลบหน่วยความจำภายใน (Internal Cache) ที่ใช้งาน
ทั้งนี้การใช้คำสั่ง FLUSH
จะอนุญาตเฉพาะ user ที่มีสิทธิ์ (Privilege) เท่านั้น Flush_option สามารถระบุได้ดังนี้
-HOSTS ทำการล้าง hose cache table เพื่อปรับปรุงข้อมูลของ host หรือ client ที่คอนเน็กเข้าใช้งาน ซึ่งอาจมีการเปลี่ยนแปลง IP address หรืออื่นๆ โดยเมื่อทำการ flush เรียบร้อยแล้ว
ก็จะอนุญาตให้ host นั้นๆ ทำการคอนเน็กเข้ามาใหม่อีกครั้งหนึ่ง
-LOGS ปิดและเปิด log files ใหม่
-PRIVILEGES ทำการ reload สิทธิ์ต่างๆ
ของ user จาก grant tables ของ MySQL
Server
-TABLES ปิด tables ทั้งหมด
หากตารางใดยังถูกเปิดอยู่ ก็จะถูก force ให้ปิดลง
7.คำสั่ง SHOW
SHOW DATABASES
เป็นคำสั่งสำหรับแสดงรายละเอียด (Information) ของ databases,
tables, columns หรือ สถานะต่างๆของ Server แสดงรายละเอียดของ
Databases, Tables, Columns และ Indexes
SHOW
DATABASES แสดงรายชื่อ databases ทั้งหมดในระบบฐานข้อมูล
SHOW
TABLES แสดงรายชื่อ tables ทั้งหมดของ current
database
SHOW
OPEN TABLES แสดงรายชื่อ tables ที่ถูกเปิดอยู่ในปัจจุบัน
SHOW
COLUMNS แสดงรายละเอียดฟิลด์ทั้งหมดใน table นั้น (ให้ผลลัพธ์เช่นเดียวกับคำสั่ง DESCRIBE)
SHOW
FIELDS ให้ผลลัพธ์เช่นเดียวกับ
SHOW COLUMNS
SHOW
INDEX แสดงรายละเอียดว่ามีดัชนีอะไรบ้างสำหรับ table นั้นๆ
SHOW
KEYS ให้ผลลัพธ์เช่นเดียวกับ
SHOW INDEX
8.คำสั่ง GRANT และ REVOKE
GRANT ALL PRIVILEGES ON
demo TO user1@localhost WITH GRANT OPTION
REVOKE ALL PRIVILEGES ON
demo FROM user1@localhost
- คำสั่ง GRANT เป็นคำสั่งสำหรับการกำหนดสิทธิ์หรือความสามารถใดๆ
ให้กับ user
- คำสั่ง REVOKE หรือคำสั่งที่ตรงกันข้ามกับ GRANT
คือเป็นการถอนหรือยกเลิกสิทธิ์ใดๆ จาก user
การใช้คำสั่ง GRANT หรือ REVOKE จะอนุญาตเฉพาะผู้บริหารระบบในการกำหนดสิทธิ์ต่างๆ สำหรับผู้ใช้
MySQL จะแบ่งสิทธิ์ (Privilege)
เป็น 4 ระดับ คือ
1. Global level
ระดับบนสุด ครอบคลุมทุก database รายละเอียดสำหรับสิทธิ์ของระดับนี้จะถูกเก็บไว้ในตาราง
mysql.user
2. Database level
ระดับ database ครอบคลุมเฉพาะใน database อันใดอันหนึ่ง เช่น ความสามารถในการกระทำใดๆ
ภายใน
database นั้นๆ
รายละเอียดสำหรับสิทธิ์ของระดับนี้ จะถูกเก็บไว้ในตาราง mysql.db และ mysql.host
3. Table level
ระดับ table ครอบคลุมเฉพาะภายในตารางนั้นๆ เช่น
ความสามารถในการกระทำกับ table นั้นๆ
สามารถทำการ
select, insert, delete, update ได้หรือไม่ เป็นต้น รายละเอียดสำหรับสิทธิ์ของระดับนี้ จะถูกเก็บอยู่ในตาราง
mysql.tables_priv
4. Column level
ระดับ column ครอบคลุมเฉพาะฟิลด์ใดฟิลด์หนึ่งภายในตารางข้อมูล
รายละเอียดสำหรับสิทธิ์ของระดับนี้ จะถูกเก็บอยู่ในตาราง mysql.columns_priv
9.คำสั่ง INSERT
INSERT INTO phonebook (id,
fname, lname, email, office, province)
VALUES (6, 'sineenat',
'phradmali', 'sineenat@health.moph.go.th', 'ศทส.', '12')
เป็นคำสั่งสำหรับการเพิ่มแถวข้อมูล
หรือระเบียนใหม่เข้าตารางข้อมูล
10.คำสั่ง ALTER TABLE
ALTER TABLE phonebook ADD
tel VARCHAR(30)
ALTER TABLE เป็นคำสั่งสำหรับการปรับเปลี่ยนแก้ไขโครงสร้างของตารางข้อมูล
เช่น การเพิ่ม-ลบฟิลด์, การสร้าง-ลบดัชนี, การเปลี่ยนประเภทข้อมูลของฟิลด์, การเปลี่ยนชื่อฟิลด์
เป็นต้น