ข้ามไปยังเนื้อหาหลัก
คู่มือระบบ เนื้อหาผ่านการตรวจสอบแล้ว

การเชื่อมต่อและใช้งาน psql: Command-line Interface

บทนี้เป็นการแนะนำการใช้งาน `psql` ซึ่งเป็น Command-line Interface สำหรับ PostgreSQL โดยอธิบายถึงวิธีการเชื่อมต่อกับ PostgreSQL Server ด้วยคำสั่ง `psql` พร้อม op...

การเชื่อมต่อและใช้งาน psql: Command-line Interface

ยินดีต้อนรับกลับสู่บทเรียน PostgreSQL ฉบับเริ่มต้น! ในบทที่แล้ว เราได้เรียนรู้วิธีการติดตั้ง PostgreSQL บนระบบปฏิบัติการต่างๆ กันไปแล้ว ในบทนี้ เราจะมาทำความคุ้นเคยกับการเชื่อมต่อและใช้งาน PostgreSQL Server ผ่าน Command-line Interface หรือที่เรียกกันติดปากว่า psql ซึ่งเป็นเครื่องมือที่ทรงพลังและจำเป็นสำหรับผู้ที่ต้องการใช้งาน PostgreSQL อย่างจริงจัง

psql คืออะไร?

psql คือ Command-line Interface ของ PostgreSQL เป็นโปรแกรมที่ช่วยให้เราสามารถสื่อสารกับ PostgreSQL Server ได้โดยตรงผ่านการพิมพ์คำสั่ง SQL (Structured Query Language) ข้อดีของ psql คือความยืดหยุ่นและประสิทธิภาพในการจัดการฐานข้อมูล ทำให้เหมาะสำหรับทั้งการเรียนรู้ การพัฒนา และการดูแลระบบ

การเชื่อมต่อกับ PostgreSQL Server

หลังจากติดตั้ง PostgreSQL แล้ว เราจะสามารถเปิด psql ได้จาก Command Prompt (Windows), Terminal (macOS/Linux) หรือ PostgreSQL Shell (pgAdmin จะมีตัวเลือกให้เปิด psql ได้ง่ายๆ) วิธีการเชื่อมต่อมีหลายรูปแบบ แต่รูปแบบที่ง่ายที่สุดคือการใช้คำสั่ง psql ตามด้วย options ต่างๆ

รูปแบบคำสั่งพื้นฐาน:

psql -U username -d databasename -h hostname -p port

คำอธิบาย options:

  • -U username: ระบุชื่อผู้ใช้งาน (Username) ที่ต้องการใช้ในการเชื่อมต่อ หากไม่ระบุ จะใช้ username ปัจจุบันของระบบปฏิบัติการ
  • -d databasename: ระบุชื่อฐานข้อมูล (Database Name) ที่ต้องการเชื่อมต่อ หากไม่ระบุ จะเชื่อมต่อกับ database ที่มีชื่อเดียวกับ username
  • -h hostname: ระบุ hostname หรือ IP address ของ PostgreSQL Server หากเป็น localhost (เครื่องเดียวกัน) สามารถละเว้นได้
  • -p port: ระบุ port ที่ PostgreSQL Server กำลังใช้งาน โดยปกติคือ 5432 หากไม่ได้เปลี่ยนแปลงค่า default ก็สามารถละเว้นได้

ตัวอย่าง:

สมมติว่าเรามี username ชื่อ postgres, database ชื่อ mydatabase และ PostgreSQL Server อยู่บนเครื่องของเราเอง (localhost) เราสามารถเชื่อมต่อได้ด้วยคำสั่ง:

psql -U postgres -d mydatabase

เมื่อรันคำสั่งนี้ ระบบอาจถามรหัสผ่าน (password) ของผู้ใช้งาน postgres หากตั้งไว้ถูกต้อง เมื่อเชื่อมต่อสำเร็จ เราจะเห็น prompt เปลี่ยนเป็น mydatabase=# ซึ่งหมายความว่าเราพร้อมที่จะพิมพ์คำสั่ง SQL แล้ว

กรณีใช้งานจริง:

หากเราต้องการเชื่อมต่อกับ PostgreSQL Server ที่อยู่บนเครื่องอื่น เช่น Server ที่มี IP address เป็น 192.168.1.100 และ port เป็น 5432 เราสามารถใช้คำสั่ง:

psql -U postgres -d mydatabase -h 192.168.1.100 -p 5432

ข้อผิดพลาดที่พบบ่อย:

  • "psql: error: connection to server at "localhost" (::1), port 5432 failed: Connection refused": ข้อผิดพลาดนี้มักเกิดจาก PostgreSQL Server ไม่ได้รันอยู่ หรือ firewall บล็อกการเชื่อมต่อ ให้ตรวจสอบว่า PostgreSQL Server รันอยู่ และ firewall อนุญาตให้เชื่อมต่อ port 5432
  • "psql: error: FATAL: password authentication failed for user "username"": รหัสผ่านที่ใส่ไม่ถูกต้อง ตรวจสอบรหัสผ่านให้ถูกต้อง หรือ reset รหัสผ่าน
  • "psql: error: FATAL: database "databasename" does not exist": Database ที่ระบุไม่มีอยู่ ตรวจสอบชื่อ database ให้ถูกต้อง หรือสร้าง database ใหม่

คำสั่ง SQL พื้นฐาน

เมื่อเชื่อมต่อกับ psql ได้แล้ว เราก็สามารถเริ่มใช้งานคำสั่ง SQL พื้นฐานได้เลย

1. SELECT: ดึงข้อมูล

คำสั่ง SELECT ใช้เพื่อดึงข้อมูลจากตาราง (table) ในฐานข้อมูล

รูปแบบคำสั่งพื้นฐาน:

SELECT column1, column2, ... FROM tablename WHERE condition;

ตัวอย่าง:

สมมติว่าเรามีตารางชื่อ customers ที่มี column ชื่อ id, name และ email เราสามารถดึงข้อมูลทั้งหมดจากตารางนี้ได้ด้วยคำสั่ง:

SELECT * FROM customers;

หากต้องการดึงเฉพาะ column name และ email เราสามารถใช้คำสั่ง:

SELECT name, email FROM customers;

หากต้องการดึงข้อมูลเฉพาะลูกค้าที่มี id เท่ากับ 1 เราสามารถใช้คำสั่ง:

SELECT * FROM customers WHERE id = 1;

2. INSERT: เพิ่มข้อมูล

คำสั่ง INSERT ใช้เพื่อเพิ่มข้อมูลใหม่ลงในตาราง

รูปแบบคำสั่งพื้นฐาน:

INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);

ตัวอย่าง:

หากต้องการเพิ่มลูกค้าใหม่ลงในตาราง customers โดยมี name เป็น 'John Doe' และ email เป็น 'john.doe@example.com' เราสามารถใช้คำสั่ง:

INSERT INTO customers (name, email) VALUES ('John Doe', 'john.doe@example.com');

3. UPDATE: แก้ไขข้อมูล

คำสั่ง UPDATE ใช้เพื่อแก้ไขข้อมูลที่มีอยู่แล้วในตาราง

รูปแบบคำสั่งพื้นฐาน:

UPDATE tablename SET column1 = value1, column2 = value2, ... WHERE condition;

ตัวอย่าง:

หากต้องการแก้ไข email ของลูกค้าที่มี id เท่ากับ 1 เป็น 'new.email@example.com' เราสามารถใช้คำสั่ง:

UPDATE customers SET email = 'new.email@example.com' WHERE id = 1;

4. DELETE: ลบข้อมูล

คำสั่ง DELETE ใช้เพื่อลบข้อมูลออกจากตาราง

รูปแบบคำสั่งพื้นฐาน:

DELETE FROM tablename WHERE condition;

ตัวอย่าง:

หากต้องการลบลูกค้าที่มี id เท่ากับ 1 ออกจากตาราง customers เราสามารถใช้คำสั่ง:

DELETE FROM customers WHERE id = 1;

ข้อควรระวัง: หากไม่ระบุ WHERE clause ในคำสั่ง DELETE ข้อมูลทั้งหมดในตารางจะถูกลบ!

การสร้างและจัดการฐานข้อมูลและตาราง

นอกจากการใช้งานคำสั่ง SQL พื้นฐานแล้ว psql ยังช่วยให้เราสามารถสร้างและจัดการฐานข้อมูลและตารางได้

การสร้างฐานข้อมูล

รูปแบบคำสั่ง:

CREATE DATABASE databasename;

ตัวอย่าง:

หากต้องการสร้างฐานข้อมูลชื่อ mydatabase เราสามารถใช้คำสั่ง:

CREATE DATABASE mydatabase;

การสร้างตาราง

รูปแบบคำสั่ง:

CREATE TABLE tablename (
  column1 datatype constraints,
  column2 datatype constraints,
  ...
);

ตัวอย่าง:

หากต้องการสร้างตาราง customers ที่มี column id (integer, primary key), name (varchar(255)), และ email (varchar(255)) เราสามารถใช้คำสั่ง:

CREATE TABLE customers (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255),
  email VARCHAR(255)
);

คำอธิบาย:

  • SERIAL: เป็น datatype ที่สร้างลำดับตัวเลขให้อัตโนมัติ เหมาะสำหรับ primary key
  • PRIMARY KEY: ระบุว่า column นี้เป็น primary key ของตาราง
  • VARCHAR(255): เป็น datatype สำหรับเก็บข้อความ (string) ที่มีความยาวไม่เกิน 255 ตัวอักษร

การลบตาราง

รูปแบบคำสั่ง:

DROP TABLE tablename;

ตัวอย่าง:

หากต้องการลบตาราง customers เราสามารถใช้คำสั่ง:

DROP TABLE customers;

ข้อควรระวัง: คำสั่ง DROP TABLE จะลบตารางอย่างถาวร ไม่สามารถกู้คืนได้!

สรุป

ในบทนี้ เราได้เรียนรู้วิธีการเชื่อมต่อกับ PostgreSQL Server ผ่าน psql และใช้งานคำสั่ง SQL พื้นฐาน รวมถึงการสร้างและจัดการฐานข้อมูลและตาราง การฝึกฝนใช้งาน psql จะช่วยให้คุณเข้าใจการทำงานของ PostgreSQL ได้อย่างลึกซึ้งยิ่งขึ้น ในบทต่อไป เราจะมาเรียนรู้เกี่ยวกับ Data Types ใน PostgreSQL ซึ่งเป็นพื้นฐานสำคัญในการออกแบบฐานข้อมูลที่มีประสิทธิภาพ

Office.in.th Custom Service

ต้องการพัฒนาระบบหรือปรับแต่งจากโครงสร้างนี้?

Office.in.th รับพัฒนาและออกแบบ Enterprise Web Application, API Integration และระบบบริหารงานภาครัฐ/เอกชน พร้อมการสนับสนุนระยะยาว

ดูบริการรับพัฒนาซอฟต์แวร์