✏️ Explanatory Question

SQL এ কিভাবে একটি টেবিলের এট্রিবিউট কে unique key করবে? উদাহরণ দাও। like এবং = অপারেটর এর পার্থক্য উদাহরণ সহযোগে বর্ণনা কর।

👁 4 Views
📘 Detailed Answer
🟢 Easy
💡

Answer with Explanation

Exam-ready answer with definition, syntax, examples, output explanation, comparison table, and conclusion.

Question 17

প্রশ্ন

SQL এ কিভাবে একটি টেবিলের এট্রিবিউট কে unique key করবে? উদাহরণ দাও। like এবং = অপারেটর এর পার্থক্য উদাহরণ সহযোগে বর্ণনা কর।

Answer: Unique Key and Difference Between LIKE and = Operator

ভূমিকা

SQL-এ database table-এর data সঠিক, নির্ভুল এবং duplicate-free রাখার জন্য বিভিন্ন constraint ব্যবহার করা হয়। এর মধ্যে UNIQUE constraint বা Unique Key একটি গুরুত্বপূর্ণ constraint।

আবার SQL-এ data search করার সময় কখনও exact value match করতে হয়, আবার কখনও pattern অনুযায়ী search করতে হয়। exact matching-এর জন্য = operator এবং pattern matching-এর জন্য LIKE operator ব্যবহার করা হয়।

সহজ ভাষায়: UNIQUE key duplicate value আটকায়, = exact value match করে, আর LIKE pattern অনুযায়ী value খুঁজে বের করে।

Unique Key কী?

Unique Key বা UNIQUE constraint এমন একটি constraint, যা কোনো table-এর একটি column বা একাধিক column-এর value duplicate হতে দেয় না।

অর্থাৎ যদি কোনো column-এ UNIQUE constraint দেওয়া হয়, তাহলে সেই column-এ একই value একাধিক row-তে insert করা যাবে না।

Definition: A UNIQUE constraint ensures that all values in a column or a group of columns are unique.

Unique Key কেন দরকার?

Unique Key database table-এর duplicate data আটকাতে সাহায্য করে। যেমন student-এর email, employee-এর phone number, product code বা account number সাধারণত unique হওয়া উচিত।

  • Duplicate value prevent করে।
  • Data integrity বজায় রাখে।
  • একটি column বা column combination-কে unique রাখে।
  • Primary Key না হলেও কোনো attribute-কে unique করা যায়।
  • Search এবং validation process সহজ করে।

Table তৈরি করার সময় Attribute-কে Unique Key করা

কোনো table তৈরি করার সময় column-এর পাশে UNIQUE keyword লিখে সেই attribute-কে unique করা যায়।

Syntax


CREATE TABLE table_name (
    column1 datatype,
    column2 datatype UNIQUE,
    column3 datatype
);
            

Example


CREATE TABLE Student (
    Roll_No INT PRIMARY KEY,
    Name VARCHAR(50),
    Email VARCHAR(100) UNIQUE,
    Phone VARCHAR(15)
);
            

এখানে Email column-এ UNIQUE constraint দেওয়া হয়েছে। তাই একই email দুইজন student-এর জন্য insert করা যাবে না।

Unique Key সহ Data Insert করার উদাহরণ


INSERT INTO Student (Roll_No, Name, Email, Phone)
VALUES (101, 'Rahul', 'rahul@gmail.com', '9876543210');

INSERT INTO Student (Roll_No, Name, Email, Phone)
VALUES (102, 'Riya', 'riya@gmail.com', '9876543211');
            

উপরের দুটি query সফলভাবে execute হবে, কারণ Email values আলাদা।

Duplicate Value Insert করলে


INSERT INTO Student (Roll_No, Name, Email, Phone)
VALUES (103, 'Karim', 'rahul@gmail.com', '9876543212');
            

এই query error দেবে, কারণ rahul@gmail.com value আগে থেকেই Email column-এ আছে। Email column UNIQUE হওয়ায় duplicate email insert করা যাবে না।

Existing Table-এর Attribute-কে Unique Key করা

যদি table আগে থেকেই তৈরি থাকে, তাহলে ALTER TABLE command ব্যবহার করে কোনো column-এ UNIQUE constraint add করা যায়।

Syntax


ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column_name);
            

Example


ALTER TABLE Student
ADD CONSTRAINT UQ_Student_Email UNIQUE (Email);
            

এখানে existing Student table-এর Email column-কে unique করা হয়েছে। Constraint-এর নাম রাখা হয়েছে UQ_Student_Email

Multiple Columns-এ Unique Key

কখনও কখনও একটি column নয়, বরং একাধিক column-এর combination unique রাখতে হয়। তখন composite unique constraint ব্যবহার করা হয়।

Example


CREATE TABLE Enrollment (
    Enrollment_ID INT PRIMARY KEY,
    Student_ID INT,
    Course_ID INT,
    CONSTRAINT UQ_Student_Course UNIQUE (Student_ID, Course_ID)
);
            

এখানে একই Student_ID এবং Course_ID combination একাধিকবার insert করা যাবে না। অর্থাৎ একই student একই course-এ duplicate enrollment করতে পারবে না।

Unique Key এবং Primary Key-এর সংক্ষিপ্ত পার্থক্য

বিষয় Primary Key Unique Key
Purpose প্রতিটি row uniquely identify করে। Column value duplicate হওয়া আটকায়।
Number per Table একটি table-এ সাধারণত একটিই primary key থাকে। একটি table-এ একাধিক unique key থাকতে পারে।
NULL Primary key NULL accept করে না। NULL handling DBMS অনুযায়ী ভিন্ন হতে পারে।
Example Roll_No Email, Phone

LIKE Operator কী?

LIKE operator SQL-এ pattern matching করার জন্য ব্যবহৃত হয়। যখন exact value জানা থাকে না, কিন্তু value-এর pattern জানা থাকে, তখন LIKE operator ব্যবহার করা হয়।

LIKE operator সাধারণত % এবং _ wildcard-এর সঙ্গে ব্যবহার করা হয়।

Definition: LIKE operator is used to search for a specified pattern in a column.

= Operator কী?

= operator SQL-এ exact comparison করার জন্য ব্যবহার করা হয়। এটি তখনই true return করে যখন column-এর value সম্পূর্ণভাবে given value-এর সমান হয়।

Definition: The = operator is used to compare exact values in SQL.

Sample Table: Student

Roll_No Name Email City
101 Rahul rahul@gmail.com Kolkata
102 Riya riya@yahoo.com Delhi
103 Karim karim@gmail.com Kolkata
104 Anita anita@hotmail.com Mumbai
105 Arjun arjun@gmail.com Delhi

= Operator-এর উদাহরণ

যেসব student-এর City ঠিক Kolkata, তাদের বের করতে:


SELECT *
FROM Student
WHERE City = 'Kolkata';
            

Output

Roll_No Name Email City
101 Rahul rahul@gmail.com Kolkata
103 Karim karim@gmail.com Kolkata

এখানে City column-এর value ঠিক Kolkata হলে তবেই record result-এ এসেছে।

LIKE Operator-এর উদাহরণ

যেসব student-এর Email gmail.com দিয়ে শেষ হয়েছে, তাদের বের করতে:


SELECT *
FROM Student
WHERE Email LIKE '%gmail.com';
            

Output

Roll_No Name Email City
101 Rahul rahul@gmail.com Kolkata
103 Karim karim@gmail.com Kolkata
105 Arjun arjun@gmail.com Delhi

এখানে %gmail.com মানে gmail.com-এর আগে যেকোনো characters থাকতে পারে, কিন্তু শেষে gmail.com থাকতে হবে।

LIKE Operator-এর আরও উদাহরণ

Pattern Meaning SQL Example
'A%' A দিয়ে শুরু হওয়া values WHERE Name LIKE 'A%'
'%a' a দিয়ে শেষ হওয়া values WHERE Name LIKE '%a'
'%ri%' মাঝে ri আছে এমন values WHERE Name LIKE '%ri%'
'R_ya' R এবং ya-এর মাঝখানে একটি character WHERE Name LIKE 'R_ya'

LIKE এবং = Operator-এর পার্থক্য

বিষয় = Operator LIKE Operator
কাজ Exact value match করে। Pattern অনুযায়ী value match করে।
Wildcard Support Wildcard support করে না। % এবং _ wildcard support করে।
ব্যবহার যখন complete value জানা থাকে। যখন partial value বা pattern জানা থাকে।
Example WHERE City = 'Kolkata' WHERE Email LIKE '%gmail.com'
Result Type Only exact matching rows। Pattern matching rows।
Common Use ID, city, exact name, exact status search। Name starts with, email ends with, contains word search।

Combined Example

যদি আমরা Delhi city-এর এমন students চাই যাদের email gmail.com দিয়ে শেষ, তাহলে = এবং LIKE একসঙ্গে ব্যবহার করা যায়।


SELECT *
FROM Student
WHERE City = 'Delhi'
AND Email LIKE '%gmail.com';
            

এখানে City exact match করছে = operator দিয়ে এবং Email pattern match করছে LIKE operator দিয়ে।

Final Summary

Topic Main Point Example
Unique Key Duplicate value prevent করে। Email VARCHAR(100) UNIQUE
ALTER TABLE Unique Existing table-এ unique constraint add করে। ALTER TABLE Student ADD CONSTRAINT UQ_Email UNIQUE (Email);
= Operator Exact matching করে। WHERE City = 'Kolkata'
LIKE Operator Pattern matching করে। WHERE Email LIKE '%gmail.com'

গুরুত্ব

  • UNIQUE constraint duplicate data prevent করে।
  • Data integrity বজায় রাখে।
  • Email, phone, product code-এর মতো values unique রাখতে সাহায্য করে।
  • = operator exact searching-এর জন্য দরকারি।
  • LIKE operator flexible searching এবং pattern matching-এর জন্য দরকারি।
  • Search feature এবং report filtering-এ LIKE খুব useful।

Exam Writing Tips

  • প্রথমে Unique Key-এর definition লিখবে।
  • CREATE TABLE এবং ALTER TABLE — দুটো method লিখবে।
  • Duplicate value insert করলে error হবে — এই point লিখবে।
  • LIKE এবং = operator-এর definition আলাদা করে লিখবে।
  • LIKE-এর ক্ষেত্রে % এবং _ wildcard-এর example দেবে।
  • Difference table দিলে answer বেশি scoring হবে।

উপসংহার

সুতরাং, SQL-এ কোনো table-এর attribute-কে unique করার জন্য UNIQUE constraint ব্যবহার করা হয়। এটি table-এর নির্দিষ্ট column বা column combination-এ duplicate value insert হতে বাধা দেয়। CREATE TABLE command-এর সময় অথবা ALTER TABLE command ব্যবহার করে UNIQUE constraint add করা যায়।

অন্যদিকে, = operator exact value matching-এর জন্য ব্যবহৃত হয় এবং LIKE operator pattern matching-এর জন্য ব্যবহৃত হয়। LIKE operator-এর সঙ্গে % এবং _ wildcard ব্যবহার করে flexible searching করা যায়।

Quick Revision Points

  • UNIQUE constraint duplicate value prevent করে।
  • একটি table-এ একাধিক UNIQUE constraint থাকতে পারে।
  • CREATE TABLE-এর সময় UNIQUE constraint দেওয়া যায়।
  • ALTER TABLE দিয়ে existing table-এ UNIQUE constraint add করা যায়।
  • = operator exact matching করে।
  • LIKE operator pattern matching করে।
  • % multiple characters match করে।
  • _ exactly one character match করে।