Database Tutorials T-SQL এ CRUD অপারেশন গাইড ও নোট

318

CRUD হলো একটি একক শব্দ যা চারটি মৌলিক ডেটাবেস অপারেশনকে বোঝায়:

  • Create (তৈরি করা)
  • Read (পড়া)
  • Update (আপডেট করা)
  • Delete (মুছে ফেলা)

T-SQL (Transact-SQL) এ CRUD অপারেশনগুলি SQL Server ডেটাবেসে ডেটা পরিচালনা করতে ব্যবহৃত হয়। এখানে প্রতিটি অপারেশনের জন্য T-SQL কন্টেক্সটে উদাহরণ দেওয়া হলো:


১. CREATE: নতুন রেকর্ড তৈরি করা

CREATE অপারেশন ডেটাবেসের টেবিলে নতুন রেকর্ড ইনসার্ট করতে ব্যবহৃত হয়।

উদাহরণ:

ধরা যাক, আমাদের একটি Employees টেবিল আছে যার মধ্যে EmployeeID, EmployeeName, এবং Position রয়েছে।

-- Employees টেবিলে নতুন রেকর্ড ইনসার্ট করা
INSERT INTO Employees (EmployeeID, EmployeeName, Position)
VALUES (1, 'John Doe', 'Manager');

এখানে INSERT INTO স্টেটমেন্টটি টেবিলের মধ্যে একটি নতুন রেকর্ড তৈরি করে।


২. READ: রেকর্ড পড়া বা নির্বাচন করা

READ অপারেশন ডেটাবেস থেকে ডেটা নির্বাচন বা পড়ার জন্য ব্যবহৃত হয়।

উদাহরণ:

-- Employees টেবিল থেকে সব রেকর্ড পড়া
SELECT * FROM Employees;

এটি Employees টেবিলের সমস্ত রেকর্ড নির্বাচন করে এবং ফলাফল হিসেবে দেখায়।

নির্দিষ্ট রেকর্ড পড়ার জন্য:

-- EmployeeID = 1 এর রেকর্ড পড়া
SELECT * FROM Employees WHERE EmployeeID = 1;

এটি EmployeeID = 1 এর রেকর্ডটি নির্বাচন করবে।


৩. UPDATE: রেকর্ড আপডেট করা

UPDATE অপারেশন বিদ্যমান রেকর্ডে পরিবর্তন আনার জন্য ব্যবহৃত হয়।

উদাহরণ:

-- EmployeeID = 1 এর EmployeeName আপডেট করা
UPDATE Employees
SET EmployeeName = 'Jane Doe'
WHERE EmployeeID = 1;

এটি EmployeeID = 1 এর EmployeeName পরিবর্তন করে Jane Doe করে দিবে।


৪. DELETE: রেকর্ড মুছে ফেলা

DELETE অপারেশন টেবিল থেকে একটি বা একাধিক রেকর্ড মুছে ফেলতে ব্যবহৃত হয়।

উদাহরণ:

-- EmployeeID = 1 এর রেকর্ড মুছে ফেলা
DELETE FROM Employees
WHERE EmployeeID = 1;

এটি EmployeeID = 1 এর রেকর্ড মুছে ফেলবে।


সারাংশ

  • CREATE (INSERT) অপারেশনটি টেবিলে নতুন ডেটা সংযুক্ত করতে ব্যবহৃত হয়।
  • READ (SELECT) অপারেশনটি টেবিল থেকে ডেটা পড়ার জন্য ব্যবহৃত হয়।
  • UPDATE অপারেশনটি বিদ্যমান ডেটাকে পরিবর্তন করতে ব্যবহৃত হয়।
  • DELETE অপারেশনটি টেবিল থেকে ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়।

T-SQL এর মাধ্যমে SQL Server-এ CRUD অপারেশনগুলো সহজেই পরিচালনা করা যায় এবং এটি ডেটাবেসের ডেটা পরিচালনার জন্য একটি মূল উপাদান।

Content added By

ডেটাবেজ তৈরি এবং ম্যানেজমেন্ট

328

ডেটাবেজ তৈরি এবং ম্যানেজমেন্ট হল SQL Server এর মৌলিক কাজ। SQL Server-এ ডেটাবেজ তৈরি করতে, টেবিল তৈরি করতে, ডেটা ম্যানেজ করতে এবং তা সঠিকভাবে পরিচালনা করার জন্য বেশ কিছু গুরুত্বপূর্ণ ধাপ রয়েছে। SSMS বা T-SQL ব্যবহার করে এই কাজগুলি করা যায়।

নিচে SQL Server-এ ডেটাবেজ তৈরি এবং ম্যানেজমেন্টের বিস্তারিত পদক্ষেপ দেওয়া হলো।


১. ডেটাবেজ তৈরি করা

SSMS ব্যবহার করে ডেটাবেজ তৈরি:

  1. SQL Server Management Studio (SSMS) খুলুন।
  2. Object Explorer-এ আপনার সার্ভার ইনস্ট্যান্স নির্বাচন করুন।
  3. Databases-এর উপর রাইট ক্লিক করুন এবং New Database... নির্বাচন করুন।
  4. New Database উইন্ডোতে:
    • Database Name: ডেটাবেজের নাম দিন।
    • Owner: ডিফল্টভাবে sa থাকে, তবে আপনি চাইলে অন্য কোনো ব্যবহারকারী নির্বাচন করতে পারেন।
    • Filegroups: ডিফল্ট ফাইল গ্রুপ থাকবে, তবে আপনি কাস্টমাইজ করতে পারেন।
  5. OK ক্লিক করুন। এখন আপনার ডেটাবেজ তৈরি হয়ে যাবে।

T-SQL ব্যবহার করে ডেটাবেজ তৈরি:

CREATE DATABASE MyDatabase;

এটি MyDatabase নামক একটি ডেটাবেজ তৈরি করবে। আপনি এখানে ডেটাবেজের নাম পরিবর্তন করতে পারেন।


২. টেবিল তৈরি করা

ডেটাবেজ তৈরি করার পর, আপনি সেই ডেটাবেজে টেবিল তৈরি করতে পারেন। টেবিল ডেটার সংরক্ষণ এবং পরিচালনার জন্য ব্যবহৃত হয়।

SSMS ব্যবহার করে টেবিল তৈরি:

  1. Object Explorer-এ ডেটাবেজটি নির্বাচন করুন।
  2. Tables-এর উপর রাইট ক্লিক করুন এবং New Table নির্বাচন করুন।
  3. নতুন টেবিলের জন্য Column Name এবং Data Type নির্বাচন করুন।
  4. Primary Key: টেবিলের কোনো কলামকে Primary Key হিসেবে সেট করতে পারেন।
  5. Save ক্লিক করুন এবং টেবিলের জন্য একটি নাম দিন।

T-SQL ব্যবহার করে টেবিল তৈরি:

USE MyDatabase;  -- যেই ডেটাবেজে টেবিল তৈরি করবেন, সেটি নির্বাচন করুন
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    HireDate DATE
);

এটি Employees নামক একটি টেবিল তৈরি করবে যার মধ্যে EmployeeID, FirstName, LastName, এবং HireDate কলাম থাকবে।


৩. ডেটা ইনসার্ট করা

একবার টেবিল তৈরি হয়ে গেলে, আপনি ডেটা ইনসার্ট করতে পারেন।

SSMS ব্যবহার করে ডেটা ইনসার্ট:

  1. টেবিলটির উপর রাইট ক্লিক করুন এবং Edit Top 200 Rows নির্বাচন করুন।
  2. একটি নতুন রেকর্ড ইনপুট করতে টেবিলের মধ্যে সেল নির্বাচন করুন এবং ডেটা যোগ করুন।

T-SQL ব্যবহার করে ডেটা ইনসার্ট:

INSERT INTO Employees (EmployeeID, FirstName, LastName, HireDate)
VALUES (1, 'John', 'Doe', '2024-01-01');

এটি Employees টেবিলে একটি নতুন রেকর্ড ইনসার্ট করবে।


৪. ডেটা আপডেট এবং ডিলিট করা

আপনার ডেটাবেজের ডেটা আপডেট বা মুছে ফেলার জন্য SQL কোড ব্যবহার করতে হবে।

SSMS ব্যবহার করে ডেটা আপডেট:

  1. টেবিলের উপর রাইট ক্লিক করে Edit Top 200 Rows নির্বাচন করুন।
  2. সংশোধনযোগ্য রেকর্ডটি নির্বাচন করুন এবং নতুন মান দিন।

T-SQL ব্যবহার করে ডেটা আপডেট:

UPDATE Employees
SET LastName = 'Smith'
WHERE EmployeeID = 1;

এটি EmployeeID 1 এর LastName আপডেট করে Smith করে দেবে।

T-SQL ব্যবহার করে ডেটা ডিলিট:

DELETE FROM Employees
WHERE EmployeeID = 1;

এটি EmployeeID 1 এর রেকর্ডটি মুছে ফেলবে।


৫. ডেটাবেজ এবং টেবিল ম্যানেজমেন্ট

ডেটাবেজ রিসোর্স ম্যানেজমেন্ট:

SQL Server-এ ডেটাবেজের ফাইল গ্রুপ এবং সংশ্লিষ্ট ফাইল পরিচালনা করতে পারেন।

  • ALTER DATABASE ব্যবহার করে ডেটাবেজে পরিবর্তন আনা:
ALTER DATABASE MyDatabase
MODIFY FILE (NAME = 'MyDatabaseData', SIZE = 100MB);

টেবিল রিসোর্স ম্যানেজমেন্ট:

টেবিলের মধ্যে ইন্ডেক্স এবং ফরেন কী যুক্ত করা:

  • ইন্ডেক্স: ডেটাবেজের অনুসন্ধান দ্রুত করতে CREATE INDEX ব্যবহার করা যায়।
  • ফরেন কী: একটি টেবিলের কলামকে অন্য টেবিলের Primary Key এর সাথে যুক্ত করা হয়।
ALTER TABLE Employees
ADD CONSTRAINT FK_EmployeeDepartment
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID);

৬. ব্যাকআপ এবং রিস্টোর

ডেটাবেজের ব্যাকআপ এবং রিস্টোর কৌশল গুরুত্বপূর্ণ। SQL Server-এ আপনাকে Backup এবং Restore অপশন ব্যবহার করতে হবে।

T-SQL ব্যবহার করে ব্যাকআপ:

BACKUP DATABASE MyDatabase
TO DISK = 'C:\Backups\MyDatabase.bak';

T-SQL ব্যবহার করে রিস্টোর:

RESTORE DATABASE MyDatabase
FROM DISK = 'C:\Backups\MyDatabase.bak';

৭. ডেটাবেজ এবং টেবিলের নিরাপত্তা

SQL Server-এ ডেটাবেজ ও টেবিলের নিরাপত্তা নিশ্চিত করার জন্য আপনি পারমিশন এবং রোলস ব্যবহার করতে পারেন।

T-SQL ব্যবহার করে পারমিশন নির্ধারণ:

GRANT SELECT, INSERT, UPDATE ON Employees TO User1;

সারাংশ

SQL Server-এ ডেটাবেজ তৈরি এবং ম্যানেজমেন্টের জন্য SSMS এবং T-SQL ব্যবহার করা হয়। SSMS-এর মাধ্যমে গ্রাফিকাল ইন্টারফেস ব্যবহার করে সহজে ডেটাবেজ এবং টেবিল তৈরি করা সম্ভব, তবে T-SQL ব্যবহার করে আপনি আরও কাস্টমাইজড এবং শক্তিশালী কাজ করতে পারেন যেমন ডেটাবেজের ফাইল ম্যানেজমেন্ট, পারমিশন কনফিগারেশন, ব্যাকআপ এবং রিস্টোর। T-SQL কোডের মাধ্যমে ডেটা ইনসার্ট, আপডেট এবং ডিলিট করা যায় এবং ডেটাবেজ পরিচালনায় সুবিধা পাওয়া যায়।

Content added By

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

703

SQL-এ CREATE TABLE কমান্ড ব্যবহার করে একটি নতুন টেবিল তৈরি করা হয়। টেবিল হলো ডেটাবেসের একটি বেসিক ইউনিট যা ডেটা স্টোর করে এবং এটি কলাম এবং রো দ্বারা সংগঠিত থাকে। CREATE TABLE স্টেটমেন্টে আপনি টেবিলের নাম, কলাম নাম, ডেটা টাইপ এবং অন্যান্য কনস্ট্রেইন্ট (যেমন: Primary Key, Not Null, Unique) নির্ধারণ করেন।


CREATE TABLE সিনট্যাক্স

CREATE TABLE table_name (
    column1 datatype constraints,
    column2 datatype constraints,
    column3 datatype constraints,
    ...
);
  • table_name: নতুন টেবিলের নাম।
  • column1, column2, column3: টেবিলের কলামের নাম।
  • datatype: প্রতিটি কলামের জন্য ডেটা টাইপ (যেমন: INT, VARCHAR, DATE ইত্যাদি)।
  • constraints: কলামগুলোর জন্য কনস্ট্রেইন্ট যেমন PRIMARY KEY, NOT NULL, UNIQUE, DEFAULT ইত্যাদি।

টেবিল তৈরি করার উদাহরণ

১. বেসিক টেবিল তৈরি

ধরা যাক, আমরা একটি Students নামের টেবিল তৈরি করতে চাই যা ছাত্রদের তথ্য রাখবে। এতে ছাত্রের আইডি, নাম এবং জন্ম তারিখ থাকবে।

CREATE TABLE Students (
    StudentID INT PRIMARY KEY,
    Name VARCHAR(100),
    BirthDate DATE
);

এখানে:

  • StudentID কলামটি একটি PRIMARY KEY কনস্ট্রেইন্ট সহ তৈরি করা হয়েছে, যা নিশ্চিত করবে যে প্রতিটি ছাত্রের জন্য একটি ইউনিক আইডি থাকবে।
  • Name কলামটি VARCHAR(100) ডেটা টাইপের, যার মানে এটি 100টি অক্ষরের একটি স্ট্রিং ধারণ করতে পারে।
  • BirthDate কলামটি DATE ডেটা টাইপের, যা একটি নির্দিষ্ট তারিখ সংরক্ষণ করবে।

২. নট নাল (NOT NULL) কনস্ট্রেইন্ট সহ টেবিল তৈরি

ধরা যাক, আমরা একটি Employees টেবিল তৈরি করছি যেখানে কর্মচারীর আইডি, নাম এবং বিভাগ থাকবে, এবং Name কলামটি খালি (null) থাকতে পারবে না।

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Name VARCHAR(100) NOT NULL,
    Department VARCHAR(50)
);

এখানে:

  • Name কলামে NOT NULL কনস্ট্রেইন্ট যোগ করা হয়েছে, যাতে কর্মচারীর নাম ফাঁকা (null) না থাকে।

৩. ডিফল্ট মান (DEFAULT) কনস্ট্রেইন্ট সহ টেবিল তৈরি

ধরা যাক, আমরা একটি Products টেবিল তৈরি করছি যেখানে Price কলামে একটি ডিফল্ট মান থাকবে যদি দাম উল্লেখ না করা হয়।

CREATE TABLE Products (
    ProductID INT PRIMARY KEY,
    ProductName VARCHAR(100),
    Price DECIMAL(10, 2) DEFAULT 0.00
);

এখানে:

  • Price কলামে DEFAULT কনস্ট্রেইন্ট দেওয়া হয়েছে, যার মান 0.00, অর্থাৎ যদি Price এর মান উল্লেখ না করা হয়, তাহলে তা 0.00 হবে।

৪. ইউনিক কনস্ট্রেইন্ট (UNIQUE) সহ টেবিল তৈরি

ধরা যাক, আমরা একটি Customers টেবিল তৈরি করতে চাই যেখানে Email কলামে ইউনিক কনস্ট্রেইন্ট থাকবে যাতে একই ইমেইল একাধিক বার ব্যবহার না হয়।

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    Name VARCHAR(100),
    Email VARCHAR(100) UNIQUE
);

এখানে:

  • Email কলামে UNIQUE কনস্ট্রেইন্ট যোগ করা হয়েছে, যার মাধ্যমে নিশ্চিত করা হয় যে কোনো দুটি রেকর্ডে একই ইমেইল থাকবে না।

সারাংশ

CREATE TABLE স্টেটমেন্ট SQL-এ নতুন টেবিল তৈরি করার জন্য ব্যবহৃত হয়। আপনি টেবিলের নাম, কলাম নাম, ডেটা টাইপ এবং কনস্ট্রেইন্ট নির্ধারণ করতে পারেন, যেমন PRIMARY KEY, NOT NULL, DEFAULT, এবং UNIQUE। এই কমান্ডের মাধ্যমে টেবিল তৈরি করার পর, আপনি সেই টেবিলে ডেটা ইনসার্ট, আপডেট, এবং সিলেক্ট করতে পারবেন।

Content added By

ডেটা ইনসার্ট করা (INSERT INTO)

412

SQL INSERT INTO কমান্ড ব্যবহার করে SQL ডেটাবেসে নতুন রেকর্ড (ডেটা) ইনসার্ট করা হয়। INSERT INTO স্টেটমেন্ট ডেটাবেসের টেবিলে নতুন তথ্য যোগ করার জন্য ব্যবহৃত হয়।

১. বেসিক সিনট্যাক্স

SQL-এ ডেটা ইনসার্ট করার জন্য সাধারণ সিনট্যাক্স হল:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

এখানে:

  • table_name হল টেবিলের নাম যেখানে ডেটা ইনসার্ট করতে হবে।
  • (column1, column2, column3, ...) হল সেই কলামগুলির নাম যেখানে আপনি ডেটা ইনসার্ট করতে চান।
  • (value1, value2, value3, ...) হল সেই কলামগুলির জন্য ইনসার্ট করা মান (values)।

২. বেসিক উদাহরণ

ধরা যাক, আমাদের একটি Students টেবিল আছে যার কলামগুলির নাম: ID, Name, এবং Age। যদি আমরা এই টেবিলে একটি নতুন রেকর্ড ইনসার্ট করতে চাই, তাহলে SQL কমান্ড হবে:

INSERT INTO Students (ID, Name, Age)
VALUES (1, 'John Doe', 22);

এই কমান্ডটি Students টেবিলে একটি নতুন রেকর্ড ইনসার্ট করবে, যেখানে:

  • ID এর মান হবে 1
  • Name এর মান হবে 'John Doe'
  • Age এর মান হবে 22

৩. কলাম না উল্লেখ করা

আপনি যদি সমস্ত কলামে ডেটা ইনসার্ট করতে চান এবং সকল কলামের জন্য মান প্রদান করেন, তবে কলামগুলির নাম উল্লেখ না করেও ইনসার্ট করতে পারেন। উদাহরণস্বরূপ:

INSERT INTO Students
VALUES (2, 'Jane Smith', 21);

এখানে কলামগুলির নাম উল্লেখ করা হয়নি, কারণ আমরা টেবিলের সকল কলামের জন্য মান প্রদান করছি। এর মানে হল যে প্রথম মানটি প্রথম কলামের (ID), দ্বিতীয় মানটি দ্বিতীয় কলামের (Name), এবং তৃতীয় মানটি তৃতীয় কলামের (Age) জন্য হবে।

৪. একাধিক রেকর্ড ইনসার্ট করা

একই SQL কমান্ডে একাধিক রেকর্ড ইনসার্ট করা যায়। উদাহরণস্বরূপ:

INSERT INTO Students (ID, Name, Age)
VALUES 
(3, 'Mike Johnson', 23),
(4, 'Emily Davis', 20),
(5, 'Chris Lee', 25);

এই কমান্ডটি একসাথে তিনটি রেকর্ড ইনসার্ট করবে।

৫. ডেটা ইনসার্ট করা SELECT স্টেটমেন্ট ব্যবহার করে

যদি আপনি অন্য একটি টেবিল থেকে ডেটা সংগ্রহ করে অন্য টেবিলে ইনসার্ট করতে চান, তবে INSERT INTO কমান্ডের সাথে SELECT ব্যবহার করতে পারেন। উদাহরণ:

INSERT INTO NewStudents (ID, Name, Age)
SELECT ID, Name, Age
FROM Students
WHERE Age > 21;

এটি Students টেবিল থেকে সকল ছাত্রের তথ্য (যাদের বয়স ২১ এর বেশি) NewStudents টেবিলে ইনসার্ট করবে।

৬. NULL মান ইনসার্ট করা

যদি কোনো কলামে মান প্রদান না করতে চান এবং তা NULL হতে চায়, তাহলে আপনি NULL ব্যবহার করতে পারেন। উদাহরণ:

INSERT INTO Students (ID, Name, Age)
VALUES (6, 'Laura White', NULL);

এখানে Age কলামে NULL মান ইনসার্ট করা হয়েছে, যা Age এর জন্য কোনো মান প্রদান না করার সমার্থক।

সারাংশ

INSERT INTO SQL কমান্ড একটি টেবিলের মধ্যে নতুন রেকর্ড ইনসার্ট করার জন্য ব্যবহৃত হয়। এটি কলামগুলো উল্লেখ করে অথবা কলাম না উল্লেখ করেও ডেটা ইনসার্ট করতে পারে। একাধিক রেকর্ড ইনসার্ট, অন্য টেবিল থেকে ডেটা ইনসার্ট, এবং NULL মান ইনসার্ট করার মতো বিভিন্ন কৌশল ব্যবহার করা যায়।

Content added By

ডেটা পড়া (SELECT)

342

SQL SELECT কমান্ড ব্যবহার করে ডেটাবেস থেকে ডেটা নির্বাচিত বা পড়া হয়। এটি SQL এর একটি মৌলিক এবং সবচেয়ে সাধারণ কমান্ড যা রিলেশনাল ডেটাবেস থেকে ডেটা অনুসন্ধান বা রিট্রিভ করার জন্য ব্যবহৃত হয়। SELECT কমান্ড ব্যবহার করে আপনি টেবিল থেকে নির্দিষ্ট কলাম বা সমস্ত কলাম নির্বাচন করতে পারেন।

SELECT কমান্ডের মৌলিক সিনট্যাক্স:

SELECT column1, column2, ...
FROM table_name;

এখানে:

  • column1, column2, ...: যে কলামগুলো আপনি নির্বাচিত করতে চান, সেগুলোর নাম।
  • table_name: টেবিলের নাম যেখানে থেকে ডেটা নির্বাচন করা হবে।

১. সব কলাম নির্বাচন করা

যদি আপনি একটি টেবিল থেকে সব কলাম নির্বাচন করতে চান, তাহলে * ব্যবহার করতে পারেন:

SELECT * FROM Employees;

এটি Employees টেবিলের সমস্ত কলাম এবং রেকর্ড নির্বাচন করবে।


২. নির্দিষ্ট কলাম নির্বাচন করা

যদি আপনি শুধুমাত্র কিছু নির্দিষ্ট কলাম নির্বাচন করতে চান, তাহলে কলামের নাম উল্লেখ করতে হবে:

SELECT FirstName, LastName FROM Employees;

এটি Employees টেবিল থেকে শুধু FirstName এবং LastName কলামগুলোর ডেটা নির্বাচন করবে।


৩. শর্ত অনুযায়ী ডেটা নির্বাচন (WHERE)

WHERE ক্লজ ব্যবহার করে আপনি নির্দিষ্ট শর্ত অনুযায়ী ডেটা নির্বাচন করতে পারেন:

SELECT * FROM Employees
WHERE Department = 'HR';

এটি Employees টেবিল থেকে সেই সমস্ত রেকর্ড নির্বাচন করবে যাদের Department কলামের মান 'HR'


৪. অর্ডার দ্বারা ডেটা নির্বাচন (ORDER BY)

ORDER BY ক্লজ ব্যবহার করে আপনি নির্বাচন করা ডেটাকে নির্দিষ্ট কলাম অনুসারে সাজাতে পারেন। আপনি ASC (অ্যাসেন্ডিং) বা DESC (ডিসেন্ডিং) ব্যবহার করতে পারেন।

SELECT * FROM Employees
ORDER BY Salary DESC;

এটি Employees টেবিলের সব রেকর্ড নির্বাচন করবে এবং Salary কলাম অনুযায়ী ডেটাগুলি ডিসেন্ডিং (DESC) অর্ডারে সাজানো হবে।


৫. LIMIT ব্যবহার করা (TOP বা LIMIT)

যদি আপনি শুধুমাত্র কিছু নির্দিষ্ট সংখ্যক রেকর্ড নির্বাচন করতে চান, তবে LIMIT বা TOP ব্যবহার করতে পারেন।

  • SQL Server (TOP):

    SELECT TOP 5 * FROM Employees;
    

    এটি Employees টেবিল থেকে প্রথম ৫টি রেকর্ড নির্বাচন করবে।

  • MySQL/PostgreSQL (LIMIT):

    SELECT * FROM Employees LIMIT 5;
    

    এটি Employees টেবিল থেকে প্রথম ৫টি রেকর্ড নির্বাচন করবে।


৬. গ্রুপিং এবং অ্যাগ্রিগেট ফাংশন (GROUP BY)

GROUP BY ক্লজ ব্যবহার করে আপনি একাধিক রেকর্ড গ্রুপ করতে পারেন এবং অ্যাগ্রিগেট ফাংশন যেমন COUNT(), SUM(), AVG(), MIN(), MAX() ব্যবহার করতে পারেন।

SELECT Department, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY Department;

এটি Employees টেবিল থেকে প্রতিটি Department অনুযায়ী কর্মচারীদের সংখ্যা (EmployeeCount) গণনা করবে।


৭. JOIN ব্যবহার করে ডেটা নির্বাচন

JOIN ব্যবহার করে আপনি একাধিক টেবিল থেকে ডেটা একত্রিত করতে পারেন। এখানে একটি সাধারণ INNER JOIN উদাহরণ:

SELECT Employees.FirstName, Employees.LastName, Departments.DepartmentName
FROM Employees
INNER JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;

এটি Employees এবং Departments টেবিলের মধ্যে DepartmentID ফিল্ডের মাধ্যমে মিলিয়ে প্রথম নাম, শেষ নাম এবং বিভাগ নাম নির্বাচন করবে।


সারাংশ

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

Content added By

ডেটা আপডেট করা (UPDATE)

324

SQL-এ UPDATE স্টেটমেন্ট ব্যবহার করে একটি নির্দিষ্ট টেবিলের ডেটা পরিবর্তন (আপডেট) করা হয়। এটি ডেটাবেসের এক বা একাধিক রেকর্ডের মান পরিবর্তন করার জন্য ব্যবহৃত হয়। যখন আপনাকে একটি টেবিলের কোনো কলামের মান পরিবর্তন করতে হয়, তখন UPDATE স্টেটমেন্ট ব্যবহার করা হয়।


UPDATE স্টেটমেন্টের সাধারণ সিনট্যাক্স:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • table_name: এখানে টেবিলের নাম প্রদান করতে হবে, যেখানে আপডেট করতে চান।
  • column1, column2, ...: এই কলামগুলো সেই কলামগুলো যা আপনি আপডেট করতে চান।
  • value1, value2, ...: এখানে নতুন মান প্রদান করতে হবে যা আপডেট হবে।
  • WHERE condition: কন্ডিশন (শর্ত) ব্যবহার করে নির্দিষ্ট রেকর্ড নির্বাচন করুন যা আপডেট হবে। WHERE না ব্যবহার করলে পুরো টেবিলের সকল রেকর্ড আপডেট হয়ে যাবে, যা সাধারণত ভুল হতে পারে।

উদাহরণ ১: একটি রেকর্ড আপডেট করা

ধরা যাক, আমাদের একটি Employees নামক টেবিল আছে, যেখানে কিছু কর্মীর তথ্য রয়েছে। এখন আমরা যদি একজন কর্মীর নাম পরিবর্তন করতে চাই, যাঁর EmployeeID 101:

UPDATE Employees
SET Name = 'John Doe'
WHERE EmployeeID = 101;

এখানে, Name কলামের মান 'John Doe' হিসেবে আপডেট হবে, শুধুমাত্র সেই রেকর্ডের জন্য যার EmployeeID 101।


উদাহরণ ২: একাধিক কলাম আপডেট করা

আপনি একসাথে একাধিক কলাম আপডেট করতে পারেন। যেমন:

UPDATE Employees
SET Name = 'Jane Smith', Position = 'Manager'
WHERE EmployeeID = 102;

এখানে, Name কলাম 'Jane Smith' এবং Position কলাম 'Manager' হিসেবে আপডেট হবে, শুধুমাত্র সেই রেকর্ডের জন্য যার EmployeeID 102।


উদাহরণ ৩: একাধিক রেকর্ড আপডেট করা

যদি আপনি WHERE শর্ত ব্যবহার করে একাধিক রেকর্ড আপডেট করতে চান, তবে তা সম্ভব। যেমন, যদি আপনি সকল কর্মীকে একই পদের জন্য আপডেট করতে চান:

UPDATE Employees
SET Position = 'Senior Developer'
WHERE Department = 'IT';

এখানে, Department কলামের মান 'IT' যাদের আছে, তাদের Position কলামের মান 'Senior Developer' হিসেবে আপডেট হবে।


উদাহরণ ৪: কোনো শর্ত ছাড়াই আপডেট করা

যদি WHERE ক্লজ ব্যবহার না করেন, তাহলে পুরো টেবিলের সব রেকর্ড আপডেট হয়ে যাবে। যেমন:

UPDATE Employees
SET Status = 'Inactive';

এটি সমস্ত কর্মীদের Status কলামের মান 'Inactive' করে দেবে, কারণ এখানে কোনো WHERE শর্ত ব্যবহার করা হয়নি।


UPDATE স্টেটমেন্টের সাথে ট্রানজ্যাকশন ব্যবহারের উদাহরণ

আপনার যদি একাধিক আপডেট অপারেশন করতে হয় এবং তাদের সঠিকভাবে সম্পন্ন হওয়া নিশ্চিত করতে চান, তবে আপনি BEGIN TRANSACTION, COMMIT, এবং ROLLBACK ব্যবহার করতে পারেন।

BEGIN TRANSACTION;

UPDATE Employees
SET Status = 'Active'
WHERE EmployeeID = 103;

UPDATE Employees
SET Position = 'Team Lead'
WHERE EmployeeID = 103;

COMMIT;

এখানে, দুটি আপডেট একসাথে করা হয়েছে এবং যদি সব কিছু ঠিকভাবে সম্পন্ন হয়, তবে COMMIT করা হবে। যদি কোনো ত্রুটি ঘটে, তাহলে ROLLBACK ব্যবহার করে সব পরিবর্তন বাতিল করা যাবে।


সারাংশ

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

এই স্টেটমেন্টটি ডেটাবেসে পরিবর্তন করার জন্য অত্যন্ত কার্যকরী এবং যেকোনো ধরনের ডেটা ম্যানিপুলেশন এর জন্য ব্যবহৃত হয়।

Content added By

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

1.5k

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

ডেটা মুছে ফেলার সময় সতর্ক থাকতে হয়, কারণ একবার ডেটা মুছে গেলে তা পুনরুদ্ধার করা সাধারণত সম্ভব নয় (যতক্ষণ না ব্যাকআপ বা ট্রানজ্যাকশন লগ থাকে)।


১. DELETE স্টেটমেন্টের মৌলিক সিনট্যাক্স

DELETE FROM table_name WHERE condition;
  • table_name: এখানে সেই টেবিলের নাম থাকবে, যেখান থেকে আপনি ডেটা মুছে ফেলতে চান।
  • condition: এই শর্তের মাধ্যমে আপনি নির্ধারণ করবেন কোন রেকর্ডগুলি মুছে ফেলা হবে। যদি শর্ত দেওয়া না হয়, তবে টেবিলের সমস্ত রেকর্ড মুছে যাবে, যা খুবই বিপজ্জনক।

২. DELETE স্টেটমেন্টের উদাহরণ

উদাহরণ ১: একক রেকর্ড মুছে ফেলা

DELETE FROM Employees WHERE EmployeeID = 5;

এখানে Employees টেবিল থেকে EmployeeID ৫ এর সমান এমন একমাত্র রেকর্ড মুছে ফেলা হবে।

উদাহরণ ২: একাধিক রেকর্ড মুছে ফেলা

DELETE FROM Employees WHERE Position = 'Intern';

এখানে Employees টেবিল থেকে Position কলামে 'Intern' থাকা সমস্ত রেকর্ড মুছে ফেলা হবে।

উদাহরণ ৩: সমস্ত রেকর্ড মুছে ফেলা

DELETE FROM Employees;

এখানে কোনো শর্ত না দেওয়ায় Employees টেবিলের সমস্ত রেকর্ড মুছে ফেলা হবে। সতর্ক থাকুন, কারণ এটি টেবিলের সমস্ত ডেটা মুছে ফেলবে


৩. DELETE এবং TRUNCATE মধ্যে পার্থক্য

  • DELETE:
    • DELETE স্টেটমেন্ট শুধুমাত্র নির্বাচিত রেকর্ড মুছে ফেলে এবং টেবিলের অন্যান্য ডেটা অপরিবর্তিত থাকে।
    • এটি ট্রানজ্যাকশনাল এবং রোলব্যাক করা যায়।
    • DELETE স্টেটমেন্টের মাধ্যমে এক বা একাধিক রেকর্ড মুছে ফেলা সম্ভব।
    • DELETE দিয়ে শর্ত অনুযায়ী রেকর্ড মুছে ফেলা যায়।
  • TRUNCATE:
    • TRUNCATE টেবিলের সমস্ত রেকর্ড মুছে ফেলে, তবে এটি টেবিলের স্ট্রাকচার (কলাম, কনস্ট্রেইন্ট) অপরিবর্তিত রাখে।
    • এটি ফাস্ট এবং কম রিসোর্স ব্যবহার করে।
    • TRUNCATE ট্রানজ্যাকশনাল নয় এবং রোলব্যাক করা যায় না (যদি না TRUNCATE টি DDL এর অংশ হয়)।
    • এটি শর্ত বা ফিল্টার প্রয়োগ করতে পারে না, এটি শুধুমাত্র পুরো টেবিল মুছে ফেলে।

৪. DELETE এর সাথে TRANSACTION ব্যবহার

T-SQL-এ DELETE এর সাথে TRANSACTION ব্যবহার করে আপনি ডেটা মুছে ফেলার পর তা নিশ্চিত করার আগে রোলব্যাক করতে পারেন। উদাহরণ:

BEGIN TRANSACTION;

DELETE FROM Employees WHERE EmployeeID = 10;

-- কমিটি করতে পারেন যদি ডেটা সঠিক থাকে
COMMIT;

-- অথবা কোনো সমস্যা হলে রোলব্যাক করতে পারেন
-- ROLLBACK;

এভাবে, যদি কোনো সমস্যা হয়, তাহলে আপনি ROLLBACK করতে পারেন এবং ডেটা পুনরুদ্ধার করতে পারবেন।


৫. DELETE এবং FOREIGN KEY

যদি আপনার টেবিলগুলির মধ্যে Foreign Key রিলেশন থাকে, তবে আপনি DELETE করার সময় সাবধান থাকতে হবে। কারণ এক টেবিলের ডেটা অন্য টেবিলের ডেটার সাথে সম্পর্কিত হতে পারে। যদি আপনি সম্পর্কিত রেকর্ড মুছে ফেলতে চান, তবে আপনাকে ON DELETE CASCADE কনস্ট্রেইন্ট ব্যবহার করতে হবে যাতে সম্পর্কিত রেকর্ডও অটোমেটিক্যালি মুছে যায়।

ALTER TABLE Orders
ADD CONSTRAINT FK_CustomerOrder
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
ON DELETE CASCADE;

এটি করলে, Customers টেবিল থেকে কোনো CustomerID মুছে ফেললে, Orders টেবিলের সম্পর্কিত CustomerID সহ রেকর্ডও অটোমেটিক্যালি মুছে যাবে।


৬. DELETE প্রক্রিয়া অপ্টিমাইজেশন

  • ব্যাচে ডেটা মুছে ফেলা: যদি টেবিলের মধ্যে অনেক রেকর্ড থাকে, তবে একসাথে অনেক ডেটা মুছে ফেললে ডেটাবেসের পারফরম্যান্সে প্রভাব পড়তে পারে। তখন আপনি ব্যাচে ডেটা মুছে ফেলতে পারেন, যেমন:

    DELETE FROM Employees WHERE EmployeeID BETWEEN 1 AND 100;
    
  • INDEX ব্যবহার: DELETE করার সময় ইনডেক্স ব্যবহার করলে ডেটাবেস আরও দ্রুত মুছে ফেলতে পারবে।

সারাংশ

T-SQL এর DELETE স্টেটমেন্ট ডেটাবেস থেকে রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়। এটি WHERE শর্তের মাধ্যমে নির্দিষ্ট রেকর্ড মুছে ফেলে, তবে যদি কোনো শর্ত না দেওয়া হয়, তবে টেবিলের সমস্ত রেকর্ড মুছে ফেলবে। TRUNCATE এর তুলনায় DELETE বেশি নমনীয়, তবে একটু ধীরগতি হতে পারে। DELETE স্টেটমেন্টের সাথে TRANSACTION ব্যবহার করে আপনি রোলব্যাক করতে পারেন এবং ডেটা নিরাপদভাবে মুছে ফেলতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...