এসকিউএল পিএইচপি ওয়ার্ডপ্রেস জাভাস্ক্রিপ্ট জেকুয়েরি এইচটিএমএল সিএসএস সি প্রোগ্রামিং
ফোরাম
×

এসকিউএল টিউটোরিয়াল

হোম-Home পরিচিতি-Introduction সিনটেক্স-Syntax ডেটাবেস তৈরী-Create DB টেবিল তৈরী-Create Table ড্রপ-Drop সিলেক্ট-Select ইনসার্ট ইন্টু-Insert Into এসকিউএল-Where এসকিউএল-And এবং Or আপডেট-Update ডিলিট-Delete লাইক-Like সিলেক্ট টপ-Select Top অর্ডার বাই-Order By গ্রুপ বাই-Group By ডিস্টিংক্ট-Distinct সিলেক্ট ইন্টু-Select Into ইনসার্ট ইন্টু সিলেক্ট-Insert Into Select এসকিউএল-Not Null ইউনিক-Unique ডিফল্ট-Default চেক-Check প্রাইমারি কি-Primary Key ফরেন কি-Foreign Key এসকিউএল-In এসকিউএল-Between এসকিউএল-Auto Increment

এসকিউএল ডাটাবেস

কনস্ট্রেইন্ট-Constraints এসকিউএল-Joins এসকিউএল-Inner Join এসকিউএল-Left Join এসকিউএল-Right Join এসকিউএল-Full Join এসকিউএল-Union এসকিউএল-Null Values এসকিউএল-Null Functions এসকিউএল-Aliases এসকিউএল-Create Index এসকিউএল-Alter এসকিউএল-Views এসকিউএল-Having এসকিউএল-Wildcards এসকিউএল-Dates এসকিউএল-Data Types

এসকিউএল ফাংশন

এসকিউএল-Functions এসকিউএল-Avg() এসকিউএল-Count() এসকিউএল-First() এসকিউএল-Last() এসকিউএল-Max() এসকিউএল-Min() এসকিউএল-Sum() এসকিউএল-Ucase() এসকিউএল-Lcase() এসকিউএল-Mid() এসকিউএল-Len() এসকিউএল-Round() এসকিউএল-Now() এসকিউএল-Format()

অ্যাডভান্স এসকিউএল

এসকিউএল-অস্থায়ী(Temporary) টেবিল এসকিউএল-Injection এসকিউএল-Hosting

 

SQL FOREIGN KEY কনস্ট্রেইন্ট


এক টেবিলের FOREIGN KEY অন্য টেবিলের PRIMARY KEY কে নির্দেশ করে। সুতরাং দুটি টেবিলের মধ্যে সংযোগ সৃষ্টি করে।

দুটি টেবিলের সংযোগ বিচ্ছিন্ন করে এমন ক্রিয়া কলাপে FOREIGN KEY কনস্ট্রেইন্ট বাধা দেয়।

FOREIGN KEY কনস্ট্রেইন্ট ফরেন কী কলামে অবৈধ ডেটা ইনপুটেও বাধা দেয়, কারন প্রাইমারি কী কলাম এর ভ্যালুই হলো ফরেন কি কলাম এর ভ্যালু।

চলুন একটি উদাহরণের সাহায্য FOREIGN KEY বুঝার চেষ্টা করি। নিম্নের টেবিল দুটিতে ভালভাবে লক্ষ্য করুনঃ

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নং রোল নাম্বার শিক্ষার্থীর নাম প্রতিষ্ঠানের নাম ঠিকানা
১০১ তামজীদ হাসান জাতীয় বিশ্ববিদ্যালয় চাঁদপুর
১০২ মিনহাজুর রহমান জাতীয় বিশ্ববিদ্যালয় চাঁদপুর
১০৩ মোঃ সবুজ হোসেন জাতীয় বিশ্ববিদ্যালয় চাঁদপুর
১০৪ ইয়াসিন হোসেন জাতীয় বিশ্ববিদ্যালয় চাঁদপুর
১০৫ ফরহাদ উদ্দিন জাতীয় বিশ্ববিদ্যালয় চাঁদপুর

নিচের অংশটি "Student_result" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নং রোল নাম্বার ফলাফল
১০১ A+
১০২ A+
১০৩ A+
১০৪ A+
১০৫ A+

উপরের টেবিল দুটিতে লক্ষ্য করলে দেখবেন, "Student_result" টেবিলের "Roll_number" কলামটি "Student_details" টেবিলের "Roll_number" কলামকে নির্দেশ(Point) করছে।

"Student_details" টেবিলের "Roll_number" কলামটি হচ্ছে ঐ টেবিলের PRIMARY KEY কনস্ট্রেইন্ট এবং "Student_result" টেবিলের "Roll_number" কলামটি হচ্ছে "Student_result" টেবিলের FOREIGN KEY কনস্ট্রেইন্ট।

বিঃদ্রঃ PRIMARY KEY এবং FOREIGN KEY কে যথাক্রমে পিতা এবং পুত্র বলা হয়। পুত্রের কোনো কিছু প্রয়োজন হলে সে পিতার কাছেই চাই। একইভাবে FOREIGN KEY তার প্রয়োজনে PRIMARY KEY এর কাছে রেফার করে।


টেবিল তৈরির সময় FOREIGN KEY কনস্ট্রেইন্ট সেট করা

নিম্নের SQL স্টেটমেন্টটি "Student_result" টেবিল তৈরি করার সময় "Roll_number" কলামে একটি FOREIGN KEY কনস্ট্রেইন্ট সেট করবেঃ

MySQL এর জন্যঃ
CREATE TABLE Student_result(
	Id int NOT NUll,
    Roll_number varchar(255) NOT NULL,
    Result varchar(255) NOT NULL,
    PRIMARY KEY (Id),
    FOREIGN KEY (Roll_number) REFERENCES Student_details(Roll_number)
);

Oracle/SQL Server/MS Access এর জন্যঃ
CREATE TABLE Student_result(
	Id int NOT NUll,
    Roll_number varchar(255) FOREIGN KEY REFERENCES Student_details(Roll_number),
    Result varchar(255) NOT NULL
);

FOREIGN KEY কনস্ট্রেইন্ট এর নামকরন এবং একাধিক কলামে FOREIGN KEY কনস্ট্রেইন্ট ডিফাইন করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করা হয়ঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ
CREATE TABLE Student_result(
	Id int NOT NUll,
    Roll_number varchar(255) NOT NULL,
    Result varchar(255) NOT NULL,
    PRIMARY KEY (Id),
    CONSTRAINT link_Student_result FOREIGN KEY(Roll_number) REFERENCES Student_details(Roll_number)
);

টেবিল পরিবর্তন করার সময় FOREIGN KEY সেট করা

নিম্নের SQL স্টেটমেন্টটি "Student_result" টেবিল পরিবর্তন(modify) করার সময় "Roll_number" কলামে FOREIGN KEY কনস্ট্রেইন্ট সেট করবেঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ
ALTER TABLE Student_result
ADD FOREIGN KEY (Roll_number)
REFERENCES Student_details(Roll_number);

FOREIGN KEY কনস্ট্রেইন্ট এর নামকরন এবং একাধিক কলামে FOREIGN KEY কনস্ট্রেইন্ট ডিফাইন করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করা হয়ঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ
ALTER TABLE Student_result
ADD CONSTRAINT link_Student_result
ADD FOREIGN KEY (Roll_number)
REFERENCES Student_details(Roll_number);

FOREIGN KEY কনস্ট্রেইন্ট ডিলেট

FOREIGN KEY কনস্ট্রেইন্টকে ডিলেট করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করুনঃ

MySQL এর জন্যঃ
ALTER TABLE Student_result
DROP FOREIGN KEY link_Student_result;

Oracle/SQL Server/MS Access এর জন্যঃ
ALTER TABLE Student_result
DROP CONSTRAINT link_Student_result;