คู่มือเอาตัวรอด :การใช้งาน PostgreSQL ผ่าน command line
iconnext
Posted on July 12, 2024
บทนำ
เคยไหม! ช่วงบ่าย 2 ในห้วงเวลาปลายเดือน ในขณะที่คุณกำลังจะเคลิ้มหลับเนื่องจากฤิทธิ์ข้าวเหนียวหมูปิ้งเมื่อมื้อกลางวัน เสียงโทรศัพท์จากหัวหน้า HR ปลุกวิญญาณให้ตื่นจากภวัง
ทาง HR แจ้งว่าไม่สามารถเข้าถึงข้อมูลพนักงานเพื่อที่จะคำนวณเงินเดือนของเดือนนี้ต้องการข้อมูลก่อนเลิกงาน เอาละสิจากพนักงานธรรมดากลายเป็นควมหวังของหมู่บ้านได้ทีนี้มีทางเลือกอะไรบ้าง
- เปิดจาก Application ไม่สามารถเชื่อมต่อ database ได้
- ติดตั้ง Database Management Application พวก pgAdmin , DBeaver, Navicat etc. ปรากฏว่า ขึ้นไม่สามารถเชื่อมต่อฐานข้อมูลได้
- ping ดูว่า server ไหม? ไม่ล่มแล้วไป เลยทดสอบ telnet (โบราณไป..) ssh ไปยัง server พบแต่หน้าจอดำๆ กับพิมพ์ได้อย่างเดียว แล้วไงต่อ การใช้ command line คือทางออก
psql คืออะไร
เป็นโปรแกรมสำหรับโต้ตอบกับฐานข้อมูล PostgreSQL โดยใช้คำสั่ง SQL
การใช้งาน
เข้าใช้งานด้วยคำสั่ง
$psql -U <username> -d <database> -W
เมื่อ
- username: ชื่อผู้ใช้งานใน postgres
- database: ชื่อฐานข้อมูลที่ต้องการเชื่อมต่อ
Tips พารามิเตอร์ที่เกี่ยวกับการเชื่อมต่อ
-h, --host=HOSTNAME: database server host or socket directory (ค่าเริ่มต้น: "local socket")
-d, --dbname=DBNAME: ฐานข้อมูลที่ต้องการเชื่อม(default: "root")
-p, --port=PORT:port ที่ใช้ในการเชื่อมต่อ (ค่าเริ่มต้น: "5432")
-U, --username=USERNAME: ชื่อผู้ใช้งาน (ค่าเริ่มต้น: "root")
-w, --no-password:ไม่ให้ขึ้น prompt ในการป้อนรหัสผ่าน
-W, --password: กำหนดให้ขึ้น prompt ในการป้อนรหัสผ่าน(ควรเกิดขึ้นอัติโนมัติ)
เมื่อเข้าสำเร็จจะแสดง prompt ของ postgres
postgres=#
ที่ postgres prompt ให้พิมพ์คำสั่ง
- \l ดู database ทั้งหมด
- \c <ชื่อฐานข้อมูล> เข้าใช้งานฐานข้อมูลที่ต้องการ
จะเปลี่ยนเป็น prompt เป็นชื่อฐานข้อมูลนั้น โดยเมื่ออยู่ใน prompt ของฐานข้อมูลแล้วเราสามารถใช้คำสั่ง SQL ในการจัดการข้อมูลในฐานข้อมูลนั้นได้ปรกติ
- \dt ดู table ทั้งหมดใน database ปัจจุบัน
- \dt+ ดู size และ description ของ table เพิ่มเติม
- \d <ชื่อตาราง> ดูโครงสร้างของตารางตามที่กำหนด
- \dv ดู view ทั้งหมด
- \df ดู function ทั้งหมด
- \dx ดู extension ที่ติดตั้งทั้งหมด
- \du ดู user ทั้งหมด
- \e ทำการเปิด editor เพื่อแก้ไข command(ต้องมีการกำหนดค่า$EDITOR environment variable)
- \s <ชื่อไฟล์> บันทึก comand ลง file ตามชื่อที่กำหนด
- ! clear สำหรับ clear หน้าจอ
- \h => Help
- \? ดูว่ามี command อะไรให้ใช้งานบ้าง
- \q ออก เลิกใช้งาน …
หมายเหตุ
กรณีที่เราใช้ \c ในการเข้า prompt ของฐานข้อมูลคำสั่งต่างๆ จะแสดงรายการเฉพาะฐานข้อมูลที่เลือก ในกรณีที่ยังไม่กำหนดฐานข้อมูลจะแสดงข้อมูลรายการของทั้ง postgres server
แถมท้าย
เราสามารถดึงข้อมูลพร้อมexport เป็นไฟล์ CSV ให้หัวหน้า HR นำไปใช้งานต่อ(เย้..เลิกงานพอดีและวันนี้ต้องมีคนทำ otและมีตรได้ฉลองเงินเดือนออก)
COPY (SELECT * FROM foo) To '/tmp/test.csv' With CSV DELIMITER ',' HEADER;
บทส่งท้าย
command line เป็นเครื่องมือในการจัดการฐานข้อมูลซึ่งไม่ได้มีเฉพาะใน postgres เท่านั้นฐานข้อมูลอื่นๆ ส่วนมี command line ในการบริหารจัดการฐานข้อมูลได้การที่เราสามารถใช้งานได้จะช่วยเพิ่มทางเลือกในการแก้ปัญหามากขึ้น นอกจากนี้เวลาผู้ใช้เห็นเราใช้ command line แก้ปัญหาจะทำให้ดูหล่อ ประดุจ hacker ในหนังแนวอาชญากรรมทางไซเบอร์ฏ็ไม่ปาน
Posted on July 12, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 29, 2024