Skip to main content

พาเล่น phpmyadmin คุยกับ MySql

รู้จักกับ Database และ table กันก่อน

องค์ประกอบของ Database จะประกอบไปด้วย 2 อย่างคือ

  1. Database ก้อนไหน
  2. 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 ตามภาพนี้ เดี๋ยวจะมีอธิบายเพิ่มเติมด้านล่าง)

phpmyadmin-16

มาลองสร้าง Database ของระบบเราเองก่อน

Database นั้นสามารถสร้างได้ง่ายๆจากการกด "New" เพื่อสร้างใน Phpmyadmin เลย

เมื่อเข้ามายังหน้าจอของ phpmyadmin (ตามภาพด้านล่าง) ให้กดตรง "New" ของ Phpmyadmin เพื่อทำการสร้าง Database ใหม่ phpmyadmin-1

ใส่ชื่อฐานข้อมูลที่ต้องการ (เช่นตามภาพนี้คือ tutorial) หลังจากนั้นกด Create ด้านหลัง เพื่อทำการสร้าง Database phpmyadmin-2

เมื่อลงทุกอย่างถูกต้อง Database จะปรากฎที่ฝั่งซ้ายของหน้าจอ (ตามภาพ) ถ้าได้ Database แบบนี้ถือว่าถูกต้องแล้ว phpmyadmin-3

สร้าง table กันต่อ

เราจะมาสร้าง Table สำหรับเก็บข้อมูล Register ของ user (จาก form ที่เราทำก่อนหน้า ตามภาพด้านล่าง) กัน

phpmyadmin-17

โดย เราจะสร้าง table ชื่อ users ขึ้นมา โดยการใส่ users ตรง Table name แล้วกด Create ได้เลย (ถ้าใครไม่เจอหน้าจอแบบนี้ให้กดตรงชื่อ database webtutorial จะพากลับมาหน้านี้ได้) phpmyadmin-4

เมื่อกด Create เว็บจะพามายังหน้าสร้าง Column

  • หน้าที่ทุกคนเห็นคือหน้าสร้างโครงสร้าง table ของ phpmyadmin มีหน้าที่สำหรับกำหนดว่า table นี้ควรมี column อะไรที่จะมาเก็บข้อมูลบ้าง (เหมือนกับเคส product ด้านบนที่เราอธิบายไป)
  • ในระบบเรานั้น form register เราจะมีของทั้งหมด 6 อย่างที่เราต้องเก็บคือ
    • firstname = ชื่อจริงของ user
    • lastname = นามสกุลของ user
    • age = อายุของ user
    • gender = เพศของ user (ชาย, หญิง, ไม่ระบุ)
    • interests = ความสนใจ
    • description = คำอธิบายตัวตนเพิ่มเติม

ทีนี้ก่อนจะไปสร้าง column ของ table กัน เรามาทำความเข้าใจ 3 column (ที่อยู่ตามภาพด้านล่าง) ก่อน ว่ามันมีหน้าที่อะไรกันบ้าง phpmyadmin-18

  • Name = ชื่อของ column
  • Type = ประเภทของข้อมูลของ column นั้น ซึ่งผมจะขอแนะนำ 5 types ที่จะมีโอกาสได้ใช้บ่อยคือ
    1. INT = ตัวเลข (เก็บได้ระหว่าง -2,147,483,647 ถึง 2,147,483,647)
    2. VARCHAR = ตัวอักษร สูงสุด 255 (แต่สำหรับ MySQL ยุคหลังๆเก็บได้ 65,535)
    3. TEXT = ตัวอักษรยาวๆ
    4. DATE = วันเวลา (Datetime format)
    5. 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

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 ตามภาพด้านล่างนี้

phpmyadmin-5

หากต้องการเพิ่ม columnn สามารถใส่ตัวเลขและกด Go เพื่อเพิ่ม Column ได้

phpmyadmin-19

เมื่อทุกอย่างเรียบร้อยกด Save ด้านล่างได้เลย

phpmyadmin-6

เมื่อทุกอย่างเรียบร้อย จะมีชื่อ table โผล่มาทางด้านซ้าย (users) อยู่ใต้ Database (tutorial) แปลว่า ตอนนี้เราได้สร้าง table users ไว้ใต้ database tutorial แล้วเรียบร้อย phpmyadmin-7

เป็นอันจบพิธีการสร้าง Database และ Table (1 table) ตอนนี้เรามีของพร้อมสำหรับการเล่น Database แล้ว

การ Insert ผ่าน phpmyadmin

เราจะมาลองใส่ข้อมูล (Insert) เข้า table users ที่เราพึ่งสร้างมาเมื่อกี้กัน ในเมนู phpmyadmin เองก็มีเครื่องมือสำหรับการใส่ข้อมูลไว้แล้วเรียบร้อย สามารถเข้าได้จากการกดเมนู "Insert" ใน phpmyadmin

phpmyadmin-8

เมื่อกดเข้ามาจะเจอหน้าที่สามารถใส่ข้อมูลลงในแต่ละ column ได้ (Column อยู่ทางซ้าย, Value อยู่ทางขวา) ตามภาพนี้คือ ผมจะลองใส่

  • firstname เป็นคำว่า "ชื่อจริง"
  • lastname เป็นคำว่า "นามสกุล"
  • age ใส่เลข 12
  • gender ใส่เป็น "ชาย"
  • interests ใส่เป็น "ความสนใจ1, ความสนใจ2"
  • description ใส่เป็น "คำอธิบาย"

เมื่อใส่ครบเรียบร้อย กด "Go" ที่อยู่ด้านล่างได้เลย

phpmyadmin-9

phpmyadmin-10

เมื่อกด Go เว็บมันจะ redirect มาหน้าบอกว่า Insert เรียบร้อย

phpmyadmin-11

เมื่อเรากด "Browse" ไปเราจะเจอข้อมูลที่เราพึ่ง Insert เมื่อกี้ไปได้ หน้า Browse เป็นหน้าสำหรับดูว่าเราใส่ข้อมูลอะไรออกมาบ้างแล้ว

phpmyadmin-12

การ Search ผ่าน phpmyadmin

อีกสักเคสใน Phpmyadmin ละกัน เราจะมาทำการค้นหาข้อมูลที่ Insert ไปด้วยเมนู Search ใน phpmyadmin สามารถกดได้จาก "Search" ตรง menu Phpmyadmin phpmyadmin-13

สามารถเลือก Column ที่ต้องการค้นหา และใส่ value ที่ต้องการค้นหาตรงตำแหน่ง Column นั้นได้เลย เช่น ตามภาพด้านล่างคือ หา firstname ที่มีคำว่า "ชื่อจริง" อยู่ในนั้น

  • ตรง Operator จะมีตั้งแต่ =, !=, LIKE, NOT LIKE พวกนี้คือ คำสั่งที่ใช้สำหรับการค้นหาร่วมด้วย
  • ตามภาพนี้คือ firstname LIKE "ชื่อจริง" ซึ่ง LIKE คือ การหาว่าคำที่ใส่ไปนี้มีอยู่ในข้อมูลตัวไหนบ้าง (ไม่จำเป็นต้องเท่ากันเป๊ะก็ได้) เช่น ถ้า firstname เป็น ชื่อจริง, ชื่อจริงนะ, ฉันนี่แหละชื่อจริง ทั้ง 3 ข้อมูลนี้จะถูกหาเจอหมด เพราะมีคำว่า "ชื่อจริง" อยู่ในนั้นทั้งหมด
  • Operator สามารถเปลี่ยนได้ตามจุดประสงค์ หากเราต้องการหาแค่ "ชื่อจริง" ก็เปลี่ยนเป็น = แทนได้

phpmyadmin-14

เมื่อกด Go ออกมา ก็จะแสดงผลลัพธ์การค้นหาออกมา phpmyadmin-15