psql командын мөр
psql бол PostgreSQL-тэй шууд харилцах командын мөрийн хэрэгсэл юм. Энэ нь хурдан, хүчирхэг бөгөөд бодит ажлын орчинд сервер дээр ажиллахад хэрэглэдэг гол хэрэгсэл юм. Эхлээд харахад хэцүү мэт санагдаж болно — гэхдээ хэдхэн командыг цээжилбэл бүх зүйл хялбар болно.
psql-д холбогдох
Үндсэн холболтын команд:
psql -U postgres
Тодорхой өгөгдлийн сан руу шууд холбогдох:
psql -U postgres -d mydb
Алсын серверт холбогдох (host, port зааж):
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 нь ; цэгтэй таслалаар дуусах ёстой — үүнийг мартвал команд дуусаагүй гэж үзнэ.
SELECT version();
Хариу:
version
-----------------------------------------------------------
PostgreSQL 17.2 on x86_64-pc-linux-gnu, compiled by gcc
(1 row)
Олон мөрт SQL бичихэд psql дуусаагүй гэж хүлээнэ (-# гарч ирнэ):
SELECT
current_date,
current_time;
Тохиромжтой заль мэх
Өмнөх командыг дахин ажиллуулах:
\g
Командын түүхийг харах:
\s
Гаралтыг файлд хадгалах:
\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 алдаа гарвал мессеж харуулна. Жишээ нь:
SELECT * FROM байхгүй_хүснэгт;
ERROR: relation "байхгүй_хүснэгт" does not exist
LINE 1: SELECT * FROM байхгүй_хүснэгт;
relation гэдэг нь PostgreSQL-д "хүснэгт" гэсэн утгатай. Алдааны мессежийг анхааралтай уншвал ямар мөрт, ямар асуудал байгааг ойлгоно.
Дараагийн хичээлд:
Шинэ өгөгдлийн сан үүсгэж, дотор нь хүснэгт нэмж, бодит мэдээлэл хадгалж эхэлнэ.