ইন্টারেক্টিভ কোর্স
এসকিউএল কোর্স
স্ক্র্যাচ থেকে এসকিউএল শিখুন, ইংরেজিতে, আপনার ব্রাউজারে একটি বাস্তব পোস্টগ্রেস চলমান।
01 · মডিউল 1 - মৌলিক নির্বাচন করুন
ভিত্তি: একটি টেবিল থেকে ডেটা পড়া এবং এটি ফিল্টার করা।
- 1.1এসকিউএল পরিচিতিএসকিউএল কি, কেন এটি ব্যবহার করা হয় এবং একটি ডাটাবেস দেখতে কেমন।~5 min
- 1.2থেকে … নির্বাচন করুনসহজতম প্রশ্ন: একটি টেবিল থেকে সারি পড়া।~10 min
- 1.3WHERE দিয়ে ফিল্টার করা হচ্ছেশুধুমাত্র একটি শর্ত পূরণ করে এমন সারি নির্বাচন করা।~10 min
- 1.4ORDER BY দিয়ে সাজানো হচ্ছেক্রমানুসারে ফলাফল করা, আরোহী বা অবরোহ।~8 min
02 · মডিউল 2 - আরও শক্তিশালী নির্বাচন করুন
সীমাবদ্ধ করুন, অনুলিপি করুন, পুনঃনামকরণ করুন এবং গণনা করুন: আপনি প্রতিদিন যে সরঞ্জামগুলি ব্যবহার করেন।
- 2.1LIMIT সহ সীমাবদ্ধতাশুধুমাত্র প্রথম N সারি ফেরানো, উদাহরণস্বরূপ লিডারবোর্ড তৈরি করা।~6 min
- 2.2DISTINCT সহ অনন্য মানএকটি SELECT এর ফলাফল থেকে সদৃশগুলি সরানো হচ্ছে৷~6 min
- 2.3AS দিয়ে নাম পরিবর্তন করা হচ্ছেফলাফলে কলাম এবং অভিব্যক্তিতে আরও পাঠযোগ্য নাম দেওয়া।~6 min
- 2.4গণনা এবং সংক্ষিপ্তকরণ: COUNT, AVG, MAXসমষ্টিগত ফাংশন: অনেক সারি থেকে একটি একক সংখ্যা পাওয়া।~8 min
03 · মডিউল 3 — যোগ দিন এবং গ্রুপ করুন৷
একাধিক টেবিল একত্রিত করা এবং গোষ্ঠী অনুসারে প্রতিবেদন তৈরি করা: প্রতিটি বাস্তব প্রশ্নের হৃদয়।
- 3.1দুটি টেবিলে যোগদান: অভ্যন্তরীণ যোগদানতাদের সম্পর্ক অনুসরণ করে বিভিন্ন টেবিল থেকে সারি একত্রিত করা।~12 min
- 3.2সবকিছু বাম দিকে রাখা: বাম যোগ দিনঅন্যান্য সারণিতে কোন মিল নেই এমন সারি সহ।~10 min
- 3.3GROUP BY এর সাথে গ্রুপিংপ্রতি গ্রুপে একটি সামগ্রিক গণনা করা, উদাহরণস্বরূপ প্রতি বিভাগ।~10 min
- 3.4ফিল্টারিং গ্রুপ: থাকাসামগ্রিকভাবে একটি শর্ত সন্তুষ্ট শুধুমাত্র গ্রুপ রাখা.~8 min
04 · মডিউল 4 — ব্যবহারিক SQL
যে টুলগুলি বাস্তব কাজের মধ্যে পার্থক্য তৈরি করে: তালিকা, রেঞ্জ, NULL এবং শর্তাধীন যুক্তি।
- 4.1তালিকা এবং ব্যাপ্তি: IN এবং এর মধ্যে"এর মধ্যে একটি" এবং "A এবং B এর মধ্যে" এর জন্য কমপ্যাক্ট ফিল্টার।~8 min
- 4.2NULL হ্যান্ডলিং: IS NULL এবং COALESCEবিস্ময় ছাড়াই অনুপস্থিত মানগুলি সনাক্ত করা এবং মোকাবেলা করা।~10 min
- 4.3শর্তযুক্ত যুক্তি: CASE WHENSELECT-এ মানগুলিকে সরাসরি শ্রেণীতে রূপান্তর করা।~10 min
- 4.4অন্যের ভিতরে একটি প্রশ্ন: সাবকোয়ারিঅন্য SELECT এর ভিতরে একটি SELECT এর ফলাফল ব্যবহার করা।~12 min
05 · মডিউল 5 — অ্যাডভান্সড জয়েন
মাল্টি-টেবিল যোগদান, স্ব-যোগদান, OUTER, ক্রস এবং সেট ক্রিয়াকলাপ: একজন পেশাদারের মতো ডেটা একত্রিত করা।
- 5.1তিন বা ততোধিক টেবিলে যোগদান করুনসম্পর্কের একটি শৃঙ্খল অতিক্রম করা: অর্ডার → গ্রাহক → পণ্য, একটি একক প্রশ্নে।~12 min
- 5.2স্ব-যোগদান: নিজের সাথে একটি টেবিলশ্রেণিবিন্যাস এবং অভ্যন্তরীণ সম্পর্ক: দুটি ভূমিকা সহ একটি টেবিল পড়া (শিশু এবং পিতামাতা)।~10 min
- 5.3বাইরের যোগদান: "শূন্যতা" খুঁজে পাওয়াকোনো মিল ছাড়াই সারি খুঁজতে বাম/ডান/সম্পূর্ণ বাইরে যোগদান ব্যবহার করুন।~10 min
- 5.4ইউনিয়ন, ছেদ, ব্যতীত (এবং ক্রস যোগদান)ফলাফলগুলিকে সেট হিসাবে একত্রিত করা: ইউনিয়ন, ছেদ, পার্থক্য এবং কার্টেসিয়ান পণ্য।~12 min
06 · মডিউল 6 - অন্তর্নির্মিত ফাংশন
PostgreSQL নেটিভ ফাংশনগুলির সাথে ডেটা রূপান্তর এবং ম্যানিপুলেট করুন: স্ট্রিং, তারিখ, সংখ্যা, টাইপ রূপান্তর।
- 6.1স্ট্রিং ফাংশননিম্ন, উপরের, দৈর্ঘ্য, সংযোজন, সাবস্ট্রিং, ট্রিম, রিপ্লেস, লাইক এবং আইলাইক।~12 min
- 6.2তারিখ এবং টাইমস্ট্যাম্প ফাংশনEXTRACT, DATE_TRUNC, ব্যবধান এবং তারিখের পার্থক্য।~12 min
- 6.3সংখ্যাসূচক ফাংশনবৃত্তাকার, CEIL, FLOOR, ABS, MOD এবং পূর্ণসংখ্যা বনাম দশমিক বিভাগ।~10 min
- 6.4CAST এবং টাইপ রূপান্তর`::টাইপ` এবং `CAST(... AS ...)` দিয়ে প্রকারের মধ্যে রূপান্তর করা হচ্ছে।~10 min
07 · মডিউল 7 — উন্নত বিশ্লেষণ
মাল্টি-স্টেপ কোয়েরি (CTE), র্যাঙ্কিং এবং চলমান মোট (উইন্ডো ফাংশন), সীমাহীন শ্রেণীবিন্যাস (পুনরাবৃত্ত সহ)।
- 7.1CTE: WITH-এর সাথে বহু-পদক্ষেপের প্রশ্নপঠনযোগ্যতা এবং পুনঃব্যবহারের জন্য নামযুক্ত পদক্ষেপগুলির মধ্যে একটি জটিল ক্যোয়ারী ভঙ্গ করা।~12 min
- 7.2উইন্ডো ফাংশন: র্যাঙ্কিং এবং প্রতি-গ্রুপ গণনাগ্রুপে র্যাঙ্কিংয়ের জন্য ROW_NUMBER, RANK, DENSE_RANK ওভার (পার্টিশন দ্বারা …)।~14 min
- 7.3ল্যাগ, লিড এবং চলমান মোটপ্রতিটি সারি পূর্ববর্তী/পরেরটির সাথে তুলনা করা এবং ক্রমবর্ধমান সমষ্টি গণনা করা।~12 min
- 7.4পুনরাবৃত্ত CTEs: স্বেচ্ছাচারী-গভীর স্তরবিন্যাসশ্রেণীবিভাগের মতো শ্রেণীবিন্যাস অতিক্রম করার জন্য রিকার্সিভ সহ।~14 min
08 · মডিউল 8 — ডেটা লেখা এবং পরিবর্তন করা
INSERT, UPDATE, DELETE, CREATE TABLE with constraints, লেনদেন: লেখার সাথে লুপ বন্ধ করা।
- 8.1তথ্য সন্নিবেশ করা হচ্ছে: INSERTএকক এবং বহু-সারি INSERT, রিটার্নিং ক্লজ, স্পষ্টভাবে কলাম নির্বাচন করা।~10 min
- 8.2আপডেট করা এবং মুছে ফেলা: আপডেট এবং মুছে ফেলুনWHERE এর সাথে নির্বাচনী পরিবর্তন, এবং কেন ভুলে যাওয়া WHERE একটি বিপর্যয়।~10 min
- 8.3টেবিল এবং সীমাবদ্ধতা তৈরি করা: DDLপ্রাথমিক কী দিয়ে টেবিল তৈরি করুন, শূন্য নয়, অনন্য, বিদেশী কী, চেক এবং ডিফল্ট।~12 min
- 8.4লেনদেন: সব বা কিছুই নাশুরু করুন, কমিট করুন, রোলব্যাক করুন: অপারেশনের একটি গ্রুপকে পারমাণবিক করা।~10 min
09 · মডিউল 9 — ডেটা স্ট্রাকচার এবং DDL
টেবিল, উন্নত সীমাবদ্ধতা, জটিল প্রকার এবং দৃষ্টিভঙ্গি তৈরি এবং পরিবর্তন করা।
- 9.1উন্নত ডেটা প্রকার এবং ENUMsসংখ্যাসূচক প্রকার, TEXT বনাম VARCHAR, বুলিয়ান, UUID এবং কাস্টম ENUM প্রকার।~10 min
- 9.2একাধিক এবং টেবিল-স্তরের সীমাবদ্ধতাকম্পোজিট ইউনিক এবং প্রাথমিক কী সীমাবদ্ধতা, উন্নত চেক এবং বিদেশী কী (মুছে ফেলা ক্যাসকেডের উপর)।~12 min
- 9.3গঠন পরিবর্তন: ALTER TABLEবিদ্যমান টেবিল থেকে কলাম বা সীমাবদ্ধতা যোগ করা, পরিবর্তন করা এবং অপসারণ করা।~10 min
- 9.4ভিউ এবং ডেটা বিমূর্ততাজটিল প্রশ্নগুলি সরল করার জন্য ভিউ তৈরি করা এবং পারফরম্যান্সের জন্য ম্যাটেরিয়ালাইজড ভিউ তৈরি করা।~12 min
10 · অপ্টিমাইজেশান এবং সূচক
দ্রুত প্রশ্ন তৈরি করার শিল্প: সূচী, কার্যকরী পরিকল্পনা এবং ডাটাবেস অপ্টিমাইজেশান।
- 10.1সূচক এবং বি-বৃক্ষসূচী তৈরি করুন নাটকীয়ভাবে বৃহৎ টেবিলে অনুসন্ধান অনুসন্ধানের গতি বাড়ানোর জন্য।~15 min
- 10.2ব্যাখ্যা করুন এবং বিশ্লেষণ করুনপ্রতিবন্ধকতা নির্ণয়ের জন্য ডাটাবেস এক্সিকিউশন প্ল্যান পড়তে শিখুন।~15 min
- 10.3যৌগিক এবং আংশিক সূচকএকাধিক কলামে একবারে বা শুধুমাত্র ডেটার একটি নির্দিষ্ট স্লাইসে সূচী ব্যবহার করুন।~12 min
- 10.4N+1 সমস্যাকুখ্যাত ORM পারফরম্যান্স সমস্যা এবং একটি একক প্রশ্নে এটি কাটিয়ে উঠতে নেটিভ এসকিউএল পদ্ধতি।~12 min
11 · লেনদেন এবং সঙ্গতি
নিরাপদে সমসাময়িক ডেটা পরিবর্তনগুলি পরিচালনা করুন: ACID লেনদেন, লক এবং বিচ্ছিন্নতা স্তর।
- 11.1ACID লেনদেন (BEGIN/COMMIT)BEGIN, COMMIT এবং ROLLBACK এর সাথে সামঞ্জস্যপূর্ণ ডেটা রাখুন, অন্যদের কাছে অদৃশ্য এক ব্লকে প্রশ্নগুলিকে গোষ্ঠীবদ্ধ করুন৷~15 min
- 11.2রেসের শর্তপ্রান্তের পরিস্থিতি: যখন দুটি সমান্তরাল ডাটাবেস কর্মচারী একই ব্যবহারকারী কার্টে কাজ করে তখন কী ঘটে।~10 min
- 11.3লকিং এবং আপডেটের জন্য নির্বাচন করুনপড়ার সময় সক্রিয়ভাবে সারিগুলি লক করুন, অন্যান্য পরিবর্তনকারী থ্রেডগুলিকে তাদের পালা অপেক্ষা করতে বাধ্য করে৷~15 min
- 11.4বিচ্ছিন্নতার মাত্রাসিরিয়ালাইজেবল প্রয়োগ করে সীমার দিকে ঠেলে দিন বা অনিরাপদ কিন্তু দ্রুত কর্মক্ষমতার জন্য প্রতিশ্রুতিবদ্ধ Read এ নেমে যান।~12 min
12 · ফাংশন এবং ট্রিগার
ডাটাবেসের ভিতরে ব্যবসায়িক যুক্তি স্বয়ংক্রিয় করুন: পুনঃব্যবহারযোগ্য ফাংশন লিখুন এবং ট্রিগার সহ ইভেন্টগুলিতে প্রতিক্রিয়া দিন।
- 12.1UDF এবং বেস SQLজটিল গণনাগুলিকে এনক্যাপসুলেট করতে আপনার নিজস্ব ব্যবহারকারী সংজ্ঞায়িত ফাংশনগুলি তৈরি করুন এবং প্রতিটি ক্যোয়ারীতে ম্যাক্রোর মতো পুনরায় ব্যবহার করুন৷~15 min
- 12.2PL/pgSQL এর সাথে উন্নত যুক্তিআপনার ফাংশনগুলিকে সুপার পাওয়ার দিন: ভেরিয়েবল, ইফ-অন্য শাখা এবং ডাটাবেসের ভিতরে বিশুদ্ধ পদ্ধতিগত শৈলীতে লুপ।~15 min
- 12.3ট্রিগার পরিচিতিবিশেষ ফাংশন সংজ্ঞায়িত করুন যা অবিলম্বে আউটগোয়িং (পুরাতন) বা ইনকামিং (নতুন) রেকর্ড পরিদর্শন করতে পারে।~15 min
- 12.4ব্যবহারিক ট্রিগার এবং অডিটস্বয়ংক্রিয় নিরাপত্তা: "updated_at" তারিখটি স্বয়ংক্রিয়ভাবে আপডেট করুন এবং সম্মতির জন্য মুছে ফেলা সারিগুলিকে জাদুকরীভাবে সংরক্ষণ করুন৷~12 min
13 · উইন্ডো ফাংশন
সারি ভেঙে না দিয়ে উন্নত ডেটা বিশ্লেষণ: ওভার(), বিভাজন দ্বারা এবং বিশ্লেষণাত্মক ফাংশন আবিষ্কার করুন।
- 13.1ভূমিকা এবং ওভার ক্লজমূল পৃথক সারি সংরক্ষণ করার সময় সামগ্রিক গণনা চালান (যেমন SUM বা AVG)।~15 min
- 13.2PARTITION BY এর সাথে গ্রুপিংGROUP BY ব্যবহার না করে ফাংশন প্রয়োগ করার জন্য ডেটার ভিতরে লজিক্যাল গ্রুপিং (উইন্ডোজ) তৈরি করুন।~15 min
- 13.3র্যাঙ্কিং: ROW_NUMBER, RANK এবং DENSE_RANKক্রমিক সারি সংখ্যা এবং ফলাফলের ক্রম নির্ধারণ করুন, সঠিকভাবে বন্ধন পরিচালনা করুন।~15 min
- 13.4শিফট: ল্যাগ এবং লিডডেল্টা এবং বৈচিত্রগুলি গণনা করতে বর্তমান সারি থেকে সরাসরি পূর্ববর্তী বা পরবর্তী সারি থেকে মানগুলি অ্যাক্সেস করুন৷~12 min
14 · CTE এবং অনুক্রমিক প্রশ্ন (সহ)
কমন টেবিল এক্সপ্রেশনের সাহায্যে বিশাল কোয়েরি সরলীকরণ করুন এবং রিকার্সিভ CTE-এর সাহায্যে সীমাহীন ডেটা ট্রি নেভিগেট করুন।
- 14.1CTE-এর পরিচিতি (সহ)অস্থায়ী "ভার্চুয়াল টেবিল" ঘোষণা করে একটি পরিষ্কার পদ্ধতিগত বিন্যাস দিয়ে অপঠিত নেস্টেড সাবকোয়েরি প্রতিস্থাপন করুন।~12 min
- 14.2একাধিক এবং শৃঙ্খলিত CTEএকটি একক উইথ স্টেটমেন্টের মধ্যে প্রক্রিয়াকরণকে একাধিক অনুক্রমিক ধাপে বিভক্ত করে জটিলতা নিয়ন্ত্রণ করুন।~15 min
- 14.3পুনরাবৃত্ত CTEs: গাছ-আকৃতির ডেটানিজের থেকে CTE-কে কল করে সীমাবদ্ধ ব্যবস্থাপক শ্রেণিবিন্যাস এবং পিতামাতা-সন্তানের বিভাগ ছাড়াই নেভিগেট করুন।~18 min
15 · PostgreSQL JSON এবং NoSQL
বাহ্যিক ডাটাবেস ব্যবহার না করে JSON এবং JSONB-এর মাধ্যমে নমনীয় নথি সমর্থনের সাথে মিশ্রিত রিলেশনাল পাওয়ার লিভারেজ।