পোস্টগ্রেস / পোস্টজিআরই এসকিউএল

ডেভসংকেত

পোস্টগ্রেস / পোস্টজিআরই এসকিউএল একটি এডভান্সড ওপেন সোর্স রিলেশনাল ডেটাবেজ

ব্যাসিক কমান্ডস

লিনাক্সে ইনস্টল

sudo apt-get install postgresql postgresql-contrib

উইন্ডোজে ইনস্টল

just type in the name of the executable and hit enter(PostgreSQL-Installer.exe)

ম্যাকে ইনস্টল

brew install postgresql

সার্ভারের সাথে কানেক্ট করা

sudo su - postgres(ডিফল্ট ইউজার)

সার্ভারে লগইন করা

psql

লগইন ডিটেইলস জানা

\conninfo

নতুন ইউজার ক্রিয়েট করা

sudo -u postgres createuser <username>

ব্যাসিক কমান্ডস

নতুন ইউজারের পাসওয়ার্ড সেট করা

alter user <username> with encrypted password '<password>'

নতুন ইউজারকে নির্দিষ্ট ডেটাবেজে এক্সেস পারমিশন দেয়া

grant all privileges on database <dbname> to <username>

নির্দিষ্ট ইউজারকে ডিলিট করা

su - postgres -c 'dropuser www-dtata'

সার্ভার থেকে ডিসকানেক্ট/লগআউট হয়ে যাওয়া

\q

জেনারেল কমান্ডস

ডেটাবেজ ক্রিয়েট করা

CREATE DATABASE yourdbname

স্পেসিফিক ডেটাবেজের সাথে কানেক্ট হওয়া

\c database_name

সার্ভারে এভাইলেবল ডাটাবেজের লিস্ট দেখা

\l

সার্ভারে এভাইলেবল ডাটাবেজের স্কিমা দেখা

\dn

কারেন্ট ডাটাবেজের সব টেবিল দেখা

\dt

স্পেসিফিক টেবিলের সব ইনফরমেশন দেখা

\d+ table_name

সকল ইউজারের লিস্ট দেখা

\du

জেনারেল কমান্ডস

নতুন রোল ক্রিয়েট করা

CREATE ROLE role_name

ডেটাবেজ পার্মানেন্টলি ডিলিট করে দেয়া

DROP DATABASE [IF EXISTS] db_name

ডেটাবেজের নাম পরিবর্তন

ALTER DATABASE <old_name> RENAME TO <new_name>

কারেন্ট ইউজার দেখা

SELECT current_user

ডেটাবেজ কুয়েরি

একটা টেবিলের সব ডেটা দেখা

SELECT * FROM table_name

স্পেসিফিক কলামের সব ডেটা দেখা

SELECT column, column2….FROM table

টেবিলের ইউনিক রো এর ডেটা দেখা

SELECT DISTINCT (column) FROM table

ফিল্টার করে ডেটা দেখা

SELECT * FROM table WHERE condition

একাধিক কন্ডিশন ফিল্টার করে ডেটা দেখা(AND / OR)

SELECT * FROM table WHERE condition1 AND condition2 OR condition3 ...... conditionN;

একটি কলামের মানের জন্য একাধিক ভ্যালু ফিল্টার করে ডেটা দেখা(IN)

SELECT * FROM table WHERE (column) IN (value1,value2,...... valueN);

একটি কলামের মান নির্দিষ্ট সীমায় আছে কীনা চেক করা(BETWEEN)

SELECT * FROM table WHERE (column) BETWEEN (lower bound) AND (upper bound);

ডেটাবেজ কুয়েরি

নির্দিষ্ট সংখ্যক আউটপুট কুয়েরি করা(LIMIT)

SELECT * FROM table LIMIT 10;

কুয়েরির ১ম থেকে নির্দিষ্ট সংখ্যক রো বাদ দিয়ে তারপর থেকে দেখানো(OFFSET)

SELECT * FROM table OFFSET 10;

স্ট্রিং ম্যাচ করে ডেটা দেখা

SELECT * FROM table_name WHERE column LIKE '%value%'

কুয়েরি আউটপুট pretty-format এ দেখা

\x

টেবিল নতুন কলাম এড করা

ALTER TABLE table_name ADD COLUMN new_column_name TYPE

টেবিলের স্পেসিফিক রো ডিলিট করে দেয়া

DELETE FROM table_name WHERE condition

টেবিলের ইউনিক রো এর ডেটা দেখা

SELECT DISTINCT (column) FROM table

ডেটাবেজ কুয়েরি

টেবিলের সব রো ডিলিট করে দেয়া

DELETE FROM table_name

টেবিলের (যে টেবিল অন্য টেবিলের সাথে রিলেশন আছে) সব রো ডিলিট করার ক্ষেত্রে

TRUNCATE tableName RESTART IDENTITY CASCADE

ক্রমানুসারে ডাটা কুয়েরি করা

SELECT * FROM table ORDER BY ASC/ DESC;

গাণিতিক অপারেশন

কলামের সর্বনিম্ন মান বের করা

SELECT MIN(column name) FROM table;

কলামের সর্বোচ্চ মান বের করা

SELECT MAX(column name) FROM table;

কলামের সকল মানের গড় বের করা

SELECT AVG(column name) FROM table;

কলামের সকল মানের সমষ্টি বের করা

SELECT SUM(column name) FROM table;

n দশমিক স্থান পর্যন্ত আসন্ন মান বের করা(ROUND)

SELECT ROUND(AVG(column name), n) FROM table;

n দশমিক স্থান পর্যন্ত মান বের করা(TRUNC)

SELECT TRUNC(AVG(column name), n) FROM table;

টেবিল জয়েন

ক্রস জয়েন(ডান টেবিলের প্রতি রো এর জন্য বাম টেবিলের সকল রো এর কম্বিনেশন)

SELECT (column) FROM left_table CROSS JOIN right_table;

ইনার জয়েন(বাম টেবিলের যেসব রো এর প্রাইমারি কি ডান টেবিলে ফরেইন কি হিসেবে আছে)

SELECT left_table.column,...right_table.column FROM left_table INNER JOIN right_table ON left_table.pk = right_table.fk;

লেফট আউটার জয়েন(বাম টেবিলের সব রো, ডান টেবিলের মিলে যাওয়া রো)

SELECT (columns) FROM left_table LEFT OUTER JOIN right_table ON left_table.pk = right_table.fk;

রাইট আউটার জয়েন(ডান টেবিলের সব রো, বাম টেবিলের মিলে যাওয়া রো)

SELECT (columns) FROM left_table RIGHT OUTER JOIN right_table ON left_table.pk = right_table.fk;

ফুল আউটার জয়েন(২ টেবিলের কমন আনকমন সব রো)

SELECT * FROM left_table FULL OUTER JOIN right_table ON left_table.pk = right_table.fk;

ডেটাবেজ ব্যাকআপ

এক্সিস্টিং ডেটাবেজ এর কপি/ডাম্প ক্রিয়েট করা

pg_dump -h localhost -U postgres --no-acl --no-owner existingdb > newgenerateddb.sql

ব্যাকআপ নেয়া ডেটা নতুন ডেটাবেজে লোড করা

psql -h localhost -U postgres mynewcreateddb -f newgenerateddb.sql

এই চিটশিটে কন্ট্রিবিউট করেছেনঃ

  • iamraufu

    iamraufu

    username/iamraufu

  • alxayeed

    Al Xayeed

    username/alxayeed

  • CodeMechanix

    Hasan Mahmud

    username/CodeMechanix

  • RevelYusuf

    Revel109

    username/RevelYusuf

  • Revel109

    Abu Yusuf

    username/Revel109

ডেভসংকেত

বাংলা চিটশিটের ভান্ডার

devsonket.com

প্রিন্ট করুন