{"id":10353,"date":"2025-10-07T15:43:42","date_gmt":"2025-10-07T08:43:42","guid":{"rendered":"https:\/\/www.jetorbit.com\/panduan\/?p=10353"},"modified":"2025-10-07T16:43:02","modified_gmt":"2025-10-07T09:43:02","slug":"cheatsheet-postgresql-yang-wajib-kamu-ketahui","status":"publish","type":"post","link":"https:\/\/www.jetorbit.com\/panduan\/cheatsheet-postgresql-yang-wajib-kamu-ketahui\/","title":{"rendered":"Cheatsheet PostgreSQL yang Wajib Kamu Ketahui"},"content":{"rendered":"\n<p>PostgreSQL adalah salah satu sistem manajemen basis data relasional (RDBMS) open-source yang paling populer dan powerful di dunia. Dikenal dengan kehandalannya, fitur-fitur canggih, dan dukungan untuk berbagai tipe data, PostgreSQL telah menjadi pilihan utama bagi banyak developer dan perusahaan besar. Dalam artikel ini, kami akan membagikan cheatsheet PostgreSQL yang komprehensif untuk membantu Anda dalam mengelola database dengan lebih efisien.<\/p>\n\n\n\n<p>Mengapa Cheatsheet PostgreSQL Penting?<\/p>\n\n\n\n<p>Cheatsheet PostgreSQL sangat berguna bagi developer, database administrator, dan DevOps engineer yang bekerja dengan database setiap hari. Dengan memiliki referensi cepat tentang perintah-perintah penting, Anda dapat menghemat waktu dan meningkatkan produktivitas. Baik Anda seorang pemula yang baru belajar PostgreSQL atau seorang profesional berpengalaman, cheatsheet ini akan menjadi panduan praktis yang sangat membantu.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\nKoneksi ke PostgreSQL\n<\/ol>\n\n\n\n<p>Sebelum mulai bekerja dengan PostgreSQL, Anda perlu tahu cara terhubung ke database server:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">psql -U username -d database_name -h hostname -p port<\/code><\/pre>\n\n\n\n<p>Koneksi menggunakan psql:<\/p>\n\n\n\n<p>Keluar dari psql:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">\\q\n\\quit<\/code><\/pre>\n\n\n\n<p>Koneksi dengan password:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">psql -U username -W<\/code><\/pre>\n\n\n\n<p>Melihat daftar database:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">\\l\n\\list<\/code><\/pre>\n\n\n\n<p>Beralih ke database lain:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">\\c database_name<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\nOperasi Database Dasar\n<\/ol>\n\n\n\n<p>Membuat Database Baru<\/p>\n\n\n\n<p>Untuk membuat database baru di PostgreSQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">CREATE DATABASE nama_database;<\/code><\/pre>\n\n\n\n<p>Membuat database dengan encoding tertentu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">CREATE DATABASE nama_database ENCODING 'UTF8';<\/code><\/pre>\n\n\n\n<p>Menghapus Database<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DROP DATABASE nama_database;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DROP DATABASE IF EXISTS nama_database;<\/code><\/pre>\n\n\n\n<p>Melihat Informasi Database<\/p>\n\n\n\n<p>Melihat database yang sedang digunakan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT current_database();<\/code><\/pre>\n\n\n\n<p>Melihat ukuran database:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT pg_size_pretty(pg_database_size('nama_database'));<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\nOperasi Tabel\n<\/ol>\n\n\n\n<p>Membuat Tabel<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">CREATE TABLE users (\nid SERIAL PRIMARY KEY,\nusername VARCHAR(50) UNIQUE NOT NULL,\nemail VARCHAR(100) UNIQUE NOT NULL,\ncreated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);<\/code><\/pre>\n\n\n\n<p>Melihat Struktur Tabel<\/p>\n\n\n\n<p>Menampilkan deskripsi tabel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">\\d nama_tabel<\/code><\/pre>\n\n\n\n<p>Melihat semua tabel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">\\dt<\/code><\/pre>\n\n\n\n<p>Melihat detail lengkap tabel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">\\d+ nama_tabel<\/code><\/pre>\n\n\n\n<p>Mengubah Tabel<\/p>\n\n\n\n<p>Menambah kolom baru:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">ALTER TABLE users ADD COLUMN phone VARCHAR(20);<\/code><\/pre>\n\n\n\n<p>Menghapus kolom:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">ALTER TABLE users DROP COLUMN phone;<\/code><\/pre>\n\n\n\n<p>Mengubah tipe data kolom:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">ALTER TABLE users ALTER COLUMN username TYPE VARCHAR(100);<\/code><\/pre>\n\n\n\n<p>Menambah constraint:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">ALTER TABLE users ADD CONSTRAINT check_email CHECK (email LIKE '%@%');<\/code><\/pre>\n\n\n\n<p>Menghapus Tabel<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DROP TABLE nama_tabel;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DROP TABLE IF EXISTS nama_tabel CASCADE;<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\nManipulasi Data (CRUD Operations)\n<\/ol>\n\n\n\n<p>INSERT &#8211; Menambah Data<\/p>\n\n\n\n<p>Menambah satu baris:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');<\/code><\/pre>\n\n\n\n<p>Menambah multiple baris:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">INSERT INTO users (username, email) VALUES\n('user1', 'user1@example.com'),\n('user2', 'user2@example.com'),\n('user3', 'user3@example.com');<\/code><\/pre>\n\n\n\n<p>Insert dengan return:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">INSERT INTO users (username, email) VALUES ('jane', 'jane@example.com') RETURNING id;<\/code><\/pre>\n\n\n\n<p>SELECT &#8211; Membaca Data<\/p>\n\n\n\n<p>Select semua data:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT * FROM users;<\/code><\/pre>\n\n\n\n<p>Select kolom tertentu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT username, email FROM users;<\/code><\/pre>\n\n\n\n<p>Select dengan kondisi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT * FROM users WHERE id = 1;<\/code><\/pre>\n\n\n\n<p>Select dengan multiple kondisi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT * FROM users WHERE username = 'john_doe' AND email LIKE '%@example.com';<\/code><\/pre>\n\n\n\n<p>Select dengan sorting:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT * FROM users ORDER BY created_at DESC;<\/code><\/pre>\n\n\n\n<p>Select dengan limit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT * FROM users LIMIT 10 OFFSET 0;<\/code><\/pre>\n\n\n\n<p>UPDATE &#8211; Mengubah Data<\/p>\n\n\n\n<p>Update satu kolom:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">UPDATE users SET email = 'newemail@example.com' WHERE id = 1;<\/code><\/pre>\n\n\n\n<p>Update multiple kolom:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">UPDATE users SET username = 'new_username', email = 'new@example.com' WHERE id = 1;<\/code><\/pre>\n\n\n\n<p>Update dengan return:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">UPDATE users SET email = 'updated@example.com' WHERE id = 1 RETURNING *;<\/code><\/pre>\n\n\n\n<p>DELETE &#8211; Menghapus Data<\/p>\n\n\n\n<p>Hapus dengan kondisi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DELETE FROM users WHERE id = 1;<\/code><\/pre>\n\n\n\n<p>Hapus semua data:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DELETE FROM users;<\/code><\/pre>\n\n\n\n<p>Hapus dengan return:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DELETE FROM users WHERE id = 1 RETURNING *;<\/code><\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\nQuery Lanjutan\n<\/ol>\n\n\n\n<p>JOIN Operations<\/p>\n\n\n\n<p>INNER JOIN:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT users.username, orders.order_date\nFROM users\nINNER JOIN orders ON users.id = orders.user_id;<\/code><\/pre>\n\n\n\n<p>LEFT JOIN:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT users.username, orders.order_date\nFROM users\nLEFT JOIN orders ON users.id = orders.user_id;<\/code><\/pre>\n\n\n\n<p>RIGHT JOIN:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT users.username, orders.order_date\nFROM users\nRIGHT JOIN orders ON users.id = orders.user_id;<\/code><\/pre>\n\n\n\n<p>FULL OUTER JOIN:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT users.username, orders.order_date\nFROM users\nFULL OUTER JOIN orders ON users.id = orders.user_id;<\/code><\/pre>\n\n\n\n<p>Subqueries<\/p>\n\n\n\n<p>Subquery di WHERE:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE total &gt; 1000);<\/code><\/pre>\n\n\n\n<p>Subquery di SELECT:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT username, (SELECT COUNT(*) FROM orders WHERE orders.user_id = users.id) as order_count FROM users;<\/code><\/pre>\n\n\n\n<p>Aggregate Functions<\/p>\n\n\n\n<p>COUNT:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT COUNT(*) FROM users;<\/code><\/pre>\n\n\n\n<p>SUM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT SUM(total) FROM orders;<\/code><\/pre>\n\n\n\n<p>AVG:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT AVG(total) FROM orders;<\/code><\/pre>\n\n\n\n<p>MAX dan MIN:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT MAX(total), MIN(total) FROM orders;<\/code><\/pre>\n\n\n\n<p>GROUP BY:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT user_id, COUNT(*) as order_count FROM orders GROUP BY user_id;<\/code><\/pre>\n\n\n\n<p>HAVING:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">SELECT user_id, COUNT(*) as order_count FROM orders GROUP BY user_id HAVING COUNT(*) &gt; 5;<\/code><\/pre>\n\n\n\n<p>Indexes<\/p>\n\n\n\n<p>Membuat index:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">CREATE INDEX idx_username ON users(username);<\/code><\/pre>\n\n\n\n<p>Membuat unique index:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">CREATE UNIQUE INDEX idx_email ON users(email);<\/code><\/pre>\n\n\n\n<p>Membuat index untuk multiple kolom:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">CREATE INDEX idx_name_email ON users(username, email);<\/code><\/pre>\n\n\n\n<p>Melihat index:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">\\di<\/code><\/pre>\n\n\n\n<p>Menghapus index:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DROP INDEX idx_username;<\/code><\/pre>\n\n\n\n<ol start=\"6\" class=\"wp-block-list\">\nUser Management dan Permissions\n<\/ol>\n\n\n\n<p>Membuat User<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">CREATE USER username WITH PASSWORD 'password';<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">CREATE USER username WITH ENCRYPTED PASSWORD 'password';<\/code><\/pre>\n\n\n\n<p>Mengubah Password User<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">ALTER USER username WITH PASSWORD 'new_password';<\/code><\/pre>\n\n\n\n<p>Memberikan Privileges<\/p>\n\n\n\n<p>Grant all privileges pada database:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">GRANT ALL PRIVILEGES ON DATABASE database_name TO username;<\/code><\/pre>\n\n\n\n<p>Grant privileges pada tabel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">GRANT SELECT, INSERT, UPDATE ON TABLE table_name TO username;<\/code><\/pre>\n\n\n\n<p>Grant privileges pada schema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">GRANT ALL ON SCHEMA public TO username;<\/code><\/pre>\n\n\n\n<p>Mencabut Privileges<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">REVOKE ALL PRIVILEGES ON DATABASE database_name FROM username;<\/code><\/pre>\n\n\n\n<p>Melihat User dan Role<\/p>\n\n\n\n<p>Melihat semua user:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">\\du<\/code><\/pre>\n\n\n\n<p>Menghapus User<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"html\" class=\"language-html\">DROP USER username;<\/code><\/pre>\n\n\n<p><!-- wp:list {\"ordered\":true,\"start\n<\/p>","protected":false},"excerpt":{"rendered":"<p>PostgreSQL adalah salah satu sistem manajemen basis data relasional (RDBMS) open-source yang paling populer dan powerful di dunia. Dikenal dengan kehandalannya, fitur-fitur canggih, dan dukungan untuk berbagai tipe data, PostgreSQL telah menjadi pilihan utama bagi banyak developer dan perusahaan besar. Dalam artikel ini, kami akan membagikan cheatsheet PostgreSQL yang komprehensif untuk membantu Anda dalam mengelola [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2809,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[752],"tags":[759,742,758,760],"class_list":["post-10353","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-cheatsheet","tag-database","tag-postgresql","tag-sql"],"_links":{"self":[{"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/posts\/10353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/comments?post=10353"}],"version-history":[{"count":4,"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/posts\/10353\/revisions"}],"predecessor-version":[{"id":10360,"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/posts\/10353\/revisions\/10360"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/media\/2809"}],"wp:attachment":[{"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/media?parent=10353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/categories?post=10353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jetorbit.com\/panduan\/wp-json\/wp\/v2\/tags?post=10353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}