SQL CHECK কনস্ট্রেইন্ট
একটি কলাম কতটি ভ্যালু গ্রহণ করবে তার রেঞ্জ নির্ধারন করতে CHECK
কনস্ট্রেইন্ট(Constraint) ব্যবহার করা হয়। আপনি যদি একটি নির্দিষ্ট কলামের জন্য CHECK
কনস্ট্রেইন্ট নির্ধারন করে দেন তাহলে এটি শুধুমাত্র ঐ কলামের ভ্যালুর জন্যই প্রযোজ্য হবে। আপনি যদি একটি টেবিলের জন্য কনস্ট্রেইন্ট ডিফাইন করে থাকেন তাহলে তা টেবিলে অন্তর্ভূূক্ত সকল কলামের জন্যই প্রযোজ্য হবে।
SQL টেবিল তৈরীর সময় CHECK কনস্ট্রেইন্টের ব্যবহার
নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিল তৈরী করার সময় "Id" কলামে CHECK
কনস্ট্রেইন্ট সেট করবে। এক্ষেত্রে CHECK
কনস্ট্রেইন্ট নির্ধারন করে দিবে যেন "Id" কলামের ভ্যালু-সমূহ শূণ্য(0) থেকে বড় হয়।
MySQL এর জন্যঃ
CREATE TABLE Student_details(
Id int NOT NUll,
Roll_number varchar(255),
Student_name varchar(255),
Institute varchar(255),
Address varchar(255),
CHECK (Id>0)
);
Oracle/SQL Server/MS Acces এর জন্যঃ
CREATE TABLE Student_details(
Id int NOT NUll CHECK (Id>0),
Roll_number varchar(255),
Student_name varchar(255),
Institute varchar(255),
Address varchar(255)
);
একটি CHECK
কনস্ট্রেইন্ট এর নাম দেওয়ার জন্য এবং একাধিক কলামে CHECK
কনস্ট্রেইন্ট ডিফাইন করার জন্য নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়।
MySQL / SQL Server / Oracle / MS Access এর জন্যঃ
CREATE TABLE Student_details(
Id int NOT NUll,
Roll_number varchar(255),
Student_name varchar(255),
Institute varchar(255),
Address varchar(255),
CONSTRAINT check_student CHECK (Id>0 AND Address='জাতীয় বিশ্ববিদ্যালয়')
);
পূর্বের তৈরি টেবিলে SQL UNIQUE কনস্ট্রেইন্ট এর ব্যবহার
ডেটাবেজে পূর্ব থেকে বিদ্যমান একটি টেবিলের "Id" কলামে CHECK
সেট করতে ALTER TABLE
স্টেটমেন্টটের সাথে নিম্নের ন্যায় ADD CHECK
কনস্ট্রেইন্ট ব্যবহার করা হয়ঃ
MySQL/Oracle/SQL Server/MS Access এর জন্যঃ
ALTER TABLE Student_details
ADD CHECK (Id>0);
একটি CHECK
কনস্ট্রেইন্ট এর নাম দেওয়ার জন্য এবং একাধিক কলামে CHECK
কনস্ট্রেইন্ট ডিফাইন করার জন্য নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়।
MySQL/Oracle/SQL Server/MS Access এর জন্যঃ
ALTER TABLE Student_details
ADD CONSTRAINT check_student CHECK (Id>0 AND Address='জাতীয় বিশ্ববিদ্যালয়');
একটি CHECK কনস্ট্রেইন্ট ডিলেট করা
একটি CHECK
কনস্ট্রেইন্ট ডিলেট করতে, নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়ঃ
MySQL এর জন্যঃ
ALTER TABLE Student_details
DROP CHECK check_student;
MySQL/Oracle/SQL Server/MS Access এর জন্যঃ
ALTER TABLE Student_details
DROP CONSTRAINT check_student;