พาเล่น phpmyadmin คุยกับ MySql
รู้จักกับ Database และ table กันก่อน
องค์ประกอบของ Database จะประกอบไปด้วย 2 อย่างคือ
- Database ก้อนไหน
- Table (หรือตารางในภาษาไทย) ใน Database นี้มีอะไรบ้าง
ปกติตอนทำการสร้าง Database แบบ Relational database อย่าง MySQL เราต้องกำหนด spec ของทุก Table เอาไว้สำหรับการเก็บข้อมูล
เช่น ตามภาพด้านล่างนี้ นี่คือภาพของ Database 1 ก้อน ที่ประกอบไปด้วย 7 tables จะขอยกตัวอย่างจาก table ชื่อ products
table product นั้นจะเก็บทั้งหมด 7 columns คือ
- id (สำหรับเป็น Primary key หลัก)
- name (ชื่อสินค้า)
- merchant_id (เป็น Foreign key สำหรับเก็บคนขาย)
- price (ราคา)
- status (สถานะสินค้า)
- created_at (วันที่สร้าง)
- category_id (เป็น Foreign key ส ำหรับเก็บประเภทสินค้า)
เป็นต้น (สำหรับใครที่ยังงงๆ Primary key, Foreign key รวมถึง int, varchar ตามภาพนี้ เดี๋ยวจะมีอธิบายเพิ่มเติมด้านล่าง)
มาลองสร้าง Database ของระบบเราเองก่อน
Database นั้นสามารถสร้างได้ง่ายๆจากการกด "New" เพื่อสร้างใน Phpmyadmin เลย
เมื่อเข้ามายังหน้าจอของ phpmyadmin (ตามภาพด้านล่าง) ให้กดตรง "New" ของ Phpmyadmin เพื่อทำการสร้าง Database ใหม่
ใส่ชื่อฐานข้อมูลที่ต้องการ (เช่นตามภาพนี้คือ tutorial) หลังจากนั้นกด Create ด้านหลัง เพื่อทำการสร้าง Database
เมื่อลงทุกอย่างถูกต้อง Database จะปรากฎที่ฝั่งซ้ายของหน้าจอ (ตามภาพ) ถ้าได้ Database แบบนี้ถือว่าถูกต้องแล้ว
สร้าง table กันต่อ
เราจะมาสร้าง Table สำหรับเก็บข้อมูล Register ของ user (จาก form ที่เราทำก่อนหน้า ตามภาพด้านล่าง) กัน
โดย เราจะสร้าง table ชื่อ users ขึ้นมา โดยการใส่ users ตรง Table name แล้วกด Create ได้เลย (ถ้าใครไม่เจอหน้าจอแบบนี้ให้กดตรงชื่อ database webtutorial จะพากลับมาหน้านี้ได้)
เมื่อกด Create เว็บจะพามายังหน้าสร้าง Column
- หน้าที่ทุกคนเห็นคือหน้าสร้างโครงสร้าง table ของ phpmyadmin มีหน้าที่สำหรับกำหนดว่า table นี้ควรมี column อะไรที่จะมาเก็บข้อมูลบ้าง (เหมือนกับเคส product ด้านบนที่เราอธิบายไป)
- ในระบบเรานั้น form register เราจะมีของทั้งหมด 6 อย่างที่เราต้องเก็บคือ
- firstname = ชื่อจริงของ user
- lastname = นามสกุลของ user
- age = อายุของ user
- gender = เพศของ user (ชาย, หญิง, ไม่ระบุ)
- interests = ความสนใจ
- description = คำอธิบายตัวตนเพิ่มเติม
ทีนี้ก่อนจะไปสร้าง column ของ table กัน เรามาทำความเข้าใจ 3 column (ที่อยู่ตามภาพด้านล่าง) ก่อน ว่ามันมีหน้าที่อะไรกันบ้าง
- Name = ชื่อของ column
- Type = ประเภทของข้อมูลของ column นั้น ซึ่งผมจะขอแนะนำ 5 types ที่จะมีโอกาสได้ใช้บ่อยคือ
- INT = ตัวเลข (เก็บได้ระหว่าง -2,147,483,647 ถึง 2,147,483,647)
- VARCHAR = ตัวอักษร สูงสุด 255 (แต่สำหรับ MySQL ยุคหลังๆเก็บได้ 65,535)
- TEXT = ตัวอักษรยาวๆ
- DATE = วันเวลา (Datetime format)
- ENUM = list ของข้อมูลที่สามารถใส่ได้
- จริงๆมันมี Type มากกว่านี้อีกเยอะมาก แต่ส่วนใหญ่จะเป็นลักษณะขยายขนาดของข้อมูล เช่น BIGINT ที่ทำให้เก็บตัวเลขให้มากขึ้น ตอนนี้เราจะเล่นกับ type ที่อยู่ใน 5 type นี้ก่อน
- Length/Values คือ ขนาดสูงสุดหรือค่าที่เราจะทำการกำหนดเอาไว้คู่กับ Column นั้น
- ถ้าใช้กับ INT, VARCHAR, TEXT จะเป็นขนาดหรือตัวเลขสูงสุด
- ถ้าใช้กับ ENUM ก็จะใส่เป็น list ที่สามารถบันทึกได้(มีตัวอย่างให้ดูด้านล่าง)
ดังนั้นเราจะต้อง setup เป็นตามนี้เพื่อให้สามารถเก็บ form ได้
- id เป็น INT set เป็น primary key และ auto increment (ตรงติ้กถูก)
Primary key คือ key ที่จะใช้เป็น unique index ในการอัพเดทและค้นหาฐานข้อมูล ซึ่งการ setup ตามภาพนี้คือ
- ให้ id เป็น Primary key
- ให้ id เป็น Autoincrement (ตรงติ้กถูก) = ทุกครั้งที่มีการ update ข้อมูลให้ update ตัวเลขแบบเพิ่มที่ละ 1 running เองได้เลย จะได้ไม่ต้องมาคอยกำหนด id
- firstname เป็น VARCHAR ขนาดไม่เกิน 255 (เนื่องจากชื่อไม่ยาวมาก)
- lastname เป็น VARCHAR ขนาดไม่เกิน 255 (เนื่องจากนามสกุลไม่ยาวมาก)
- age เป็น INT
- gender เป็น ENUM ที่จะรองรับการเก็บเพียงแค่ 3 ค่าคือ 'ชาย', 'หญิง', 'ไม่ระบุ'
- interests เป็น TEXT
- description เป็น TEXT
ตัวอย่างการ setup ตามภาพด้านล่างนี้
หาก ต้องการเพิ่ม columnn สามารถใส่ตัวเลขและกด Go เพื่อเพิ่ม Column ได้
เมื่อทุกอย่างเรียบร้อยกด Save ด้านล่างได้เลย
เมื่อทุกอย่างเรียบร้อย จะมีชื่อ table โผล่มาทางด้านซ้าย (users) อยู่ใต้ Database (tutorial) แปลว่า ตอนนี้เราได้สร้าง table users ไว้ใต้ database tutorial แล้วเรียบร้อย
เป็นอันจบพิธีการสร้าง Database และ Table (1 table) ตอนนี้เรามีของพร้อมสำหรับการเล่น Database แล้ว
การ Insert ผ่าน phpmyadmin
เราจะมาลองใส่ข้อมูล (Insert) เข้า table users ที่เราพึ่งสร้างมาเมื่อกี้กัน ในเมนู phpmyadmin เองก็มีเครื่องมือสำหรับก ารใส่ข้อมูลไว้แล้วเรียบร้อย สามารถเข้าได้จากการกดเมนู "Insert" ใน phpmyadmin
เมื่อกดเข้ามาจะเจอหน้าที่สามารถใส่ข้อมูลลงในแต่ละ column ได้ (Column อยู่ทางซ้าย, Value อยู่ทางขวา) ตามภาพนี้คือ ผมจะลองใส่
- firstname เป็นคำว่า "ชื่อจริง"
- lastname เป็นคำว่า "นามสกุล"
- age ใส่เลข 12
- gender ใส่เป็น "ชาย"
- interests ใส่เป็น "ความสนใจ1, ความสนใจ2"
- description ใส่เป็น "คำอธิบาย"
เมื่อใส่ครบเรียบร้อย กด "Go" ที่อยู่ด้านล่างได้เลย
เมื่อกด Go เว็บมันจะ redirect มาหน้าบอกว่า Insert เรียบร้อย
เมื่อเรากด "Browse" ไปเราจะเจอข้อมูลที่เราพึ่ง Insert เมื่อกี้ไปได้ หน้า Browse เป็นหน้าสำหรับดูว่าเราใส่ข้อมูลอะไรออกมาบ้างแล้ว
การ Search ผ่าน phpmyadmin
อีกสักเคสใน Phpmyadmin ละกัน เราจะมาทำการค้นหาข้อมูลที่ Insert ไปด้วยเมนู Search ใน phpmyadmin สามารถกดได้จาก "Search" ตรง menu Phpmyadmin
สามารถเลือก Column ที่ต้องการค้นหา และใส่ value ที่ต้องการค้นหาตรงตำแหน่ง Column นั้นได้เลย เช่น ตามภาพด้านล่างคือ หา firstname ที่มีคำว่า "ชื่อจริง" อยู่ในนั้น
- ตรง Operator จะมีตั้งแต่ =, !=, LIKE, NOT LIKE พวกนี้คือ คำสั่งที่ใช้สำหรับการค้นหาร่วมด้วย
- ตามภาพนี้คือ firstname LIKE "ชื่อจริง" ซึ่ง LIKE ค ือ การหาว่าคำที่ใส่ไปนี้มีอยู่ในข้อมูลตัวไหนบ้าง (ไม่จำเป็นต้องเท่ากันเป๊ะก็ได้) เช่น ถ้า firstname เป็น ชื่อจริง, ชื่อจริงนะ, ฉันนี่แหละชื่อจริง ทั้ง 3 ข้อมูลนี้จะถูกหาเจอหมด เพราะมีคำว่า "ชื่อจริง" อยู่ในนั้นทั้งหมด
- Operator สามารถเปลี่ยนได้ตามจุดประสงค์ หากเราต้องการหาแค่ "ชื่อจริง" ก็เปลี่ยนเป็น = แทนได้
เมื่อกด Go ออกมา ก็จะแสดงผลลัพธ์การค้นหาออกมา