Skip to main content

เนื้อหาภาษาไทย / Thai content

System guide Content reviewed

การสร้างตาราง (CREATE TABLE)

บทนี้เป็นการแนะนำคำสั่ง `CREATE TABLE` ซึ่งเป็นคำสั่งพื้นฐานในการสร้างตารางในฐานข้อมูล MySQL โดยตารางประกอบด้วยคอลัมน์ที่ต้องกำหนดชื่อ, ประเภทข้อมูล (Data Type)...

การสร้างตาราง (CREATE TABLE)

หลังจากที่เราได้สร้างและเลือกฐานข้อมูลที่เราต้องการใช้งานแล้ว (ด้วยคำสั่ง CREATE DATABASE และ USE DATABASE ในบทก่อนหน้า) ขั้นตอนต่อไปที่สำคัญคือการสร้างตาราง (Table) ภายในฐานข้อมูลนั้น ตารางเปรียบเสมือนตารางในโปรแกรม Microsoft Excel หรือ Google Sheets ที่ใช้เก็บข้อมูลที่เป็นระเบียบและมีโครงสร้าง

ตารางคืออะไร?

ตารางในฐานข้อมูลเชิงสัมพันธ์ (Relational Database) อย่าง MySQL คือชุดของข้อมูลที่จัดเรียงในรูปแบบแถว (Row) และคอลัมน์ (Column) แต่ละคอลัมน์จะเก็บข้อมูลประเภทเดียวกัน (เช่น ชื่อ, อายุ, ที่อยู่) และแต่ละแถวจะแทนข้อมูลของหนึ่งเรคคอร์ด (Record) หรือหนึ่งหน่วยข้อมูล (เช่น ข้อมูลของลูกค้าหนึ่งคน, ข้อมูลของสินค้าหนึ่งชิ้น)

คำสั่ง CREATE TABLE

คำสั่งหลักที่ใช้ในการสร้างตารางใน MySQL คือ CREATE TABLE รูปแบบพื้นฐานของคำสั่งนี้คือ:

CREATE TABLE table_name (
    column1 datatype constraints,
    column2 datatype constraints,
    column3 datatype constraints,
    ...
);
  • CREATE TABLE: เป็นคำสั่งที่บอกให้ MySQL สร้างตารางใหม่
  • table_name: คือชื่อของตารางที่เราต้องการสร้าง (ควรตั้งชื่อให้สื่อความหมายและเป็นไปตามกฎการตั้งชื่อของ MySQL)
  • column1, column2, column3, ...: คือชื่อของคอลัมน์แต่ละคอลัมน์ในตาราง
  • datatype: คือประเภทของข้อมูลที่คอลัมน์นั้นๆ จะเก็บ (เช่น ข้อความ, ตัวเลข, วันที่) เราจะเรียนรู้เกี่ยวกับ Data Types ในบทถัดไป
  • constraints: คือข้อจำกัดหรือกฎเกณฑ์ที่ใช้ควบคุมข้อมูลในคอลัมน์นั้นๆ (เช่น กำหนดว่าคอลัมน์นั้นต้องมีค่าเสมอ, กำหนดให้คอลัมน์นั้นเป็น Primary Key)

Column Definition (การกำหนดคอลัมน์)

การกำหนดคอลัมน์ (Column Definition) คือการระบุชื่อ, ประเภทข้อมูล (Data Type) และข้อจำกัด (Constraints) ของแต่ละคอลัมน์ในตาราง ตัวอย่างเช่น:

CREATE TABLE customers (
    customer_id INT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100),
    phone_number VARCHAR(20)
);

ในตัวอย่างนี้ เราได้สร้างตารางชื่อ customers ซึ่งมี 5 คอลัมน์:

  • customer_id: เป็นคอลัมน์สำหรับเก็บ ID ของลูกค้า (ชนิดข้อมูลเป็น INT หรือ Integer ซึ่งหมายถึงจำนวนเต็ม)
  • first_name: เป็นคอลัมน์สำหรับเก็บชื่อจริงของลูกค้า (ชนิดข้อมูลเป็น VARCHAR(50) ซึ่งหมายถึงข้อความที่มีความยาวไม่เกิน 50 ตัวอักษร)
  • last_name: เป็นคอลัมน์สำหรับเก็บนามสกุลของลูกค้า (ชนิดข้อมูลเป็น VARCHAR(50))
  • email: เป็นคอลัมน์สำหรับเก็บอีเมลของลูกค้า (ชนิดข้อมูลเป็น VARCHAR(100))
  • phone_number: เป็นคอลัมน์สำหรับเก็บเบอร์โทรศัพท์ของลูกค้า (ชนิดข้อมูลเป็น VARCHAR(20))

Data Types (ประเภทข้อมูล)

Data Types คือการระบุประเภทของข้อมูลที่คอลัมน์นั้นๆ สามารถเก็บได้ การเลือก Data Type ที่เหมาะสมมีความสำคัญเพราะมีผลต่อขนาดพื้นที่ที่ใช้ในการจัดเก็บข้อมูล, ความถูกต้องของข้อมูล, และประสิทธิภาพในการสืบค้นข้อมูล

ใน MySQL มี Data Types ให้เลือกใช้งานมากมาย แต่ในบทนี้เราจะแนะนำ Data Types ที่ใช้บ่อยและสำคัญ:

  • INT (Integer): ใช้สำหรับเก็บจำนวนเต็ม (ไม่มีทศนิยม) เช่น INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT ขนาดของแต่ละแบบจะแตกต่างกันไปตามช่วงของตัวเลขที่สามารถเก็บได้
  • VARCHAR(length): ใช้สำหรับเก็บข้อความที่มีความยาวไม่เกิน `length` ตัวอักษร (Variable-length Character String) เช่น VARCHAR(255)
  • CHAR(length): ใช้สำหรับเก็บข้อความที่มีความยาวคงที่ `length` ตัวอักษร (Fixed-length Character String) มักใช้เมื่อรู้ความยาวของข้อความที่จะเก็บแน่นอน เช่น CHAR(2) (รหัสย่อประเทศ)
  • TEXT: ใช้สำหรับเก็บข้อความที่มีความยาวมากๆ (Long Text)
  • DATE: ใช้สำหรับเก็บวันที่ (รูปแบบ YYYY-MM-DD)
  • DATETIME: ใช้สำหรับเก็บวันที่และเวลา (รูปแบบ YYYY-MM-DD HH:MM:SS)
  • TIMESTAMP: ใช้สำหรับเก็บวันที่และเวลาเช่นเดียวกับ DATETIME แต่มีช่วงเวลาที่จำกัดกว่า และมักใช้สำหรับการบันทึกเวลาที่เกิดการเปลี่ยนแปลงข้อมูล
  • BOOLEAN: ใช้สำหรับเก็บค่าที่เป็นจริง (TRUE) หรือ เท็จ (FALSE) (ใน MySQL, BOOLEAN จะถูกแปลงเป็น TINYINT(1) โดยที่ 0 คือ FALSE และ 1 คือ TRUE)
  • DECIMAL(precision, scale): ใช้สำหรับเก็บตัวเลขทศนิยม โดย `precision` คือจำนวนหลักทั้งหมด และ `scale` คือจำนวนหลักหลังจุดทศนิยม เช่น DECIMAL(10,2) หมายถึงตัวเลขที่มี 10 หลัก โดยมี 2 หลักหลังจุดทศนิยม

เราจะเจาะลึกเรื่อง Data Types ในบทเรียนถัดไป

ตัวอย่างการสร้างตาราง

ลองมาดูตัวอย่างการสร้างตาราง products ที่เก็บข้อมูลเกี่ยวกับสินค้า:

CREATE TABLE products (
    product_id INT,
    product_name VARCHAR(100),
    description TEXT,
    price DECIMAL(10, 2),
    stock_quantity INT
);

ตาราง products นี้มีคอลัมน์:

  • product_id: ID ของสินค้า (จำนวนเต็ม)
  • product_name: ชื่อของสินค้า (ข้อความ, ไม่เกิน 100 ตัวอักษร)
  • description: รายละเอียดของสินค้า (ข้อความยาว)
  • price: ราคาของสินค้า (ทศนิยม, มี 10 หลัก โดยมี 2 หลักหลังจุดทศนิยม)
  • stock_quantity: จำนวนสินค้าในคลัง (จำนวนเต็ม)

การรันคำสั่ง CREATE TABLE

หลังจากเขียนคำสั่ง CREATE TABLE แล้ว เราสามารถรันคำสั่งนี้ได้โดยใช้ MySQL Command Line Client หรือ MySQL Workbench (หรือเครื่องมืออื่นๆ ที่ใช้เชื่อมต่อกับ MySQL Server) เมื่อรันคำสั่งสำเร็จ MySQL Server จะสร้างตารางใหม่ตามที่เรากำหนดไว้

ตัวอย่างการรันคำสั่งใน MySQL Command Line Client:

  1. เปิด MySQL Command Line Client
  2. ล็อกอินเข้าสู่ MySQL Server ด้วย username และ password
  3. เลือกฐานข้อมูลที่เราต้องการสร้างตาราง (เช่น USE your_database_name;)
  4. พิมพ์คำสั่ง CREATE TABLE (เช่น คำสั่งสร้างตาราง products ด้านบน)
  5. กด Enter เพื่อรันคำสั่ง

ถ้าคำสั่งสำเร็จ เราจะไม่เห็นข้อผิดพลาดใดๆ ปรากฏขึ้น

สรุป

ในบทนี้ เราได้เรียนรู้เกี่ยวกับคำสั่ง CREATE TABLE ซึ่งใช้ในการสร้างตารางใน MySQL รวมถึงความสำคัญของการกำหนด Column Definition และ Data Types การสร้างตารางเป็นขั้นตอนพื้นฐานที่สำคัญในการออกแบบและจัดการฐานข้อมูล และเป็นพื้นฐานสำหรับการเพิ่ม, แก้ไข, และสืบค้นข้อมูลในอนาคต ในบทถัดไป เราจะเจาะลึกเรื่อง Data Types ใน MySQL เพื่อให้เราสามารถเลือก Data Type ที่เหมาะสมกับข้อมูลที่เราต้องการเก็บได้อย่างมีประสิทธิภาพ

Office.in.th Custom Service

Want to build or adapt a system from this structure?

Office.in.th designs and develops enterprise web applications, API integrations, and public- and private-sector management systems, with long-term support.

See our software development service