পোস্টগ্রেস / পোস্টজিআরই এসকিউএল একটি এডভান্সড ওপেন সোর্স রিলেশনাল ডেটাবেজ
লিনাক্সে ইনস্টল
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
একটা টেবিলের সব ডেটা দেখা
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 (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;
ডেটাবেজ ক্রিয়েট করা
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 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;