PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara membuat dan menghapus database dan tabel di PostgreSQL


Pengantar

PostgreSQL dan sistem manajemen basis data relasional lainnya menggunakan database dan tabel untuk menyusun dan mengatur data mereka. Kami dapat meninjau definisi kedua istilah tersebut dengan cepat:

  • database: pisahkan kumpulan struktur dan data yang berbeda satu sama lain
  • tabel: mendefinisikan struktur data dan menyimpan nilai data aktual dalam database

Di PostgreSQL, ada juga objek perantara antara database dan tabel yang disebut skema :

  • skema: namespace dalam database yang berisi tabel, indeks, tampilan, dan item lainnya.

Panduan ini tidak akan membahas secara langsung konsep skema PostgreSQL, tetapi ada baiknya mengetahui bahwa itu ada di sana.

Sebagai gantinya, kami akan berfokus pada cara membuat dan menghancurkan database dan tabel PostgreSQL. Contoh utamanya akan menggunakan SQL, tetapi menjelang akhir, kami akan menunjukkan kepada Anda bagaimana melakukan beberapa tugas ini menggunakan baris perintah. Alternatif ini menggunakan alat yang disertakan dalam instalasi PostgreSQL standar yang tersedia jika Anda memiliki akses administratif ke host PostgreSQL.

Beberapa pernyataan yang tercakup dalam panduan ini, khususnya CREATE TABLE PostgreSQL pernyataan, memiliki banyak opsi tambahan yang berada di luar cakupan artikel ini. Jika Anda menginginkan informasi tambahan, cari tahu lebih lanjut dengan melihat dokumentasi resmi PostgreSQL.



Prasyarat

Untuk mengikuti panduan ini, Anda harus masuk ke instance PostgreSQL dengan pengguna dengan hak administratif menggunakan psql klien baris perintah. Instance PostgreSQL Anda dapat diinstal secara lokal, jarak jauh, atau disediakan oleh penyedia.

Secara khusus, pengguna PostgreSQL Anda akan membutuhkan CREATE DB hak istimewa atau menjadi Superuser , yang dapat Anda periksa dengan \du meta-perintah di psql :

\du
                                   List of roles Role name |                         Attributes                         | Member of-----------+------------------------------------------------------------+----------- postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

postgres superuser, yang dibuat secara otomatis saat penginstalan, memiliki hak istimewa yang diperlukan, tetapi Anda dapat menggunakan pengguna mana pun dengan Create DB hak istimewa.



Buat database baru

Setelah Anda terhubung ke instance PostgreSQL Anda menggunakan psql atau klien SQL lainnya, Anda dapat membuat database menggunakan SQL.

Sintaks dasar untuk membuat database adalah:

CREATE DATABASE db_name;

Ini akan membuat database bernama db_name di server saat ini dengan pengguna saat ini ditetapkan sebagai pemilik database baru menggunakan pengaturan database default. Anda dapat melihat properti dari template1 default template menggunakan psql berikut ini meta-perintah:

\l template1
                                  List of databases   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges-----------+----------+----------+-------------+-------------+----------------------- template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +           |          |          |             |             | postgres=CTc/postgres(1 row)

Anda dapat menambahkan parameter tambahan untuk mengubah cara database Anda dibuat. Ini adalah beberapa opsi umum:

  • ENKODE: menyetel pengkodean karakter untuk database.
  • LC_COLLATE: menyetel kolasi , atau mengurutkan, mengurutkan database. Ini adalah opsi pelokalan yang menentukan cara item diatur saat dipesan.
  • LC_CTYPE: menetapkan klasifikasi karakter untuk database baru. Ini adalah opsi pelokalan yang memengaruhi karakter yang dianggap sebagai huruf besar, huruf kecil, dan angka.

Ini dapat membantu memastikan bahwa database dapat menyimpan data dalam format yang Anda rencanakan untuk didukung dan dengan preferensi pelokalan proyek Anda.

Misalnya, untuk memastikan bahwa database Anda dibuat dengan dukungan Unicode dan untuk mengganti lokal server sendiri untuk menggunakan lokalisasi bahasa Inggris Amerika (ini semua kebetulan cocok dengan nilai dalam template1 ditunjukkan di atas, sehingga tidak ada perubahan yang benar-benar terjadi), Anda dapat mengetik:

CREATE DATABASE db_name  ENCODING 'UTF8'  LC_COLLATE 'en_US.UTF-8'  LC_CTYPE 'en_US.UTF-8';

Untuk mengikuti contoh dalam panduan ini, buat database bernama school menggunakan pengaturan lokal default instance Anda dan pengkodean karakter UTF8:

CREATE DATABASE school ENCODING 'UTF8';

Ini akan membuat database baru Anda menggunakan spesifikasi yang Anda berikan.



Mencantumkan database yang ada

Untuk menentukan database apa yang saat ini tersedia di server atau cluster Anda, Anda dapat menggunakan pernyataan SQL berikut:

SELECT datname FROM pg_database;

Ini akan mencantumkan setiap database yang saat ini ditentukan dalam lingkungan:

  datname----------- _dodb template1 template0 defaultdb school(5 rows)

Seperti yang disebutkan sebelumnya, jika Anda terhubung menggunakan psql klien, Anda juga bisa mendapatkan informasi ini \l meta-perintah:

\l

Ini akan menampilkan nama database yang tersedia bersama dengan pemiliknya, pengkodean, pengaturan lokal, dan hak istimewa:

                                  List of databases   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges-----------+----------+----------+-------------+-------------+----------------------- _dodb     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | defaultdb | doadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | school    | doadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +           |          |          |             |             | postgres=CTc/postgres template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +           |          |          |             |             | postgres=CTc/postgres(5 rows)

school database yang kita buat ditampilkan di antara database lain pada sistem. Ini adalah cara yang baik untuk mendapatkan gambaran umum tentang database dalam server atau cluster Anda.



Buat tabel dalam database

Setelah membuat satu atau beberapa database, Anda dapat mulai menentukan tabel untuk menyimpan data Anda. Tabel terdiri dari nama dan skema yang ditentukan yang menentukan bidang dan tipe data yang harus berisi setiap record.


PostgreSQL CREATE TABLE sintaks

Anda dapat membuat tabel menggunakan CREATE TABLE penyataan. Sintaks dasar yang disederhanakan untuk perintah terlihat seperti berikut:

CREATE TABLE table_name (    column_name TYPE [column_constraint],    [table_constraint,]);

Komponen sintaks di atas meliputi:

  • CREATE TABLE table_name :Pernyataan pembuatan dasar yang menandakan bahwa Anda ingin mendefinisikan sebuah tabel. table_name placeholder harus diganti dengan nama tabel yang ingin Anda gunakan.
  • column_name TYPE :Mendefinisikan kolom dasar dalam tabel. column_name placeholder harus diganti dengan nama yang ingin Anda gunakan untuk kolom Anda. TYPE menentukan tipe data PostgreSQL untuk kolom. Data yang disimpan dalam tabel harus sesuai dengan struktur kolom dan tipe data kolom yang akan diterima.
  • column_constraint :Batasan kolom adalah batasan opsional untuk menambahkan batasan lebih lanjut pada data yang dapat disimpan di kolom. Misalnya, Anda dapat mewajibkan entri bukan nol, unik, atau bilangan bulat positif.
  • table_constraints :Batasan tabel mirip dengan batasan kolom tetapi melibatkan interaksi beberapa kolom. Misalnya, Anda dapat memiliki batasan tabel yang memeriksa bahwa DATE_OF_BIRTH sebelum DATE_OF_DEATH dalam sebuah tabel.


Buat tabel bersyarat dengan IF NOT EXISTS klausa

Secara default, jika Anda mencoba membuat tabel di PostgreSQL yang sudah ada dalam database, kesalahan akan terjadi. Untuk mengatasi masalah ini jika Anda ingin membuat tabel jika tidak ada, tetapi lanjutkan jika sudah ada, Anda dapat menggunakan IF NOT EXISTS ayat. IF NOT EXISTS qualifier opsional yang memberi tahu PostgreSQL untuk mengabaikan pernyataan jika database sudah ada.

Untuk menggunakan IF NOT EXISTS klausa, masukkan ke dalam perintah setelah CREATE TABLE sintaks dan sebelum nama tabel:

CREATE TABLE IF NOT EXISTS table_name (    column_name TYPE [column_constraint],    [table_constraint,]);

Varian ini akan mencoba membuat tabel. Jika tabel dengan nama tersebut sudah ada dalam database yang ditentukan, PostgreSQL akan memberikan peringatan yang menunjukkan bahwa nama tabel sudah diambil alih-alih gagal dengan kesalahan.



Cara membuat tabel di PostgreSQL

Sintaks di atas sudah cukup untuk membuat tabel dasar. Sebagai contoh, kita akan membuat dua tabel di dalam school basis data. Satu tabel akan disebut supplies dan yang lainnya akan disebut teachers :

Dalam supplies tabel, kami ingin memiliki bidang berikut:

  • ID: ID unik untuk setiap jenis perlengkapan sekolah.
  • Nama: Nama item sekolah tertentu.
  • Deskripsi: Deskripsi singkat tentang item tersebut.
  • Produsen: Nama produsen barang.
  • Warna: Warna item.
  • Inventaris: Jumlah barang yang kami miliki untuk jenis perlengkapan sekolah tertentu. Ini tidak boleh kurang dari 0.

Kita dapat membuat supplies tabel dengan kualitas di atas menggunakan SQL berikut.

Pertama, ubah ke school database yang Anda buat dengan psql dengan mengetik:

\c school

Ini akan mengubah database yang akan menjadi target perintah kita di masa mendatang. Prompt Anda harus berubah untuk mencerminkan database.

Selanjutnya, buat supplies tabel dengan pernyataan berikut:

CREATE TABLE supplies (  id INT PRIMARY KEY,  name VARCHAR,  description VARCHAR,  manufacturer VARCHAR,  color VARCHAR,  inventory int CHECK (inventory > 0));

Ini akan membuat supplies tabel di dalam school basis data. PRIMARY KEY batasan kolom adalah batasan khusus yang digunakan untuk menunjukkan kolom yang secara unik dapat mengidentifikasi catatan dalam tabel. Dengan demikian, batasan menentukan bahwa kolom tidak boleh nol dan harus unik. PostgreSQL membuat indeks untuk kolom kunci utama guna meningkatkan kecepatan kueri.

Verifikasi bahwa tabel baru ada dengan mengetik:

\dt
          List of relations Schema |   Name   | Type  |  Owner  --------+----------+-------+--------- public | supplies | table | doadmin(1 row)

Verifikasi bahwa skema mencerminkan desain yang diinginkan dengan mengetik:

\d supplies
                      Table "public.supplies"    Column    |       Type        | Collation | Nullable | Default--------------+-------------------+-----------+----------+--------- id           | integer           |           | not null | name         | character varying |           |          | description  | character varying |           |          | manufacturer | character varying |           |          | color        | character varying |           |          | inventory    | integer           |           |          |Indexes:    "supplies_pkey" PRIMARY KEY, btree (id)Check constraints:    "supplies_inventory_check" CHECK (inventory > 0)

Kita bisa melihat masing-masing kolom dan tipe data yang kita tentukan. Batasan kolom yang kita definisikan untuk inventory kolom terdaftar menjelang akhir.

Selanjutnya, kita akan membuat teachers meja. Dalam tabel ini, kolom berikut harus ada:

  • Nomor Karyawan :Nomor identifikasi karyawan yang unik.
  • Nama depan :Nama depan guru.
  • Nama belakang :Nama belakang guru.
  • Subjek :Mata pelajaran yang direkrut guru untuk mengajar.
  • Tingkat kelas :Tingkat kelas siswa yang direkrut untuk mengajar.

Buat teachers tabel dengan skema di atas dengan SQL berikut:

CREATE TABLE teachers (  id INT PRIMARY KEY,  first_name VARCHAR,  last_name VARCHAR,  subject VARCHAR,  grade_level int);


Cara membuat tabel dengan kunci utama dan kunci asing

Anda dapat menemukan informasi tentang membuat tabel dengan kunci utama dan asing di beberapa panduan PostgreSQL kami yang lain. Kunci utama dan kunci asing keduanya merupakan jenis batasan basis data dalam PostgreSQL.

Kunci utama adalah kolom atau kolom khusus yang dijamin unik di seluruh baris dalam tabel yang sama. Semua kunci utama dapat digunakan untuk mengidentifikasi baris tertentu secara unik. Kunci utama tidak hanya memastikan bahwa setiap baris memiliki nilai unik untuk kolom kunci utama, tetapi juga memastikan bahwa tidak ada baris yang berisi NULL nilai untuk kolom itu. Seringkali, kunci utama di PostgreSQL menggunakan format berikut untuk menentukan kunci utama yang bertambah secara otomatis:id SERIAL PRIMARY KEY .

Kunci asing adalah cara untuk memastikan bahwa kolom atau kolom dalam satu tabel cocok dengan nilai yang terkandung dalam tabel lain. Ini membantu memastikan integritas referensial antar tabel.




Cara melihat tabel di PostgreSQL

Di PostgreSQL Anda dapat membuat daftar tabel dalam beberapa cara berbeda tergantung pada informasi apa yang Anda cari.

Jika Anda ingin melihat tabel apa yang tersedia dalam database Anda, Anda dapat menggunakan \dt meta-command disertakan dengan psql klien untuk membuat daftar semua tabel, seperti yang kami tunjukkan di atas:

\dt
          List of relations Schema |   Name   | Type  |  Owner--------+----------+-------+--------- public | supplies | table | doadmin public | teachers | table | doadmin(2 rows)

Anda juga dapat memeriksa apakah skema untuk tabel sesuai dengan spesifikasi Anda:

\d teachers
                     Table "public.teachers"   Column    |       Type        | Collation | Nullable | Default-------------+-------------------+-----------+----------+--------- id          | integer           |           | not null | first_name  | character varying |           |          | last_name   | character varying |           |          | subject     | character varying |           |          | grade_level | integer           |           |          |Indexes:    "teachers_pkey" PRIMARY KEY, btree (id)

teachers tabel tampaknya cocok dengan definisi kita.



Ubah tabel

Jika Anda perlu mengubah skema tabel yang ada di PostgreSQL, Anda dapat menggunakan ALTER TABLE memerintah. ALTER TABLE perintahnya sangat mirip dengan CREATE TABLE perintah, tetapi beroperasi pada tabel yang ada.


Mengubah sintaks tabel

Sintaks dasar untuk memodifikasi tabel di PostgreSQL terlihat seperti ini:

ALTER TABLE <table_name> <change_command> <change_parameters>

<change_command> menunjukkan jenis perubahan yang tepat yang ingin Anda buat, apakah itu melibatkan pengaturan opsi yang berbeda pada tabel, menambah atau menghapus kolom, atau mengubah jenis atau batasan. <change_parameters> bagian dari perintah berisi informasi tambahan apa pun yang dibutuhkan PostgreSQL untuk menyelesaikan perubahan.



Menambahkan kolom ke tabel

Anda dapat menambahkan kolom ke tabel PostgreSQL dengan ADD COLUMN ubah perintah. Parameter perubahan akan menyertakan nama kolom, jenis, dan opsi, seperti yang Anda tentukan di CREATE TABLE perintah.

Misalnya, untuk menambahkan kolom bernama missing_column dari text ketik ke tabel bernama some_table , Anda akan mengetik:

ALTER TABLE some_table ADD COLUMN missing_column text;


Menghapus kolom dari tabel

Sebaliknya, jika Anda ingin menghapus kolom yang ada, Anda dapat menggunakan DROP COLUMN perintah sebagai gantinya. Anda perlu menentukan nama kolom yang ingin Anda jatuhkan sebagai parameter perubahan:

ALTER TABLE some_table DROP COLUMN useless_column;


Mengubah tipe data kolom

Untuk mengubah tipe data yang digunakan PostgreSQL untuk kolom tertentu, Anda dapat menggunakan ALTER COLUMN ubah perintah dengan SET DATA TYPE perintah kolom. Parameternya termasuk nama kolom, tipe barunya, dan USING opsional klausa untuk menentukan bagaimana tipe lama harus dikonversi ke tipe baru.

Misalnya, untuk menetapkan nilai id kolom di resident tabel ke int menggunakan pemeran eksplisit, kita dapat mengetik yang berikut:

ALTER TABLE resident ALTER COLUMN id SET DATA TYPE int USING id::int;


Perubahan tabel lainnya

Banyak jenis perubahan lain yang dapat dicapai dengan ALTER TABLE memerintah. Untuk informasi lebih lanjut tentang opsi yang tersedia, lihat dokumentasi PostgreSQL resmi untuk ALTER TABLE .




Lepas tabel

Jika Anda ingin menghapus tabel, Anda dapat menggunakan DROP TABLE pernyataan SQL. Ini akan menghapus tabel serta semua data yang tersimpan di dalamnya.

Sintaks dasarnya terlihat seperti ini:

DROP TABLE table_name;

Ini akan menghapus tabel jika ada dan membuat kesalahan jika nama tabel tidak ada.

Jika Anda ingin menghapus tabel jika ada dan tidak melakukan apa pun jika tidak ada, Anda dapat menyertakan IF EXISTS kualifikasi dalam pernyataan:

DROP TABLE IF EXISTS table_name;

Tabel yang memiliki dependensi pada tabel atau objek lain tidak dapat dihapus secara default saat dependensi tersebut ada. Untuk menghindari kesalahan, Anda dapat secara opsional menyertakan CASCADE parameter, yang secara otomatis menghapus semua dependensi bersama dengan tabel:

DROP TABLE table_name CASCADE;

Jika ada tabel yang memiliki kunci asing batasan, yang mereferensikan tabel yang Anda hapus, batasan itu akan dihapus secara otomatis.

Hapus supplies tabel yang kita buat tadi dengan mengetik:

DROP TABLE supplies;

Kami akan menjaga teachers database untuk menunjukkan bahwa pernyataan untuk menghapus database juga menghapus semua objek anak seperti tabel.



Lepaskan database

DROP DATABASE pernyataan memberitahu PostgreSQL untuk menghapus database yang ditentukan. Sintaks dasarnya terlihat seperti ini:

DROP DATABASE database_name;

Ganti database_name placeholder dengan nama database yang ingin Anda hapus. Ini akan menghapus database jika ditemukan. Jika database tidak dapat ditemukan, akan terjadi kesalahan:

DROP DATABASE some_database;
ERROR:  database "some_database" does not exist

Jika Anda ingin menghapus database jika ada dan tidak melakukan apa-apa, sertakan IF EXISTS opsional pilihan:

DROP DATABASE IF EXISTS some_database;
NOTICE:  database "some_database" does not exist, skippingDROP DATABASE

Ini akan menghapus database atau tidak melakukan apa pun jika tidak dapat ditemukan.

Untuk menghapus school database yang kami gunakan dalam panduan ini, buat daftar database yang ada di sistem Anda:

\l
                                  List of databases   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges-----------+----------+----------+-------------+-------------+----------------------- _dodb     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | defaultdb | doadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | school    | doadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +           |          |          |             |             | postgres=CTc/postgres template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +           |          |          |             |             | postgres=CTc/postgres(5 rows)

Buka koneksi baru ke salah satu database yang tidak ingin Anda hapus:

\c defaultdb

Setelah koneksi baru terbuka, hapus school database dengan perintah berikut:

DROP DATABASE school;

Ini akan menghapus school database bersama dengan teachers tabel yang ditentukan di dalamnya.

Jika Anda telah mengikuti menggunakan SQL, Anda dapat mengakhiri di sini atau melompat ke kesimpulan. Jika Anda ingin mempelajari tentang cara membuat dan menghapus database dari baris perintah, lanjutkan ke bagian berikutnya.



Menggunakan alat baris perintah administratif untuk membuat dan menghapus database

Jika Anda memiliki akses shell ke server atau cluster tempat PostgreSQL diinstal, Anda mungkin memiliki akses ke beberapa alat baris perintah tambahan yang dapat membantu membuat dan menghapus database. createdb dan dropdb perintah dibundel dengan PostgreSQL saat diinstal.


Buat database baru dari baris perintah

Sintaks dasar untuk createdb perintah (yang harus dijalankan oleh pengguna sistem dengan akses admin ke PostgreSQL) adalah:

createdb db_name

Ini akan membuat database bernama db_name dalam PostgreSQL menggunakan pengaturan default.

Perintah juga menerima opsi untuk mengubah perilakunya, seperti varian SQL yang Anda lihat sebelumnya. Anda dapat mengetahui lebih lanjut tentang opsi ini dengan man createdb . Beberapa opsi yang paling penting adalah:

  • --encoding= :menyetel pengkodean karakter untuk database.
  • --locale= :menyetel lokal untuk database.

Ini dapat membantu memastikan bahwa database dapat menyimpan data dalam format yang Anda rencanakan untuk didukung dan dengan preferensi pelokalan proyek Anda.

Misalnya, untuk memastikan bahwa database Anda dibuat dengan dukungan Unicode dan untuk mengganti lokal server sendiri untuk menggunakan lokalisasi bahasa Inggris Amerika, Anda dapat mengetik:

createdb --encoding=UTF8 --locale=en_US db_name

Dengan asumsi Anda memiliki izin yang benar, database akan dibuat sesuai dengan spesifikasi Anda.

Untuk mengikuti contoh dalam panduan ini, Anda dapat membuat database bernama school menggunakan lokal default dan pengkodean karakter UTF8 dengan mengetik:

createdb --encoding=UTF8 school

Anda kemudian dapat terhubung ke database menggunakan psql untuk menyiapkan tabel Anda seperti biasa.



Lepaskan database dari baris perintah

dropdb perintah mencerminkan DROP DATABASE pernyataan SQL. Ini memiliki sintaks dasar berikut:

dropdb database_name

Ubah database_name placeholder untuk mereferensikan database yang ingin Anda hapus.

Secara default, perintah ini akan menghasilkan kesalahan jika database yang ditentukan tidak dapat ditemukan. Untuk menghindari hal ini, Anda dapat menyertakan --if-exists opsional bendera:

dropdb --if-exists database_name

Ini akan menghapus database yang ditentukan jika ada. Jika tidak, itu tidak akan menghasilkan apa-apa.

Untuk menghapus school database yang kita buat tadi, ketik:

dropdb school

Ini akan menghapus database dan elemen turunan apa pun, seperti tabel, di dalamnya.




Kesimpulan

Artikel ini membahas dasar-dasar cara membuat dan menghapus database dan tabel di dalam PostgreSQL. Ini adalah beberapa perintah paling dasar yang diperlukan untuk menyiapkan sistem database dan mendefinisikan struktur data Anda.

Seperti disebutkan sebelumnya, pernyataan SQL yang tercakup dalam tutorial PostgreSQL ini, khususnya CREATE TABLE pernyataan, memiliki banyak parameter tambahan yang dapat digunakan untuk mengubah perilaku PostgreSQL. Anda dapat mengetahui lebih lanjut tentang ini dengan melihat dokumentasi resmi PostgreSQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengubah waktu tanggal menjadi nilai zaman unix di Postgres?

  2. bagaimana cara meniru insert abaikan dan pada pembaruan kunci duplikat (penggabungan sql) dengan postgresql?

  3. kesalahan perintah util alembic tidak dapat menemukan pengidentifikasi

  4. Mengapa akses array PostgreSQL jauh lebih cepat di C daripada di PL/pgSQL?

  5. Bagaimana make_interval() Bekerja di PostgreSQL