এসকিউএল সার্ভারে চেক সীমাবদ্ধতা কী, এটি কীসের জন্য ব্যবহৃত হয় এবং এটি কীসের জন্য ব্যবহৃত হয়? এই নিবন্ধটি আপনাকে উত্তর দেবে।
এসকিউএল সার্ভারে চেক সীমাবদ্ধতা চেক সীমাবদ্ধতা কি?
SQL সার্ভারে (Transact-SQL) চেক সীমাবদ্ধতা টেবিলের প্রতিটি সারির জন্য শর্ত নির্ধারণের অনুমতি দেয়।
দ্রষ্টব্য
- এসকিউএল ভিউতে পরীক্ষার সীমাবদ্ধতা সংজ্ঞায়িত করা যায় না।
- টেবিলের চেক সীমাবদ্ধতাটি অবশ্যই সেই টেবিলের কলামটিকে উল্লেখ করতে হবে, অন্য টেবিলের কলামটি উল্লেখ করতে অক্ষম৷
- চেক সীমাবদ্ধতাগুলি সাবকোয়েরি সাবকোয়েরি ব্যবহার করতে পারে না৷ ৷
- পরীক্ষার সীমাবদ্ধতাগুলি CREATE TABLE বা ALTER TABLE কমান্ড দ্বারা সংজ্ঞায়িত করা যেতে পারে৷
টেবিল তৈরি করুন কমান্ড দিয়ে চেক সীমাবদ্ধতা তৈরি করুন
সিনট্যাক্স
CREATE TABLE ten_bang
(
cot1 kieudulieu [ NULL | NOT NULL ],
cot2 kieudulieu [ NULL | NOT NULL ],
…
CONSTRAINT ten_rangbuoc
CHECK [ NOT FOR REPLICATION ] (dieu_kien ten_cot)
);
SQL সার্ভারে ডেটার ধরন
ten_bang৷
টেবিলের নাম যা চেক সীমাবদ্ধতা তৈরি করতে চায়।
ten_rangbuoc
চেক বাইন্ডিংয়ের জন্য আপনি যে নামটি সেট করতে চান৷
ten_cot
টেবিল কলাম যেটি চেক সীমাবদ্ধতা প্রযোজ্য।
শর্ত৷
শর্তগুলি অবশ্যই পূরণ করতে হবে৷
৷উদাহরণস্বরূপ
CREATE TABLE nhanvien
(id_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT id_nhanvien_kiemtra
CHECK (id_nhanvien BETWEEN 1 AND 10000)
);
এই উদাহরণে, CREATE TABLE স্টেটমেন্ট টেবিলে id_nhanvien_kiemtra নামে একটি চেক সীমাবদ্ধতা তৈরি করে। এই সীমাবদ্ধতা নিশ্চিত করবে যে id_nhanvien তথ্য ক্ষেত্রে 1 এবং 10000 এর মধ্যে একটি মান রয়েছে।
এটি আরেকটি উদাহরণ৷
৷CREATE TABLE nhanvien
(id_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT luong_kiemtra
CHECK (luong > 0)
);
এই উদাহরণটি একটি সীমাবদ্ধতা তৈরি করে যা টেবিলে চেকসাম পরীক্ষা করে, নিশ্চিত করে যে বেতন শূন্যের চেয়ে বেশি হবে।
ALTER TABLE কমান্ড দিয়ে চেক সীমাবদ্ধতা তৈরি করুন
সিনট্যাক্স
ALTERTABLE ten_bang
ADD CONSTAINT ten_rangbuoc
CHECK (dieu_kien ten_cot);
ten_bang৷
টেবিলের নাম চেক সীমাবদ্ধতা যোগ করতে চায়৷
ten_rangbuoc
চেক বাইন্ডিংয়ের জন্য নাম সেট করা হয়েছে৷
৷ten_cot
টেবিলের কলামগুলি যা চেক সীমাবদ্ধতা প্রযোজ্য৷
শর্ত৷
অবশ্যই সীমাবদ্ধতা যাচাই করে এমন শর্ত পূরণ করতে হবে।
উদাহরণস্বরূপ
এটি SQL সার্ভারে চেক সীমাবদ্ধতা তৈরি করতে ALTER TABLE কমান্ড ব্যবহার করার একটি উদাহরণ৷
ALTER TABLEnhanvien
ADD CONSTRAINT ho_kiemtra
CHECK (ho IN ('Smith', 'Anderson', 'Jonas'));
চেক সীমাবদ্ধতা ho_kiemtra বিদ্যমান টেবিলে তৈরি করা হয়েছে, এটি নিশ্চিত করে যে কর্মচারীর উপাধিতে শুধুমাত্র স্মিথ, অ্যান্ডারসন বা জোনাসের মান থাকবে৷
চেক সীমাবদ্ধতা মুছুন
সিনট্যাক্স
ALTER TABLE ten_bang
DROPCONSTRAINT ten_rangbuoc
ten_bang৷
চেক সীমাবদ্ধতা মুছে ফেলার জন্য টেবিলের নাম৷
ten_rangbuoc
চেক বাইন্ডিং নাম মুছে ফেলতে চায়৷
উদাহরণস্বরূপ
ALTER TABLE nhanvien
DROPCONSTRAINT ho_kiemtra;
এই কমান্ডটি টেবিলের ho_kiemtra সীমাবদ্ধতা মুছে দেবে।
চেক বাইন্ডিং সক্ষম করুন
সিনট্যাক্স
ALTER TABLE ten_bang
WITH CHECK CHECK CONSTRAINT ten_rangbuoc;
ten_bang৷
চেক সীমাবদ্ধতা পুনরায় সক্ষম করার জন্য টেবিলের নাম৷
ten_rangbuoc
চেক সীমাবদ্ধতার নামটি সক্রিয় করা দরকার৷
উদাহরণস্বরূপ
ALTER TABLE nhanvien
WITH CHECK CHECK CONSTRAINT luong_kiemtra;
এই উদাহরণটি টেবিলের টেবিলে চেক সীমাবদ্ধতা পুনরায় সক্রিয় করে৷
চেক বাইন্ডিং অক্ষম করুন
সিনট্যাক্স
ALTER TABLE ten_bang
NOCHECKCONSTRAINT ten_rangbuoc;
ten_bang৷
চেক সীমাবদ্ধতা নিষ্ক্রিয় করার জন্য টেবিলের নাম৷
ten_rangbuoc
চেক সীমাবদ্ধতার নামটি নিষ্ক্রিয় হতে চায়৷
উদাহরণস্বরূপ
ALTER TABLE nhanvien
NOCHECKCONSTRAINT luong_kiemtra;
এই উদাহরণটি টেবিলে luong_kiemtra-এ চেক সীমাবদ্ধতা অক্ষম করে।