PostgreSQL / psql командын мөр

psql командын мөр

psql бол PostgreSQL-тэй шууд харилцах командын мөрийн хэрэгсэл юм. Энэ нь хурдан, хүчирхэг бөгөөд бодит ажлын орчинд сервер дээр ажиллахад хэрэглэдэг гол хэрэгсэл юм. Эхлээд харахад хэцүү мэт санагдаж болно — гэхдээ хэдхэн командыг цээжилбэл бүх зүйл хялбар болно.

psql-д холбогдох

Үндсэн холболтын команд:

bash
psql -U postgres

Тодорхой өгөгдлийн сан руу шууд холбогдох:

bash
psql -U postgres -d mydb

Алсын серверт холбогдох (host, port зааж):

bash
psql -U postgres -h localhost -p 5432 -d mydb

Амжилттай холбогдсоны дараа prompt нь ийм харагдана:

код
postgres=#

Тодорхой өгөгдлийн сан сонгосон бол:

код
mydb=#

Мета командууд (-командууд)

psql\ тэмдгээр эхэлдэг тусгай командууд байдаг. Эдгээр нь SQL биш — зөвхөн psql дотор ажилладаг.

| Команд | Тайлбар | |--------|---------| | \l | Бүх өгөгдлийн санг жагсаах | | \c dbname | Өгөгдлийн сан солих | | \dt | Одоогийн DB-ийн хүснэгтүүдийг жагсаах | | \d tablename | Хүснэгтийн бүтцийг харах | | \du | Хэрэглэгчдийг жагсаах | | \timing | Query-н гүйцэтгэх хугацааг харуулах | | \e | Гадаад editor нээх | | \i file.sql | SQL файлаас ажиллуулах | | \q | Гарах |

Жишээ нь бүх өгөгдлийн санг харах:

код
postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    
-----------+----------+----------+-------------+-------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8

SQL командууд ажиллуулах

psql дотор SQL бичээд Enter дарвал ажиллана. Гэхдээ SQL нь ; цэгтэй таслалаар дуусах ёстой — үүнийг мартвал команд дуусаагүй гэж үзнэ.

sql
SELECT version();

Хариу:

код
                          version                           
-----------------------------------------------------------
 PostgreSQL 17.2 on x86_64-pc-linux-gnu, compiled by gcc
(1 row)

Олон мөрт SQL бичихэд psql дуусаагүй гэж хүлээнэ (-# гарч ирнэ):

sql
SELECT
  current_date,
  current_time;

Тохиромжтой заль мэх

Өмнөх командыг дахин ажиллуулах:

код
\g

Командын түүхийг харах:

код
\s

Гаралтыг файлд хадгалах:

sql
\o result.txt
SELECT * FROM users;
\o

Хэвлэх форматыг өөрчлөх (\x — expanded mode):

код
\x
SELECT * FROM users LIMIT 1;

Expanded mode дахь гаралт:

код
-[ RECORD 1 ]--+--------------------
id             | 1
нэр            | Болд
имэйл          | bold@example.com

Мэдээлэл олон баганатай үед \x маш хэрэгтэй.

Алдааг уншиж сурах

psql алдаа гарвал мессеж харуулна. Жишээ нь:

sql
SELECT * FROM байхгүй_хүснэгт;
код
ERROR:  relation "байхгүй_хүснэгт" does not exist
LINE 1: SELECT * FROM байхгүй_хүснэгт;

relation гэдэг нь PostgreSQL-д "хүснэгт" гэсэн утгатай. Алдааны мессежийг анхааралтай уншвал ямар мөрт, ямар асуудал байгааг ойлгоно.

Дараагийн хичээлд:

Шинэ өгөгдлийн сан үүсгэж, дотор нь хүснэгт нэмж, бодит мэдээлэл хадгалж эхэлнэ.