SQL Bangla Documentation | এস কিউ এল বাংলা ডকুমেন্টেশন

SQL Bangla Tutorial
Database

Database

ভূমিকা

এই ছোট্ট হ্যান্ডবুকটিতে আমরা আলোচনা করবো ডেটাবেস নিয়ে। এটি পড়ার মাধ্যমে আপনি বিভিন্ন ধরনের ডেটা সম্পর্কে শিখবেন এবং জানতে পারবেন ডেটাবেস কী? এছাড়া একটি প্রজেক্টে কীভাবে ডেটাবেস ইন্টেগ্রেট (Integrate) করা যায় সে বিষয়-টি নিয়েও কথা বলবো। আর কীভাবে একটি ডেটাবেস সিস্টেমে ডেটা যুক্ত করতে হয়, রিমুভ করতে হয়, ডিলিট ও আপডেট করতে করতে হয়; এসব নিয়ে আলোচনা করা তো বাধ্যতামূলক। চলুন কথা না বাড়িয়ে, বেসিক ডেটা স্ট্রাকচার শেখা শুরু করি।

ডেটা (Data)

আমরা সকলেই প্রায় ফেসবুক ব্যবহার করি। আমার জীবনে আমি প্রথম ফেসবুক চালাই আব্বুর বাটন ফোনে। চালানো বলা চলে না, ভাইয়া চালাইতো আর আমি দেখতাম। সেই বাটন ফোনের ফেসবুকে আমি ভাঙ্গাচুরা কিছু টেক্সট আর নিম্ন মানের ছবু দেখা যেত। তাতে কী? সেটাই ছিল আমাদের কাছে অনেক কিছু। তখন ছোটো থাকায় ফেসবুকে স্ট্যাটাস দেওয়ার মতো সাহস বা ক্ষমতা কোনোটিই আমার ছিল না। তবে আমার বড় ভাই দুই-একটা স্ট্যাটাস দিয়ে ছিল। শখের বসে হাতেগোনা কয়েকটি ছবিও আপলোড করেছিলাম আমরা।

বাংলাদেশের প্রাচীন প্রথা অনুসারে, এস.এস.সি পরীক্ষার পর আমার বড় ভাই একটি আন্ড্রোয়েড ফোন হাতে পায়। সে যখন তার নতুন স্মার্ট ফোনে সেই পুরোনো আই.ডি -টি লগইন করে তখন আমি একটি বিস্ময়কর জিনিস দেখতে পেলাম। আমরা বাটন ফোন দিয়ে যেসব স্ট্যাটাস ও ছবি আপলোড দিয়ে ছিলাম, সেসব কিছুই দেখা যাচ্ছে। কীভাবে দেখা যাচ্ছে? সব কিছুই তো আপলোড দিয়ে ছিলাম বাটন ফোন দিয়ে, তাহলে কীভাবে স্মার্ট ফোনে দেখা যাচ্ছে? এই প্রশ্নের উত্তর হলো ডেটাবেস। আমার ভাই যখন বাটন ফোনে ফেসবুক চালাইছে, তখন ফেসবুক তার সকল অনলাইন অ্যাক্টিভিকে তাদের ডেটাবেসে সংরক্ষন করে রেখেছে। তাই সেটি কোনো নির্দিষ্ট ডিভাইসের উপর নির্ভর করে না। যে ডিভাইস থেকে ডেটা চাওয়া হবে, ডেটাবেস থেকে সেই ডিভাইসে ডেটা প্রেরণ করা হবে।

সাধারণ অর্থে, যেকোনো তথ্যই হলো ডেটা। এটা হতে পারে - আপনার নাম, বয়স, ঠিকানা কিংবা ইমেইল, পাসওয়ার্ড। আবার আপনার ফোনে যে প্রেয়সীর নম্বর সেভ করা আছে, সেই নম্বরটিও একটি ডেটা। আসলে আপনি যে দিকেই তাকাবেন, সে দিকেই ডেটা দেখতে পাবেন। আপনার টেবিলের উপর যে চারটি বই রাখা আছে সেটিও একটি ডেটা। এভাবে বললে বলে শেষ করা যাবে না। যাইহোক, ভাই সবশেষে এটুকু মনে রাখুন -

💡

Data is information about anything.

ডেটাবেস (DataBase)

আপনি কি কখনো ফুলদানি দেখেছেন? ফুলদানিতে ফুল সাজিয়ে রাখা হয়। চাইলে একটি ফুল বেশি রাখা যায়, আবার চাইলে একটি ফুল সরিয়ে নেওয়াও যায়। ফুলদানি বাদে, অন্য কোনো পাত্রে এতো সহজে আপনি ফুল সাজাতে পারবেন না।

ঠিক ফুলদানির মতোই ডেটাবেসে ডেটা সাজিয়ে রাখা হয়। ডেটাবেজ কে অনেক সময় সংক্ষেপে ডি.বি(DB) বলা হয়। ইউটিউবে শুধু আমি ভিডিও আপলোড দেই, আর আপনি দেখেন। পৃথিবীতে এমন কোনো ঘটনা ঘটে না। ইউটিউবে লক্ষ লক্ষ মানুষ ভিডিও আপলোড দেয়, আর কোটি কোটি মানুষ দেখে। ইউটিউব কে সকলের ভিডিও, লাইক, কমেন্ট এসব কিছুই সংরক্ষণ করতে হয়। সকলের এ সকল ডেটাকে সুসংগঠিতভাবে ভাবে সংরক্ষণের জন্য ইউটিউব ডেটাবেস ব্যবহার করে।

একাডেমিক কায়দায় ডেটাবেসের সংজ্ঞা দিতে হলে বলতে হয়, ডেটাবেস হলো সুসংগঠিতভাবে ডেটা সংরক্ষণের বিশেষ জায়গা/স্থান।

বেশ কিছু জনপ্রিয় ডেটাবেস ম্যানেজমেন্ট সিস্টেম রয়েছে -

  • MySQL
  • MongoDB
  • Oracle
  • SQlite


ভয় নেই। আপনাকে সবগুলো শিখতে হবে না। সকল ডেটাবেস ম্যানেজমেন্ট সিস্টেমে কোর কন্সেপ্ট বা মুল ধারণা একই। তাই নতুন হিসেবে যেকোনো একটি ভালোভাবে শিখুন, পরে প্রয়োজন হলে অন্য গুলো শেখা যাবে।

টেবিল (Table)

যারা মাইক্রোসফট ওয়ার্ড ব্যবহার করেন তারা নিশ্চয় টেবিল চেনেন। কোন্টিকে কলাম আর কোনটিকে রো বলে সে সম্পর্কে যথেষ্ট ধারণা আপনাদের আছে। আর যারা চিনেন না। তাদেরকে আমি এখন ভিডিওতে দেখিয়ে দিচ্ছি।

SQL কি এবং কেন এটি ব্যবহার করবেন?

SQL (Structured Query Language) হলো একটি ডেটাবেস ম্যানেজমেন্ট সিস্টেমের (DBMS) জন্য ব্যবহৃত একটি ভাষা, যা ডেটা তৈরি, পড়া, আপডেট এবং মুছে ফেলার (CRUD অপারেশন) কাজগুলো সম্পাদন করতে ব্যবহৃত হয়। SQL মূলত একটি স্ট্যান্ডার্ড ভাষা, যা ডেটাবেসের সাথে যোগাযোগ করার জন্য ব্যবহার করা হয়। এটি রিলেশনাল ডেটাবেস (যেমন MySQL, PostgreSQL, SQLite ইত্যাদি) এর সাথে কাজ করে এবং ডেটা ম্যানিপুলেট করতে সাহায্য করে।

কেন SQL ব্যবহার করবেন?

  1. ডেটাবেসে তথ্য সঞ্চালন ও পরিচালনা সহজ: SQL আপনাকে ডেটাবেসের মধ্যে সঠিকভাবে তথ্য সঞ্চালন ও পরিচালনা করার ক্ষমতা দেয়। আপনি চাইলে নতুন তথ্য যোগ করতে, পুরনো তথ্য আপডেট করতে, কিংবা অপ্রয়োজনীয় তথ্য মুছে ফেলতে পারবেন খুব সহজেই।
  1. স্ট্যান্ডার্ড ভাষা: SQL হলো একটি আন্তর্জাতিকভাবে গ্রহণযোগ্য ভাষা, যা কোনো ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) এর জন্য ব্যবহৃত হয়। আপনি যদি SQL জানেন, তাহলে আপনি যেকোনো রিলেশনাল ডেটাবেস সিস্টেমে কাজ করতে পারবেন।
  1. ডেটার সঠিকতা ও নিরাপত্তা: SQL আপনাকে ডেটার সঠিকতা নিশ্চিত করতে সাহায্য করে, কারণ এটি ডেটাবেসের বিভিন্ন কনস্ট্রেইন্ট ও রুলস সেট করতে সহায়তা করে, যেমন ফোরেন কী (Foreign Key), চেক কনস্ট্রেইন্ট (Check Constraints), ইউনিক কনস্ট্রেইন্ট (Unique Constraints) ইত্যাদি। এর মাধ্যমে আপনি ডেটাবেসে ভুল তথ্য ঢুকানো বা তথ্যের সমস্যা কমাতে পারেন।

SQL কি এবং কেন একটি ডেটাবেস সিস্টেম বাদে ব্যবহার হার করা যায় না?

এখন, এসকিউএল (SQL) কেন একটি ডেটাবেস সিস্টেম ছাড়া ব্যবহার করা যাবে না? এর উত্তর খুব সোজা। SQL এর ব্যবহার আসলে ডেটাবেস সিস্টেমের অন্তর্গত, কারণ এটি মূলত ডেটাবেসের সঙ্গে যোগাযোগের জন্য ডিজাইন করা হয়েছে। আপনি যদি কোনো ডেটাবেস ব্যবহার না করেন, তবে SQL এর অপারেশনগুলো (যেমন SELECT, INSERT, UPDATE, DELETE) কার্যকর হবে না, কারণ SQL এর মূল কাজই হলো ডেটাবেসের মধ্যে ডেটা ম্যানিপুলেট করা।

কিছু কারণঃ

  1. রিলেশনাল মডেল: SQL রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেমের জন্য ডিজাইন করা হয়েছে, যেখানে ডেটা টেবিল আকারে সঞ্চিত থাকে। এটি ডেটা সংরক্ষণ, সম্পর্কিত ডেটা একত্রিত করা এবং কার্যকরী কুয়েরি চালানোর জন্য উপযুক্ত।
  1. ডেটা ম্যানিপুলেশন: SQL আপনাকে ডেটা সংরক্ষণ, পরিবর্তন, মুছা, এবং সন্ধান করতে সাহায্য করে। শুধুমাত্র ডেটাবেস সিস্টেমই সেই ডেটাকে সংরক্ষণ করতে পারে, এবং SQL তাতে কাজ করার জন্য একমাত্র উপযুক্ত ভাষা।
  1. বড় পরিসরের ডেটা হ্যান্ডলিং: SQL ডেটাবেস সিস্টেম খুব সহজে হাজার হাজার বা লক্ষ লক্ষ রেকর্ডের ওপর অপারেশন চালাতে পারে। এটি সার্চ, অ্যানালাইসিস, এবং রিপোর্ট তৈরি করতে অত্যন্ত কার্যকরী।

তাহলে, এক কথায় বললে SQL ডেটাবেস সিস্টেমের সাথে গভীরভাবে সম্পর্কিত একটি ভাষা। ডেটাবেস ছাড়াই SQL এর কার্যকারিতা সীমিত, তাই যদি আপনি ডেটা সঞ্চয় ও তার সাথে কাজ করার জন্য কোনো পদ্ধতি চান, তবে একটি ডেটাবেস সিস্টেম অপরিহার্য।


🧾
SQL এ টেবিল তৈরি করার নিয়ম

আপনি যদি ডেটাবেসে ডেটা সংরক্ষণ করতে চান, তাহলে সবার আগে একটি টেবিল (Table) তৈরি করতে হবে। টেবিল হচ্ছে এমন একটি জায়গা, যেখানে তথ্য (Data) সারি (Row) এবং কলাম (Column) আকারে সাজানো থাকে।

প্রতিটি টেবিল অনেকটা এক্সেল ফাইলের মতো—একদিকে কলাম থাকে (যেমন: নাম, বয়স, ঠিকানা), আর প্রতিটি সারিতে একজন ব্যক্তির তথ্য বা একটি রেকর্ড রাখা হয়।


🛠️
টেবিল তৈরি করার নিয়ম (Syntax):

CREATE TABLE টেবিলের_নাম (
    কলাম১ ডেটা_টাইপ,
    কলাম২ ডেটা_টাইপ,
    ...
);

বোঝার সুবিধার জন্য:

  • CREATE TABLE দিয়ে টেবিল তৈরি শুরু করবেন।
  • তারপর টেবিলের একটি নাম দিতে হবে (ইংরেজিতে লেখা উচিত)।
  • এরপর প্রত্যেকটি কলামের নাম ও তার জন্য উপযুক্ত ডেটা টাইপ (Datatype) দিতে হবে।

একটি উদাহরণ দেখুন:

ধরুন, আপনি Students নামে একটি টেবিল বানাতে চান, যেখানে প্রতিটি ছাত্রের আইডি, নাম এবং বয়স থাকবে। তখন কোডটা হবে এভাবে:

CREATE TABLE Students (
    ID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT
);

এখানে যা হয়েছে:

  • ID কলামে থাকবে প্রতিটি ছাত্রের আলাদা একটি নম্বর (যেটি হবে প্রাইমারি কী),
  • Name কলামে থাকবে নাম, যেটা টেক্সট আকারে থাকবে (সর্বোচ্চ ১০০ অক্ষর পর্যন্ত),
  • Age কলামে থাকবে বয়স, যেটা সংখ্যা হবে.

ℹ️ কিছু দরকারি কথা:

  1. PRIMARY KEY মানে হলো একটি ইউনিক কলাম—যেটা দিয়ে প্রতিটি রেকর্ডকে আলাদা করে চেনা যায়।
  1. SQL-এ সব কমান্ড শেষে ; সেমিকোলন দেওয়া ভালো অভ্যাস।
  1. আপনি যতগুলো তথ্য রাখতে চান, তার জন্য ততগুলো কলাম তৈরি করতে পারবেন।

🎯 শেষ কথাঃ

টেবিল তৈরি করা SQL শেখার একেবারে প্রথম ধাপ। আপনি যদি ঠিকভাবে টেবিল বানাতে পারেন, তাহলে পরবর্তী ধাপ—যেমন ডেটা ইনসার্ট করা, আপডেট করা বা খুঁজে বের করা—সবই অনেক সহজ হয়ে যাবে।

শুরুটা ধীরে করুন, বারবার প্র্যাকটিস করুন—শিগগিরই SQL হবে আপনার বাম হাতের খেলা! 😊💻

📥 SQL এ INSERT INTO দিয়ে টেবিলে ডেটা যোগ করার নিয়ম

একবার আপনি টেবিল তৈরি করে ফেললে, এখন মূল কাজ হলো তথ্য (Data) যোগ করা। SQL-এ INSERT INTO কমান্ড ব্যবহার করে আপনি নতুন রেকর্ড (Row) টেবিলে ঢোকাতে পারেন।

এই কাজটি আপনি দুইভাবে করতে পারেন —

১️⃣ কলামের নাম উল্লেখ করে

২️⃣ কলামের নাম না দিয়ে সরাসরি মান বসিয়ে


পদ্ধতি ১: কলামের নাম উল্লেখ করে ডেটা যোগ করা

এটি সবচেয়ে নিরাপদ ও সুপারিশকৃত (recommended) পদ্ধতি, কারণ এতে আপনি নিজে ঠিক করে দিতে পারেন কোন মানটি কোন কলামে যাবে।

🛠️ গঠন (Syntax):

INSERT INTO টেবিলের_নাম (কলাম১, কলাম২, ...)
VALUES (মান১, মান২, ...);

🎯 উদাহরণ:

INSERT INTO Students (ID, Name, Age)
VALUES (1, 'Rahim', 18);

এখানে ID তে 1, Name এ 'Rahim', এবং Age এ 18 যাবে।

পদ্ধতি ২: কলামের নাম না দিয়ে ডেটা যোগ করা

আপনি চাইলে কলামের নাম না দিয়েও ডেটা ঢোকাতে পারেন। তবে সেক্ষেত্রে টেবিল তৈরির সময় যেভাবে কলাম সাজানো হয়েছিল ঠিক সেই অর্ডারেই মান দিতে হবে।

🛠️ গঠন (Syntax):

INSERT INTO টেবিলের_নাম
VALUES (মান১, মান২, ...);

🎯 উদাহরণ:

INSERT INTO Students
VALUES (2, 'Karim', 20);


এখানে ধরে নেওয়া হয়েছে
Students টেবিলের কলামগুলোর অর্ডার হচ্ছে: ID, Name, Age — ঠিক সেভাবেই মান বসানো হয়েছে।


⚠️ মনে রাখবেন:

  • আপনি যদি কলামের নাম বাদ দেন, তবে অবশ্যই সবগুলো কলামের জন্য মান দিতে হবে, এবং সঠিক অর্ডারে দিতে হবে।
  • PRIMARY KEY এর মান অবশ্যই ইউনিক হতে হবে, নাহলে ভুল দেখাবে।
  • VARCHAR টাইপের মানে 'সিঙ্গেল কোটেশন' ব্যবহার করতে হয়।

🎉 শেষ কথা:

প্রথমদিকে কলামের নাম উল্লেখ করে INSERT INTO ব্যবহার করাই ভালো, কারণ এতে ভুল কম হয় এবং কোড বেশি বোঝা যায়। তবে আপনি চাইলে দুটো পদ্ধতিই ব্যবহার করতে পারেন।

পরবর্তী ধাপে আমরা শিখবো কীভাবে টেবিল থেকে তথ্য পড়তে হয় — অর্থাৎ SELECT কমান্ড। চলুন আগাতে থাকি!


🔍
SQL এ SELECT দিয়ে ডেটা খোঁজা / দেখার নিয়ম

আপনি যখন কোনো টেবিলে ডেটা ঢোকান, তখন সেই ডেটা দেখার জন্য SELECT কমান্ড ব্যবহার করা হয়। এটা দিয়ে আপনি পুরো টেবিল বা শুধু নির্দিষ্ট কিছু কলাম বা রেকর্ড দেখতে পারেন।


১. টেবিলের সব ডেটা দেখতে:

🛠️ গঠন (Syntax):

SELECT * FROM টেবিলের_নাম;

🔹 এখানে * চিহ্ন মানে হচ্ছে সব কলাম

🔹 FROM এর পর টেবিলের নাম দিতে হবে যেখান থেকে ডেটা আনবেন।

🎯 উদাহরণ:

SELECT * FROM Students;


এটা
Students টেবিলের সব রেকর্ড এবং সব কলাম দেখাবে।


২. নির্দিষ্ট কিছু কলাম দেখতে:

আপনি চাইলে শুধু কিছু নির্দিষ্ট তথ্যও দেখতে পারেন, যেমন শুধু ছাত্রদের নাম আর বয়স।

🎯 উদাহরণ:

SELECT Name, Age FROM Students;

এতে NameAge কলামগুলো দেখাবে, কিন্তু ID দেখাবে না।

৩. নির্দিষ্ট কিছু রেকর্ড দেখতে: (WHERE ক্লজ)

WHERE ব্যবহার করে আপনি যেকোনো শর্ত দিয়ে ডেটা ফিল্টার করতে পারেন।

🎯 উদাহরণ:

SELECT * FROM Students
WHERE Age > 18;

এটা শুধু তাদের দেখাবে যাদের বয়স ১৮ বছরের বেশি।

আরও এক উদাহরণ:

SELECT Name FROM Students
WHERE ID = 1;

এতে ID = 1 এমন ছাত্রের নাম দেখাবে。

⚠️ মনে রাখবেন:

  • SELECT কমান্ড খুব শক্তিশালী। এটি শুধু দেখতে না, বিশ্লেষণেও সাহায্য করে।
  • SQL-এ সব কমান্ডের শেষে ; সেমিকোলন দিন — এটা ভালো অভ্যাস।
  • টেবিলের নাম ও কলামের নাম সঠিকভাবে লিখতে হবে, না হলে ভুল দেখাবে।

🎯 শেষ কথা:

SELECT ছাড়া আপনি ডেটাবেসের কোনো ডেটাই দেখতে পারবেন না। তাই SQL শিখতে চাইলে SELECT খুব ভালোভাবে বুঝে নিতে হবে। প্র্যাকটিস করে করে নেক্সট লেভেলে উঠে যান!

🔁 UPDATE: ডেটা পরিবর্তন করার নিয়ম

আপনি যদি কোনো টেবিলে আগে থেকেই ঢুকানো ডেটা পরিবর্তন করতে চান, তাহলে UPDATE কমান্ড ব্যবহার করবেন। এটা দিয়ে আপনি নির্দিষ্ট কোনো রেকর্ডের একটি বা একাধিক কলামের মান বদলে দিতে পারেন।


🛠️ গঠন (Syntax):

UPDATE টেবিলের_নাম
SET কলাম১ = নতুন_মান১, কলাম২ = নতুন_মান২
WHERE শর্ত;

🔹

SET

দিয়ে যেসব কলাম আপডেট করতে চান, সেগুলো লিখবেন।

🔹

WHERE

ক্লজ দিয়ে ঠিক করবেন

কোন রেকর্ডটা পরিবর্তন করবেন

🎯 উদাহরণ:

UPDATE Students
SET Age = 19
WHERE ID = 1;

এখানে ID ১ যেই ছাত্রের, তার বয়স ১৯ করে দেওয়া হবে।

আরও এক উদাহরণ:

UPDATE Students
SET Name = 'Rahman', Age = 22
WHERE ID = 2;

এখানে ID ২-এর নাম এবং বয়স দুটোই পরিবর্তন করা হয়েছে।

⚠️ সতর্কতা:

👉 WHERE না দিলে টেবিলের সব রেকর্ড আপডেট হয়ে যাবে

UPDATE Students
SET Age = 20;


এতে সব ছাত্রের বয়স ২০ হয়ে যাবে, যা আপনি হয়তো চান না! তাই
WHERE ক্লজ ব্যবহার করতে ভুলবেন না।


DELETE: ডেটা মুছে ফেলার নিয়ম

যদি আপনি কোনো রেকর্ড ডাটাবেস থেকে পুরোপুরি মুছে ফেলতে চান, তাহলে DELETE কমান্ড ব্যবহার করতে হবে।


🛠️ গঠন (Syntax):

DELETE FROM টেবিলের_নাম
WHERE শর্ত;

🔹

FROM

এর পরে টেবিলের নাম লিখবেন

🔹

WHERE

দিয়ে ঠিক করবেন কোন রেকর্ড মুছতে চান

🎯 উদাহরণ:

DELETE FROM Students
WHERE ID = 3;

এতে ID ৩ যেই ছাত্রের, সে পুরোপুরি টেবিল থেকে মুছে যাবে।

⚠️ সতর্কতা:

👉 WHERE না দিলে পুরো টেবিলের সব ডেটা মুছে যাবে!

DELETE FROM Students;


এটা
সব রেকর্ড মুছে ফেলবে, কিন্তু টেবিলটা থাকবে।


🧠 শেষ কথা:

  • UPDATE দিয়ে তথ্য পরিবর্তন করা যায়।
  • DELETE দিয়ে তথ্য পুরোপুরি মুছে ফেলা যায়।
  • সবসময় WHERE ক্লজ ব্যবহার করুন, নয়তো পুরো টেবিলে অনাকাঙ্ক্ষিত পরিবর্তন হতে পারে।
  • প্র্যাকটিস করলে বুঝতে পারবেন কখন কোনটা লাগবে।

About the author

MD Zakaria Hossen
Hi! I am Zakaria. I am the founder of Kochu Programmer. I want to spread tech knowledge to everyone.

إرسال تعليق