บทเรียน: PostgreSQL ฉบับเริ่มต้น - 1/5: สร้าง Table อย่างง่าย: เริ่มต้นออกแบบฐานข้อมูลของคุณ
ยินดีต้อนรับสู่บทเรียน PostgreSQL ฉบับเริ่มต้น! ในบทเรียนนี้ เราจะเริ่มต้นการเดินทางสู่โลกของ PostgreSQL หรือที่รู้จักกันในชื่อ Postgres ซึ่งเป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management System หรือ RDBMS) ที่ทรงพลังและได้รับความนิยมอย่างมาก โดยเฉพาะอย่างยิ่งในกลุ่มนักพัฒนาโอเพนซอร์ส
ในบทแรกนี้ เราจะมาเรียนรู้วิธีการสร้าง Table ซึ่งเป็นองค์ประกอบพื้นฐานที่สุดในการออกแบบฐานข้อมูลของเรา หากคุณไม่เคยมีประสบการณ์กับการสร้างฐานข้อมูลมาก่อน ไม่ต้องกังวล! เราจะเริ่มต้นจากพื้นฐานที่สุดและค่อยๆ เพิ่มความซับซ้อนขึ้นไป
ทำไมต้อง PostgreSQL?
ก่อนที่เราจะเริ่มลงมือปฏิบัติ เรามาทำความเข้าใจกันก่อนว่าทำไม PostgreSQL ถึงเป็นตัวเลือกที่ดีสำหรับโปรเจกต์ของคุณ:
- โอเพนซอร์สและฟรี: ใช้งานได้ฟรี ไม่มีค่าใช้จ่ายในการใช้งาน
- รองรับมาตรฐาน SQL: ทำให้การย้ายฐานข้อมูลหรือเรียนรู้ SQL เป็นเรื่องง่าย
- ความน่าเชื่อถือและความเสถียร: ขึ้นชื่อในเรื่องความเสถียรและความน่าเชื่อถือ เหมาะสำหรับโปรเจกต์ขนาดใหญ่
- ฟีเจอร์ขั้นสูง: รองรับฟีเจอร์ขั้นสูงมากมาย เช่น Transactions, Concurrency Control, และ Stored Procedures
- ชุมชนขนาดใหญ่: มีชุมชนผู้ใช้งานขนาดใหญ่พร้อมให้ความช่วยเหลือและสนับสนุน
Table คืออะไร?
Table ในฐานข้อมูลก็เหมือนกับตารางในสเปรดชีต (เช่น Microsoft Excel หรือ Google Sheets) เป็นโครงสร้างที่ใช้จัดเก็บข้อมูลในรูปแบบแถว (Rows) และคอลัมน์ (Columns) แต่ละคอลัมน์จะเก็บข้อมูลประเภทเดียวกัน (เช่น ชื่อ, อายุ, อีเมล) และแต่ละแถวจะเก็บข้อมูลของแต่ละรายการ (เช่น ข้อมูลของลูกค้าแต่ละคน)
คำสั่ง CREATE TABLE
ในการสร้าง Table ใน PostgreSQL เราจะใช้คำสั่ง CREATE TABLE รูปแบบพื้นฐานของคำสั่งนี้คือ:
CREATE TABLE table_name (
column1_name data_type constraints,
column2_name data_type constraints,
...
);
คำอธิบาย:
CREATE TABLE: คำสั่งที่ใช้สร้าง Table ใหม่table_name: ชื่อของ Table ที่คุณต้องการสร้าง (ควรเป็นชื่อที่สื่อความหมายและเข้าใจง่าย)column1_name,column2_name, ...: ชื่อของแต่ละคอลัมน์ใน Tabledata_type: ประเภทของข้อมูลที่คอลัมน์นั้นจะเก็บ (เช่น ตัวเลข, ข้อความ, วันที่)constraints: ข้อจำกัดเพิ่มเติมสำหรับคอลัมน์นั้น (เช่น กำหนดว่าคอลัมน์นั้นต้องมีค่าเสมอ หรือต้องเป็นค่าที่ไม่ซ้ำกัน)
การกำหนดชื่อ Table และ Column
การตั้งชื่อ Table และ Column ที่ดีเป็นสิ่งสำคัญเพื่อให้ฐานข้อมูลของคุณง่ายต่อการเข้าใจและบำรุงรักษา นี่คือแนวทางปฏิบัติที่ดี:
- ใช้ชื่อที่สื่อความหมาย: ชื่อควรบอกได้ว่า Table หรือ Column นั้นเก็บข้อมูลอะไร
- ใช้ตัวอักษรตัวเล็ก: PostgreSQL โดยทั่วไปจะใช้ตัวอักษรตัวเล็กสำหรับชื่อ Table และ Column
- ใช้เครื่องหมาย underscore (_) คั่นคำ: หากชื่อประกอบด้วยหลายคำ ให้ใช้ underscore (_) เพื่อคั่นคำ (เช่น
customer_nameแทนcustomername) - หลีกเลี่ยงคำสงวน: หลีกเลี่ยงการใช้คำสงวนของ SQL (เช่น
SELECT,FROM,WHERE) เป็นชื่อ Table หรือ Column
การเลือก Data Types ที่เหมาะสม
การเลือก Data Types ที่เหมาะสมสำหรับแต่ละ Column เป็นสิ่งสำคัญเพื่อให้แน่ใจว่าข้อมูลของคุณถูกจัดเก็บอย่างถูกต้องและมีประสิทธิภาพ นี่คือ Data Types ที่พบบ่อยใน PostgreSQL:
- INTEGER: สำหรับเก็บตัวเลขจำนวนเต็ม (เช่น 1, 2, 3, -1, -2, -3)
- NUMERIC: สำหรับเก็บตัวเลขที่มีทศนิยม (เช่น 1.23, 3.14, -0.5) สามารถกำหนดความแม่นยำและขนาดได้
- TEXT: สำหรับเก็บข้อความ (เช่น "Hello", "World", "PostgreSQL")
- VARCHAR(n): สำหรับเก็บข้อความที่มีความยาวจำกัด (n คือจำนวนตัวอักษรสูงสุด) (เช่น
VARCHAR(50)เก็บข้อความได้ยาวสูงสุด 50 ตัวอักษร) - DATE: สำหรับเก็บวันที่ (เช่น 2023-10-27)
- TIME: สำหรับเก็บเวลา (เช่น 10:30:00)
- TIMESTAMP: สำหรับเก็บวันที่และเวลา (เช่น 2023-10-27 10:30:00)
- BOOLEAN: สำหรับเก็บค่าที่เป็นจริง (
TRUE) หรือเท็จ (FALSE)
ตัวอย่างการสร้าง Table
มาดูตัวอย่างการสร้าง Table ที่ชื่อ customers เพื่อเก็บข้อมูลลูกค้า:
CREATE TABLE customers (
customer_id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
phone_number VARCHAR(20),
registration_date DATE
);
คำอธิบาย:
customer_id SERIAL PRIMARY KEY: สร้างคอลัมน์customer_idเป็นประเภทSERIALซึ่งเป็น Integer ที่เพิ่มค่าอัตโนมัติ (Auto-Increment) และกำหนดให้เป็นPRIMARY KEYซึ่งหมายความว่าคอลัมน์นี้จะเป็นตัวระบุที่ไม่ซ้ำกันสำหรับแต่ละแถวใน Tablefirst_name VARCHAR(50): สร้างคอลัมน์first_nameเป็นประเภทVARCHAR(50)สำหรับเก็บชื่อต้นของลูกค้า (ยาวสูงสุด 50 ตัวอักษร)last_name VARCHAR(50): สร้างคอลัมน์last_nameเป็นประเภทVARCHAR(50)สำหรับเก็บนามสกุลของลูกค้า (ยาวสูงสุด 50 ตัวอักษร)email VARCHAR(100): สร้างคอลัมน์emailเป็นประเภทVARCHAR(100)สำหรับเก็บอีเมลของลูกค้า (ยาวสูงสุด 100 ตัวอักษร)phone_number VARCHAR(20): สร้างคอลัมน์phone_numberเป็นประเภทVARCHAR(20)สำหรับเก็บเบอร์โทรศัพท์ของลูกค้า (ยาวสูงสุด 20 ตัวอักษร)registration_date DATE: สร้างคอลัมน์registration_dateเป็นประเภทDATEสำหรับเก็บวันที่ลงทะเบียนของลูกค้า
ข้อควรระวังเกี่ยวกับ PRIMARY KEY
PRIMARY KEY เป็นข้อจำกัดที่สำคัญมากใน Table มันรับประกันว่าแต่ละแถวใน Table จะมีตัวระบุที่ไม่ซ้ำกัน (unique identifier) ซึ่งช่วยให้เราสามารถค้นหาและอ้างอิงถึงแถวนั้นได้อย่างถูกต้อง
- Table หนึ่ง Table สามารถมี
PRIMARY KEYได้เพียงหนึ่งคอลัมน์ (หรือกลุ่มของคอลัมน์) เท่านั้น - ค่าใน
PRIMARY KEYจะต้องไม่เป็นNULL(ว่างเปล่า)
สรุป
ในบทนี้ เราได้เรียนรู้เกี่ยวกับวิธีการสร้าง Table อย่างง่ายใน PostgreSQL โดยใช้คำสั่ง CREATE TABLE เราได้เรียนรู้เกี่ยวกับการกำหนดชื่อ Table และ Column, การเลือก Data Types ที่เหมาะสม, และความสำคัญของ PRIMARY KEY ในการระบุแต่ละแถวใน Table
ในบทถัดไป เราจะเรียนรู้วิธีการจัดการข้อมูลใน Table โดยใช้คำสั่ง INSERT, UPDATE, และ DELETE เตรียมตัวให้พร้อมสำหรับการผจญภัยครั้งต่อไป!