{"id":31424931,"url":"https://github.com/arifuddincoder/postgresql","last_synced_at":"2025-09-30T04:40:16.865Z","repository":{"id":317171657,"uuid":"1066121609","full_name":"arifuddincoder/postgresql","owner":"arifuddincoder","description":"PostgreSQL Essential Shortcuts \u0026 Cheatsheet — psql meta-commands, CRUD, backup/restore, and Mac-friendly setup tips.","archived":false,"fork":false,"pushed_at":"2025-09-29T09:49:33.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-29T11:22:00.179Z","etag":null,"topics":["cheatsheet","macos","postgresql","psql","quickstart","sql","tutorial"],"latest_commit_sha":null,"homepage":"https://github.com/arifuddincoder/postgresql","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arifuddincoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-29T03:52:37.000Z","updated_at":"2025-09-29T09:49:37.000Z","dependencies_parsed_at":"2025-09-29T11:22:32.942Z","dependency_job_id":"3f840db5-b908-44a6-9586-4d47439c5f7d","html_url":"https://github.com/arifuddincoder/postgresql","commit_stats":null,"previous_names":["arifuddincoder/postgresql"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/arifuddincoder/postgresql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arifuddincoder%2Fpostgresql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arifuddincoder%2Fpostgresql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arifuddincoder%2Fpostgresql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arifuddincoder%2Fpostgresql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arifuddincoder","download_url":"https://codeload.github.com/arifuddincoder/postgresql/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arifuddincoder%2Fpostgresql/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277632346,"owners_count":25850732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-30T02:00:09.208Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cheatsheet","macos","postgresql","psql","quickstart","sql","tutorial"],"created_at":"2025-09-30T04:40:15.906Z","updated_at":"2025-09-30T04:40:16.857Z","avatar_url":"https://github.com/arifuddincoder.png","language":null,"readme":"# remembering: class: 7.4 Learning\n\n# PostgreSQL Essential Shortcuts \u0026 Cheatsheet (Mac-friendly)\n\n\u003e দ্রুত হাতে কলমে কাজের জন্য `psql` কমান্ড, মেটা-কমান্ড, সাধারণ SQL, ও ব্যাকআপ/রিস্টোর—সবচেয়ে দরকারি জিনিসগুলোর সংক্ষিপ্ত তালিকা।\n\n---\n\n## ##) Most-used Commands that I use\n\n```text\n\n# Login\npsql -h localhost -U postgres\n\n# pager to psql prompt\nq    \n\n# All database listings            \n\\l   \n\n# New database create\nCREATE DATABASE mydb OWNER postgres;                  \n\n# Clear input buffer\n\\r\n\n# See all users\n\\du\n\n\n# create User\ncreate user user1 with login encrypted password '123';\n\n# remove user \nDROP ROLE user1;\n\n# create table\ncreate table test_table (name varchar(50))\n\n# check table\n\\d  \n\n```\n\n---\n\n\n---\n\n## 0) Quick Setup (Mac)\n\n```bash\n# EnterpriseDB installer হলে (ধরা: v18)\necho 'export PATH=\"/Library/PostgreSQL/18/bin:$PATH\"' \u003e\u003e ~/.zshrc \u0026\u0026 source ~/.zshrc\n\n# Homebrew হলে (Apple Silicon)\nbrew install postgresql@16\necho 'export PATH=\"/opt/homebrew/opt/postgresql@16/bin:$PATH\"' \u003e\u003e ~/.zshrc \u0026\u0026 source ~/.zshrc\n\n# Postgres.app হলে\necho 'export PATH=\"$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin\"' \u003e\u003e ~/.zshrc \u0026\u0026 source ~/.zshrc\n```\n\u003e নোট: Intel Mac হলে Homebrew path সাধারণত `/usr/local/opt/postgresql@16/bin`।\n\n---\n\n## 1) Connect \u0026 Basics\n\n```bash\npsql --version\npsql -h localhost -U postgres           # postgres ইউজার দিয়ে\npsql -d mydb                             # ডাটাবেস নির্দিষ্ট করে\npsql \"postgresql://user:pass@localhost:5432/mydb\"  # URI\n```\n- `psql` থেকে বের হওয়া: `\\q`  \n- হেল্প: `\\?` (psql help), `\\h` (SQL command help)\n\n---\n\n## 2) Most-used psql Meta-commands\n\n```text\n\\l                  # ডাটাবেস লিস্ট\n\\c dbname           # ডাটাবেসে কানেক্ট\n\\dt                 # টেবিল লিস্ট (public schema)\n\\dt+                # টেবিল + সাইজ/ডিটেইল\n\\d table_name       # টেবিলের স্ট্রাকচার\n\\d+ table_name      # টেবিল + স্টোরেজ/ডিটেইল\n\\dn                 # স্কিমা লিস্ট\n\\du                 # রোল/ইউজার লিস্ট\n\\df                 # ফাংশন লিস্ট\n\\di                 # ইনডেক্স লিস্ট\n\\dv                 # ভিউ লিস্ট\n\\encoding           # এনকোডিং দেখায়/সেট করে\n\\conninfo           # কানেকশন ইনফো\n\\timing             # কুয়েরি টাইমিং টগল\n\\pset pager off     # লম্বা আউটপুটে পেজার বন্ধ\n\\watch 2            # শেষ কুয়েরি প্রতি 2 সেকেন্ডে রান\n\\! \u003ccmd\u003e            # শেল কমান্ড রান (যেমন \\! clear)\n\\copy table TO 'file.csv' CSV HEADER      # ক্লায়েন্ট-সাইড কপি\n\\copy table FROM 'file.csv' CSV HEADER    # CSV ইমপোর্ট\n```\n\n---\n\n## 3) User/Role \u0026 Database Management\n\n```sql\n-- সুপারইউজার তৈরি (টুল/অ্যাডমিনিস্ট্রেটিভ কাজের জন্য)\nCREATE ROLE myadmin WITH LOGIN PASSWORD 'secret' SUPERUSER;\n\n-- নরমাল ইউজার\nCREATE ROLE app_user WITH LOGIN PASSWORD 'secret' NOSUPERUSER;\n\n-- ডাটাবেস তৈরি ও মালিক সেট\nCREATE DATABASE mydb OWNER app_user;\n\n-- প্রিভিলেজ\nGRANT CONNECT ON DATABASE mydb TO app_user;\nGRANT USAGE ON SCHEMA public TO app_user;\nGRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;\n\n-- ভবিষ্যতের টেবিলগুলোর ডিফল্ট প্রিভিলেজ\nALTER DEFAULT PRIVILEGES IN SCHEMA public\nGRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user;\n\n-- পাসওয়ার্ড বদল\nALTER ROLE app_user WITH PASSWORD 'newpass';\n```\n\n---\n\n## 4) Table Essentials\n\n```sql\n-- টেবিল তৈরি\nCREATE TABLE users (\n  id BIGSERIAL PRIMARY KEY,\n  email TEXT UNIQUE NOT NULL,\n  name TEXT,\n  created_at TIMESTAMPTZ DEFAULT now()\n);\n\n-- ইনডেক্স\nCREATE INDEX idx_users_email ON users(email);\n\n-- আল্টার\nALTER TABLE users ADD COLUMN is_active BOOLEAN DEFAULT true;\n\n-- ড্রপ\nDROP TABLE IF EXISTS users CASCADE;\n```\n\n---\n\n## 5) CRUD Quickies\n\n```sql\n-- Insert\nINSERT INTO users (email, name) VALUES ('a@b.com', 'Alice') RETURNING id;\n\n-- Select\nSELECT id, email, name FROM users WHERE is_active = true ORDER BY id DESC LIMIT 10;\n\n-- Update\nUPDATE users SET name = 'A. Doe' WHERE email = 'a@b.com';\n\n-- Delete\nDELETE FROM users WHERE id = 10;\n```\n\n---\n\n## 6) Transactions\n\n```sql\nBEGIN;\n  UPDATE accounts SET balance = balance - 100 WHERE id = 1;\n  UPDATE accounts SET balance = balance + 100 WHERE id = 2;\nCOMMIT;\n\n-- সমস্যা হলে\nROLLBACK;\n```\n\n---\n\n## 7) Performance \u0026 Explain\n\n```sql\nEXPLAIN SELECT * FROM users WHERE email = 'a@b.com';\nEXPLAIN ANALYZE SELECT * FROM users WHERE email = 'a@b.com';\n\nVACUUM (VERBOSE, ANALYZE);\nANALYZE;   -- স্ট্যাটস আপডেট\n```\n\n---\n\n## 8) Backup \u0026 Restore (pg_dump / pg_restore)\n\n```bash\n# সম্পূর্ণ ডাটাবেস (SQL টেক্সট ডাম্প)\npg_dump -h localhost -U postgres -d mydb -F p \u003e mydb.sql\n\n# কাস্টম ফরম্যাট (কমপ্রেসড), পরে pg_restore\npg_dump -h localhost -U postgres -d mydb -F c -f mydb.dump\n\n# রিস্টোর (SQL)\npsql -h localhost -U postgres -d mydb -f mydb.sql\n\n# রিস্টোর (কাস্টম ডাম্প)\ncreatedb mydb_restored\npg_restore -h localhost -U postgres -d mydb_restored --verbose mydb.dump\n```\n\n---\n\n## 9) Service Control (Mac)\n\n```bash\n# EnterpriseDB ctl\nsudo /Library/PostgreSQL/18/bin/pg_ctl -D /Library/PostgreSQL/18/data status\nsudo /Library/PostgreSQL/18/bin/pg_ctl -D /Library/PostgreSQL/18/data start\nsudo /Library/PostgreSQL/18/bin/pg_ctl -D /Library/PostgreSQL/18/data stop\n\n# Homebrew\nbrew services list\nbrew services start postgresql@16\nbrew services stop postgresql@16\n```\n\n---\n\n## 10) Troubleshooting Quick Checks\n\n```bash\nwhich -a psql                 # psql কোথায় আছে?\npsql -l                       # ডাটাবেস তালিকা (কানেক্ট হলে)\n\\conninfo                     # psql-এর ভেতরে কানেকশন তথ্য\nSHOW data_directory;          # ডাটা ডিরেক্টরি\nSHOW port;                    # চলমান পোর্ট (ডিফল্ট 5432)\n```\n**Common issues**\n- `psql: command not found` → PATH ঠিক করো (উপরে 0 নম্বর সেকশন)  \n- `FATAL: password authentication failed` → ইউজার/পাস ঠিক আছে কিনা চেক, `pg_hba.conf` কনফিগ  \n- কানেক্ট না হলে: সার্ভিস চলছে কিনা দেখো (`pg_ctl status` / `brew services list`)\n\n---\n\n## 11) Handy SQL Snippets\n\n```sql\n-- ইউনিক কনফ্লিক্টে আপসার্ট\nINSERT INTO users (email, name)\nVALUES ('a@b.com', 'Alice')\nON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name;\n\n-- পেজিনেশন\nSELECT * FROM users ORDER BY id DESC LIMIT 10 OFFSET 20;\n\n-- JSON\nSELECT id, data-\u003e\u003e'title' AS title FROM articles WHERE (data-\u003e\u003e'published')::boolean = true;\n```\n\n---\n\n## 12) psql Quality-of-life\n\n```text\n\\set ECHO_HIDDEN on     # রান হওয়ার আগে এক্সপ্যান্ডেড কুয়েরি দেখায়\n\\pset format aligned    # সুন্দর টেবিল ফরম্যাট\n\\pset border 2\n\\gx                     # শেষ কুয়েরি আবার রান\n\\o out.txt              # আউটপুট ফাইলে\n\\o                      # আউটপুট ফাইল বন্ধ\n```\n\n---\n\n### লাইসেন্স\nএই চিটশিট যেখানে দরকার কপি–পেস্ট করে ব্যবহার করতে পারো। 👍\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farifuddincoder%2Fpostgresql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farifuddincoder%2Fpostgresql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farifuddincoder%2Fpostgresql/lists"}