intermediate#sql#ddl#dml#dcl#query-languageUpdated: 2026-05-12

এসকিউএল মৌলিক ধারণা (SQL Basics)


১. ভূমিকা — ডেটাবেজের সাথে কথা বলার ভাষা!

তুমি কি কখনো ভেবেছ, গুগলে কিছু খুঁজলে কীভাবে মুহূর্তে ফলাফল আসে? বা bKash এ টাকা পাঠালে তৎক্ষণাৎ ব্যালেন্স কমে যায়? এর পেছনে আছে ডেটাবেজ — এবং সেই ডেটাবেজের সাথে কথা বলার ভাষা হলো SQL (Structured Query Language)!

SQL হলো মানুষের ইংরেজি ভাষার মতো — কিন্তু এটি ডেটাবেজ বোঝে। "আমাকে বিজ্ঞান বিভাগের সব ছাত্রের নাম দাও" — SQL এ একটি লাইন!

মজার তথ্য: SQL উচ্চারণ করা হয় "S-Q-L" (এস-কিউ-এল) অথবা "Sequel" (সিকুয়েল)। IBM এর গবেষকরা ১৯৭৪ সালে এটি তৈরি করেন। আজ পৃথিবীর প্রায় সব ডেটাবেজ SQL ব্যবহার করে — ৫০ বছরেরও বেশি সময় ধরে!


২. সমস্যা — প্রোগ্রামিং ভাষা ছাড়া ডেটাবেজে কীভাবে কাজ করব?

SQL ছাড়া ডেটাবেজ ব্যবহার:
  → লক্ষ লক্ষ রেকর্ড ম্যানুয়ালি খুঁজতে হবে
  → প্রতিটি প্রোগ্রামিং ভাষার জন্য আলাদা কোড
  → জটিল, ধীর, ভুলের সম্ভাবনা বেশি

SQL দিয়ে:
  SELECT name FROM Students WHERE division='Science';
  → এক লাইনে বিজ্ঞান বিভাগের সব ছাত্রের নাম!

৩. চিত্রের মাধ্যমে বোঝো

SQL এর বিভাগসমূহ:

         SQL
          │
    ┌─────┼──────┐
    │     │      │
   DDL   DML    DCL
    │     │      │
  CREATE INSERT GRANT
  ALTER  SELECT REVOKE
  DROP   UPDATE
         DELETE

DDL = Data Definition Language (কাঠামো তৈরি)
DML = Data Manipulation Language (ডেটা পরিবর্তন)
DCL = Data Control Language (অনুমতি নিয়ন্ত্রণ)

৪. বাস্তব জীবনের সাথে মিল

উপমা: SQL হলো ডেটাবেজের সাথে কথা বলার ভাষা — ঠিক যেমন তুমি বাংলায় কথা বললে বাংলাদেশিরা বোঝে, SQL বললে ডেটাবেজ বোঝে। CREATE মানে "নতুন ঘর তৈরি কর", INSERT মানে "এই জিনিস রাখ", SELECT মানে "এটা দেখাও"।


Module 1: SQL কী? (What is SQL?)

📌 সংজ্ঞা

SQL (Structured Query Language) হলো একটি Declarative Programming Language যা Relational Database পরিচালনার জন্য ব্যবহৃত হয়। এটি দিয়ে ডেটা সংজ্ঞায়ন, পরিবর্তন, অনুসন্ধান ও সুরক্ষা নিয়ন্ত্রণ করা যায়।

SQL এর বৈশিষ্ট্য

বৈশিষ্ট্যবিবরণ
Non-procedural"কী চাই" বলতে হয়, "কীভাবে আনবে" নয়
Standardপ্রায় সব RDBMS এ চলে
Set-basedএকবারে অনেক রেকর্ড নিয়ে কাজ
Easy to learnEnglish এর মতো — পড়লেই বোঝা যায়

Module 2: DDL — Data Definition Language

টেবিল তৈরি করা (CREATE TABLE)

-- Students টেবিল তৈরি:
CREATE TABLE Students (
  roll       INTEGER      PRIMARY KEY,
  name       VARCHAR(100) NOT NULL,
  division   VARCHAR(20),
  marks      INTEGER,
  address    TEXT,
  created_at DATE         DEFAULT CURRENT_DATE
);

-- Subjects টেবিল তৈরি:
CREATE TABLE Subjects (
  subject_code CHAR(5)      PRIMARY KEY,
  subject_name VARCHAR(50)  NOT NULL,
  full_marks   INTEGER      DEFAULT 100
);

টেবিল পরিবর্তন (ALTER TABLE)

-- নতুন Column যোগ:
ALTER TABLE Students ADD phone VARCHAR(15);

-- Column পরিবর্তন:
ALTER TABLE Students MODIFY name VARCHAR(150);

-- Column মুছে ফেলা:
ALTER TABLE Students DROP COLUMN address;

টেবিল মুছে ফেলা (DROP TABLE)

-- সতর্কতা: এই কমান্ড সব ডেটা মুছে দেবে!
DROP TABLE Students;

-- টেবিল রেখে ডেটা মুছা:
TRUNCATE TABLE Students;

Module 3: DML — Data Manipulation Language

ডেটা যোগ করা (INSERT)

-- একটি রেকর্ড যোগ:
INSERT INTO Students (roll, name, division, marks)
VALUES (101, 'রাহেলা আক্তর', 'Science', 850);

-- আরেকটি রেকর্ড:
INSERT INTO Students VALUES (102, 'মো: করিম', 'Commerce', 790, NULL, '2026-05-12');

ডেটা পড়া (SELECT)

-- সব রেকর্ড দেখো:
SELECT * FROM Students;

-- নির্দিষ্ট Column:
SELECT name, marks FROM Students;

-- শর্ত দিয়ে:
SELECT name, marks FROM Students WHERE division = 'Science';

-- বাংলাদেশের উদাহরণ:
SELECT name FROM Students WHERE marks >= 800;
-- ফলাফল: রাহেলা আক্তর (850 ≥ 800)

ডেটা পরিবর্তন (UPDATE)

-- একজনের নম্বর পরিবর্তন:
UPDATE Students SET marks = 860 WHERE roll = 101;

-- সবার নম্বরে ১০ যোগ (গ্রেস মার্ক):
UPDATE Students SET marks = marks + 10;

-- শর্তসহ পরিবর্তন:
UPDATE Students SET division = 'Science' WHERE roll = 103;

ডেটা মুছে ফেলা (DELETE)

-- একটি রেকর্ড মুছা:
DELETE FROM Students WHERE roll = 102;

-- শর্তসহ মুছা:
DELETE FROM Students WHERE marks < 300;

-- সতর্কতা: WHERE ছাড়া DELETE সব মুছে দেবে!
-- DELETE FROM Students; → সব ছাত্র মুছে যাবে!

Module 4: DCL — Data Control Language

-- অনুমতি দেওয়া (GRANT):
-- শিক্ষককে শুধু দেখার অনুমতি:
GRANT SELECT ON Students TO 'teacher_user';

-- অ্যাডমিনকে সব অনুমতি:
GRANT ALL PRIVILEGES ON Students TO 'admin_user';

-- অনুমতি বাতিল (REVOKE):
-- শিক্ষকের মুছে ফেলার অনুমতি বাতিল:
REVOKE DELETE ON Students FROM 'teacher_user';

কে কী করতে পারে?

ব্যবহারকারীSELECTINSERTUPDATEDELETE
অ্যাডমিন
শিক্ষক
ছাত্র

Module 5: বাস্তব SQL উদাহরণ

-- একটি স্কুল ডেটাবেজের উদাহরণ:

-- টেবিল তৈরি:
CREATE TABLE Students (
  roll     INTEGER PRIMARY KEY,
  name     VARCHAR(100) NOT NULL,
  division VARCHAR(20),
  marks    INTEGER
);

-- ডেটা যোগ:
INSERT INTO Students VALUES (101, 'রাহেলা', 'Science', 850);
INSERT INTO Students VALUES (102, 'করিম', 'Commerce', 790);
INSERT INTO Students VALUES (103, 'সুমাইয়া', 'Science', 880);
INSERT INTO Students VALUES (104, 'রফিক', 'Arts', 810);

-- প্রশ্ন ১: বিজ্ঞান বিভাগের সব ছাত্র:
SELECT name, marks FROM Students WHERE division = 'Science';
-- ফলাফল:
-- রাহেলা | 850
-- সুমাইয়া | 880

-- প্রশ্ন ২: সর্বোচ্চ নম্বর:
SELECT MAX(marks) FROM Students;
-- ফলাফল: 880

-- প্রশ্ন ৩: গড় নম্বর:
SELECT AVG(marks) FROM Students;
-- ফলাফল: 832.5

Module 6: SQL ও বাংলাদেশ

বাংলাদেশের সিস্টেমে SQL:

📱 bKash:
  SELECT balance FROM Users WHERE phone = '01711111111';
  → ব্যালেন্স দেখানো

🎓 শিক্ষা বোর্ড:
  SELECT name, gpa FROM SSC_Results WHERE roll = '123456';
  → ফলাফল দেখানো

🏦 ব্যাংক:
  UPDATE Accounts SET balance = balance - 1000
  WHERE account_number = 'BD001234567890';
  → টাকা উত্তোলন

🏥 হাসপাতাল:
  INSERT INTO Patients VALUES (NULL, 'রাহেলা', 25, 'ঢাকা', TODAY());
  → নতুন রোগী ভর্তি

🧠 মূল শিক্ষা

মনে রাখো: SQL তিনটি ভাগে — DDL (কাঠামো: CREATE/ALTER/DROP), DML (ডেটা: INSERT/SELECT/UPDATE/DELETE), DCL (অনুমতি: GRANT/REVOKE)। SELECT দিয়ে ডেটা পড়া হয়, WHERE দিয়ে শর্ত দেওয়া হয়। DELETE ব্যবহারে WHERE না দিলে সব মুছে যাবে!


🔁 নিজে পরীক্ষা করো

প্রশ্ন ১: DDL ও DML এর পার্থক্য কী? ✅ উত্তর: DDL (Data Definition Language) টেবিলের কাঠামো তৈরি/পরিবর্তন/মুছে ফেলে — CREATE, ALTER, DROP। DML ডেটা নিয়ে কাজ করে — INSERT, SELECT, UPDATE, DELETE।


প্রশ্ন ২: SELECT * FROM Students; মানে কী? ✅ উত্তর: Students টেবিলের সব Row ও সব Column দেখাও। * মানে সব Column।


প্রশ্ন ৩: UPDATE এ WHERE না দিলে কী হয়? ✅ উত্তর: টেবিলের সব Row পরিবর্তন হয়ে যাবে। এটি বিপজ্জনক।


প্রশ্ন ৪: GRANT ও REVOKE কী কাজ করে? ✅ উত্তর: GRANT ব্যবহারকারীকে অনুমতি দেয়, REVOKE অনুমতি বাতিল করে।


📝 HSC পরীক্ষার প্রস্তুতি

পরীক্ষায় যা আসতে পারে

🎯 SQL এর সংজ্ঞা ও DDL/DML/DCL বর্ণনা (৪ নম্বর) 🎯 CREATE TABLE লেখো (৩ নম্বর) 🎯 INSERT, SELECT, UPDATE, DELETE উদাহরণ (৪ নম্বর) 🎯 SQL ব্যবহার করে নির্দিষ্ট তথ্য বের করো (৫ নম্বর)

সাধারণ ভুলসমূহ

⚠️ SELECT এর পরিবর্তে INSERT লেখা — SELECT পড়ে, INSERT লেখে ⚠️ WHERE ছাড়া DELETE — বিপজ্জনক! সব মুছে যাবে ⚠️ DDL ও DML গুলিয়ে ফেলা — DDL কাঠামো, DML ডেটা

মনে রাখার কৌশল

💡 DML CRUD: Create=INSERT, Read=SELECT, Update=UPDATE, Delete=DELETE 💡 DDL CDA: Create=CREATE, Define/Modify=ALTER, Delete=DROP 💡 WHERE ছাড়া UPDATE/DELETE = বিপদ!


✅ সারাংশ

  • SQL: ডেটাবেজের সাথে কথা বলার ভাষা — Standard, Non-procedural
  • DDL: CREATE (তৈরি), ALTER (পরিবর্তন), DROP (মুছা)
  • DML: INSERT (যোগ), SELECT (পড়া), UPDATE (পরিবর্তন), DELETE (মুছা)
  • DCL: GRANT (অনুমতি দেওয়া), REVOKE (বাতিল)
  • WHERE: শর্ত নির্ধারণ — ছাড়া সব Row এ কাজ হয়

SQL কমান্ড — দ্রুত তুলনা

কমান্ডবিভাগকাজউদাহরণ
CREATEDDLটেবিল তৈরিCREATE TABLE Students
ALTERDDLটেবিল পরিবর্তনALTER TABLE ... ADD ...
DROPDDLটেবিল মুছাDROP TABLE Students
INSERTDMLরেকর্ড যোগINSERT INTO ... VALUES
SELECTDMLরেকর্ড পড়াSELECT * FROM ...
UPDATEDMLরেকর্ড পরিবর্তনUPDATE ... SET ... WHERE
DELETEDMLরেকর্ড মুছাDELETE FROM ... WHERE
GRANTDCLঅনুমতি দেওয়াGRANT SELECT ON ...
REVOKEDCLঅনুমতি বাতিলREVOKE DELETE FROM ...

🎯 অনুশীলন প্রশ্ন

১. একটি Library টেবিল তৈরি করো যেখানে Book_ID, Title, Author, Year, Price থাকবে।

২. নিচের প্রশ্নগুলোর SQL লেখো:

  • বিজ্ঞান বিভাগের ছাত্রদের নাম দেখাও
  • ৮০০ এর বেশি নম্বর পাওয়া ছাত্রের তথ্য দেখাও

৩. DDL ও DML এর মধ্যে পার্থক্য কী? প্রতিটির ২টি উদাহরণ দাও।

৪. GRANT ও REVOKE কমান্ড কেন দরকার?

৫. MCQ: SQL এ নতুন রেকর্ড যোগ করার কমান্ড কোনটি? (ক) ADD (খ) INSERT (গ) CREATE (ঘ) UPDATE উত্তর: (খ) INSERT