WebX

SQL চিটশিট

SQL হলো রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেমে ডেটা সংরক্ষণ, পুনরুদ্ধার এবং পরিচালনার জন্য একটি ভাষা। এই চিটশিটে SQL-এর সব গুরুত্বপূর্ণ কমান্ড এবং ধারণা অন্তর্ভুক্ত করা হয়েছে।

১. SQL-এর মৌলিক ধারণা

১.১ ডাটাবেস এবং টেবিল

  • ডাটাবেস: ডেটার সংগঠিত সংগ্রহ।
  • টেবিল: সারি (Rows) এবং কলাম (Columns) দিয়ে ডেটা সংরক্ষণ।

১.২ SQL-এর প্রকারভেদ

প্রকারবর্ণনা
DDLডাটাবেস স্ট্রাকচার সংজ্ঞায়িত (CREATE, ALTER)
DMLডেটা ম্যানিপুলেশন (INSERT, SELECT, UPDATE)
DCLনিয়ন্ত্রণ (GRANT, REVOKE)
TCLট্রানজাকশন নিয়ন্ত্রণ (COMMIT, ROLLBACK)

২. মৌলিক SQL কমান্ড

২.১ ডাটাবেস তৈরি

CREATE DATABASE my_database;
USE my_database;

২.২ টেবিল তৈরি (CREATE TABLE)

CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    city VARCHAR(50)
);
  • ডেটা টাইপ: INT, VARCHAR(n), TEXT, DATE, FLOAT, ইত্যাদি।
  • কনস্ট্রেইন্ট: PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE

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

INSERT INTO students (id, name, age, city)
VALUES (1, 'আনিস', 20, 'ঢাকা');
  • একাধিক সারি:
INSERT INTO students VALUES 
(2, 'করিম', 22, 'চট্টগ্রাম'),
(3, 'সেলিম', 19, 'সিলেট');

২.৪ ডেটা পড়া (SELECT)

SELECT * FROM students; -- সব কলাম
SELECT name, age FROM students; -- নির্দিষ্ট কলাম
  • শর্ত সহ:
SELECT * FROM students WHERE age > 20;
  • অর্ডার করা:
SELECT * FROM students ORDER BY age ASC; -- ক্রমবর্ধমান

২.৫ ডেটা আপডেট (UPDATE)

UPDATE students
SET age = 21
WHERE name = 'আনিস';

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

DELETE FROM students WHERE id = 2;

২.৭ টেবিল মুছে ফেলা (DROP)

DROP TABLE students;

৩. কোয়েরি ফিল্টারিং এবং অপারেটর

৩.১ WHERE ক্লজ

অপারেটরবর্ণনাউদাহরণ
=সমান।WHERE age = 20
>বড়।WHERE age > 20
<ছোট।WHERE age < 20
!= বা <>সমান নয়।WHERE age != 20
LIKEপ্যাটার্ন ম্যাচ।WHERE name LIKE 'র%'
INতালিকার মধ্যে।WHERE city IN ('ঢাকা', 'সিলেট')
BETWEENপরিসরের মধ্যে।WHERE age BETWEEN 18 AND 25

উদাহরণ:

SELECT * FROM students WHERE age BETWEEN 18 AND 22 AND city = 'ঢাকা';

৩.২ লজিক্যাল অপারেটর

  • AND, OR, NOT:
SELECT * FROM students WHERE age > 18 AND city != 'ঢাকা';

৪. এগ্রিগেট ফাংশন

ফাংশনবর্ণনাউদাহরণ
COUNTসংখ্যা গণনা।SELECT COUNT(*) FROM students;
SUMযোগফল।SELECT SUM(age) FROM students;
AVGগড়।SELECT AVG(age) FROM students;
MINসর্বনিম্ন।SELECT MIN(age) FROM students;
MAXসর্বোচ্চ।SELECT MAX(age) FROM students;

উদাহরণ:

SELECT AVG(age) AS avg_age FROM students WHERE city = 'ঢাকা';

৫. গ্রুপিং এবং জয়েন

৫.১ GROUP BY

SELECT city, COUNT(*) AS total_students
FROM students
GROUP BY city;
  • HAVING (গ্রুপ ফিল্টার):
SELECT city, COUNT(*) AS total
FROM students
GROUP BY city
HAVING COUNT(*) > 1;

৫.২ JOIN

ধরনবর্ণনাউদাহরণ
INNER JOINশুধু ম্যাচিং রেকর্ড।INNER JOIN grades ON students.id = grades.student_id
LEFT JOINবাম টেবিলের সব + ম্যাচিং।LEFT JOIN grades ON students.id = grades.student_id
RIGHT JOINডান টেবিলের সব + ম্যাচিং।RIGHT JOIN grades ON students.id = grades.student_id
FULL JOINসব রেকর্ড।FULL JOIN grades ON students.id = grades.student_id

উদাহরণ:

CREATE TABLE grades (
    student_id INT,
    grade VARCHAR(2)
);
 
INSERT INTO grades VALUES (1, 'A'), (2, 'B');
 
SELECT students.name, grades.grade
FROM students
INNER JOIN grades ON students.id = grades.student_id;

৬. উন্নত SQL

৬.১ সাবকোয়েরি

SELECT name
FROM students
WHERE id IN (SELECT student_id FROM grades WHERE grade = 'A');

৬.২ ইউনিয়ন (UNION)

SELECT name FROM students
UNION
SELECT name FROM teachers;

৬.৩ ইনডেক্স (INDEX)

CREATE INDEX idx_name ON students(name);

৬.৪ ভিউ (VIEW)

CREATE VIEW dhaka_students AS
SELECT * FROM students WHERE city = 'ঢাকা';
 
SELECT * FROM dhaka_students;

৭. ডেটা পরিবর্তন

৭.১ টেবিল পরিবর্তন (ALTER)

ALTER TABLE students
ADD COLUMN email VARCHAR(100);
 
ALTER TABLE students
DROP COLUMN email;

৭.২ কনস্ট্রেইন্ট যোগ

ALTER TABLE students
ADD CONSTRAINT unique_name UNIQUE (name);

৮. ট্রানজাকশন

START TRANSACTION;
 
INSERT INTO students VALUES (4, 'আলী', 23, 'রাজশাহী');
UPDATE students SET age = 24 WHERE id = 4;
 
COMMIT; -- স্থায়ী করা
-- ROLLBACK; -- বাতিল করা

৯. স্ট্রিং এবং ডেট ফাংশন

ফাংশনবর্ণনাউদাহরণ
CONCATস্ট্রিং যোগ।SELECT CONCAT(name, ' ', city) FROM students;
UPPERবড় হাতের অক্ষর।SELECT UPPER(name) FROM students;
LOWERছোট হাতের অক্ষর।SELECT LOWER(city) FROM students;
LENGTHদৈর্ঘ্য।SELECT LENGTH(name) FROM students;
NOWবর্তমান সময়।SELECT NOW();
DATEতারিখ।SELECT DATE(NOW());

১০. উদাহরণ: একটি সম্পূর্ণ ডাটাবেস

-- ডাটাবেস তৈরি
CREATE DATABASE school;
USE school;
 
-- টেবিল তৈরি
CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT,
    city VARCHAR(50)
);
 
CREATE TABLE courses (
    course_id INT PRIMARY KEY,
    course_name VARCHAR(50),
    student_id INT,
    FOREIGN KEY (student_id) REFERENCES students(id)
);
 
-- ডেটা যোগ
INSERT INTO students (name, age, city) VALUES
('আনিস', 20, 'ঢাকা'),
('করিম', 22, 'চট্টগ্রাম');
 
INSERT INTO courses VALUES
(1, 'গণিত', 1),
(2, 'বিজ্ঞান', 2);
 
-- কোয়েরি
SELECT s.name, c.course_name
FROM students s
INNER JOIN courses c ON s.id = c.student_id
WHERE s.city = 'ঢাকা';

On this page