কম্পিউটার

SQL সার্ভারে বিদেশী কী বিদেশী কী

এই টিউটোরিয়ালটি সিনট্যাক্স এবং উদাহরণ সহ SQL সার্ভারে কীভাবে বিদেশী কী বিদেশী কী ব্যবহার করতে হয় তা উপস্থাপন করে৷

এসকিউএল সার্ভারে বিদেশী কী কী?

এসকিউএল সার্ভার ডেটাবেসে রেফারেন্স বাড়াতে বিদেশী কী ব্যবহার করা হয়। একটি বিদেশী কী মানে এই টেবিলের মান অবশ্যই অন্য টেবিলে উপস্থিত হতে হবে।

রেফারেন্স টেবিলটিকে প্যারেন্ট টেবিল বলা হয়, যেখানে বিদেশী কী সম্বলিত টেবিলটিকে চাইল্ড টেবিল বলা হয়৷ চাইল্ড টেবিলের বিদেশী কীগুলি সাধারণত প্যারেন্ট টেবিলের প্রাথমিক কী প্রাইমারি কীকে বোঝায়৷

বিদেশী কী তৈরি করা যেতে পারে টেবিল তৈরি করুন বা ALTER TABLE কমান্ড দিয়ে৷

CREATE TABLE কমান্ড ব্যবহার করে একটি বিদেশী কী তৈরি করুন

সিনট্যাক্স

 টেবিল তৈরি করুন bang_con ( cot1 kieudulieu [ NULL | NOT NULL ], cot2 kieudulieu [ NULL | NOT NULL ], … সীমাবদ্ধতা fk_ten বৈদেশিক কী (cot_con1, cot_con2, … cot_me, cot_me2, … cot_me, cot_me2, … cot_me2, cot_me2) ) [ অন ডিলিট { নো অ্যাকশন | ক্যাসকেড | সেট নাল | সেট ডিফল্ট } ] [ আপডেটে { অ্যাকশন নেই | ক্যাসকেড | সেট নাল | সেট ডিফল্ট } ] ); 

bang_con

আপনি যে চাইল্ড টেবিলটি তৈরি করতে চান তার নাম৷

cot1, cot2

সারণিতে আপনি যে কলামটি তৈরি করতে চান৷ প্রতিটি কলামে 1টি ডেটা টাইপ আছে, শূন্য বা NULL মান ধারণ করার জন্য অবশ্যই নির্দিষ্ট করতে হবে, অন্যথায় ডিফল্ট NULL।

SQL সার্ভারে ডেটার ধরন

fk_ten

তৈরি করার জন্য বিদেশী কী সীমাবদ্ধতার নাম৷

cot_con1, cot_con2, . cot_con_n

bang_con-এর কলামটি bang_me-তে প্রাথমিক কী উল্লেখ করতে চায়৷

bang_me

প্যারেন্ট টেবিলের নামে bang_con-এ ব্যবহৃত প্রাথমিক কী রয়েছে৷

cot_me1, cot_me2, . cot_me_n

যে কলামটি bang_me-তে প্রাথমিক কী তৈরি করে৷ বিদেশী কীগুলি ডেটা এবং কলাম cot_con1, cot_con2, এর মধ্যে সীমাবদ্ধতা তৈরি করবে। cot_con_n in bang_con.

মুছে ফেলতে হবে

বিকল্প৷ পিতামাতার ডেটা মুছে ফেলা হলে সন্তানের ডেটা দিয়ে কী করতে হবে তা নির্দেশ করে৷ নো অ্যাকশন, ক্যাসকেড, সেট নাল এবং সেট ডিফল্ট বিকল্প রয়েছে৷

আপডেট চলছে

বিকল্প৷ পিতামাতার ডেটা আপডেট করা হলে সন্তানের ডেটার সাথে কী করতে হবে তা নির্দেশ করে৷ নো অ্যাকশন, ক্যাসকেড, সেট নাল এবং সেট ডিফল্ট বিকল্প রয়েছে৷

কোন পদক্ষেপ নেই

চালু মুছে ফেলা বা আপডেট করার সাথে ব্যবহার করুন, অর্থাৎ যখন পিতামাতার ডেটা মুছে ফেলা বা আপডেট করা হয় তখন সন্তানের ডেটা দিয়ে কিছুই করবেন না৷

CASCADE

অন ডিলিট বা অন আপডেটের সাথে ব্যবহার করুন, যার অর্থ হল যখন পিতামাতার ডেটা মুছে ফেলা বা আপডেট করা হয় তখন চাইল্ড ডেটা মুছে বা আপডেট করা হয়৷

NULL সেট করুন

অন ডিলিট বা অন আপডেটের সাথে ব্যবহার করুন, যার অর্থ হল যখন প্যারেন্ট ডেটা মুছে বা আপডেট করা হয় তখন চাইল্ড ডেটা NULL সেট করা হয়৷

ডিফল্ট সেট করুন

অন ডিলিট বা অন আপডেটের সাথে ব্যবহার করুন, মানে যখন প্যারেন্ট ডেটা মুছে দেওয়া বা আপডেট করা হয় তখন চাইল্ড ডেটা ডিফল্ট মান সেট করা হয়৷

  1. এসকিউএল সার্ভারে বিদেশী কী (ক্যাসকেড ডিলিট)
  2. এসকিউএল সার্ভারে বিদেশী কী (নাল সেট করুন) বিদেশী কী

উদাহরণস্বরূপ

 টেবিল সানফাম তৈরি করুন (আইডি_সানফাম আইএনটি প্রাথমিক কী, দশ_সানফাম ভার্চার(৫০) শূন্য নয়, ফান_লোই ভার্চার(২৫) ); টেবিল হ্যাংটনখো তৈরি করুন ( id_hangtonkho INT প্রাথমিক কী, id_sanpham INT NOT NULL, soluong INT, luong_toithieu INT, luong_toida INT, কন্সট্রাইন্ট fk_htk_id_sanpham ফরেন কী (আইডি_সানপহাম) 

উপরের উদাহরণে, আমরা id_sanpham-এর ক্ষেত্রগুলি নিয়ে গঠিত প্রাথমিক কী সহ সানফাম টেবিল তৈরি করি। এরপরে রয়েছে হ্যাংটনখো সাব টেবিল।

হ্যাংটনখো টেবিলের বিদেশী কী তৈরি করতে ব্যবহৃত টেবিল তৈরি করুন বিবৃতিটির নাম fk_htk_id_sanpham। বিদেশী কী হ্যাংটনখো টেবিলের id_sanpham কলাম এবং sanpham টেবিলের id_sanpham-এর মধ্যে লিঙ্ক তৈরি করে।

উপরের উদাহরণটি দেখায় কিভাবে 1টি কলাম সমন্বিত একটি বিদেশী কী তৈরি করতে হয়৷ এখন 1টির বেশি তথ্য ক্ষেত্র সহ একটি বিদেশী কী তৈরি করুন৷

উদাহরণস্বরূপ

 টেবিল সানফাম তৈরি করুন ( ten_sanpham VARCHAR(50) NOT NULL, Diadiem VARCHAR(50) NOT NULL, phanloai VARCHAR(25) কনস্ট্রেইন sanpham_pk প্রাথমিক কী (ten_sanpham, diadiem>);

<প্রে> টেবিল হ্যাংটনখো তৈরি করুন ( id_hangtonkho INT প্রাথমিক কী, ten_sanpham VARCHAR(50) NOT NULL, diadiem VARCHAR(50) NOT NULL, soluong INT, luong_toithieu INT, luong_toidaTINTFORNCHEN, CONTEN_FORMEX সানফাম (টেন_সানফাম, ডায়াডিয়াম));

এই উদাহরণে, সানফাম প্যারেন্ট টেবিলে একটি দুই-কলামের প্রাথমিক কী ten_sanpham এবং diadiem আছে। চাইল্ড টেবিল এবং বিদেশী কী এই দুটি কলাম উল্লেখ করতে হবে।

ALTER TABLE কমান্ড ব্যবহার করে একটি বিদেশী কী তৈরি করুন

সিনট্যাক্স

 টেবিল bang_con পরিবর্তন করুন fk_ten ফরেন কী যোগ করুন (cot_con1, cot_con2, … cot_con_n) রেফারেন্স bang_me (cot_me1, cot_me2, … cot_me_n); 

bang_con

আপনি যে চাইল্ড টেবিলটি তৈরি করতে চান তার নাম৷

fk_ten

তৈরি করার জন্য বিদেশী কী সীমাবদ্ধতার নাম৷

cot_con1, cot_con2, . cot_con_n

bang_con-এর কলামটি bang_me-তে প্রাথমিক কী উল্লেখ করতে চায়৷

bang_me

প্যারেন্ট টেবিলের নামে bang_con-এ ব্যবহৃত প্রাথমিক কী রয়েছে৷

cot_me1, cot_me2, . cot_me_n

যে কলামটি bang_me-তে প্রাথমিক কী তৈরি করে৷ বিদেশী কীগুলি ডেটা এবং কলাম cot_con1, cot_con2, এর মধ্যে সীমাবদ্ধতা তৈরি করবে। cot_con_n in bang_con.

উদাহরণস্বরূপ

  সারণী হ্যাংটনখো পরিবর্তন করুন fk_htk_id_sanpham ফরেন কী (id_sanpham) রেফারেন্স সানফাম (id_sanpham); 

এই উদাহরণটি fk_htk_id_sanpham নামক হ্যাংটনখো টেবিলে বিদেশী কী তৈরি করে, id_sanpham কলামের উপর ভিত্তি করে সানফাম টেবিলের উল্লেখ করে।

আপনি নীচের উদাহরণ হিসাবে 1টির বেশি ক্ষেত্র সহ বিদেশী কী তৈরি করতে পারেন৷

 পরিবর্তন সারণী হ্যাংটনখো যোগ করুন কন্সট্রাইন্ট fk_htk_sanpham ফরেন কী (ten_sanpham, diadiem) রেফারেন্স sanpham (ten_sanpham, diadiem); 

উপরের উদাহরণটি হ্যাংটনখো টেবিলের জন্য fk_htk_sanpham নামে একটি বিদেশী কী তৈরি করে, যেটি ten_sanpham এবং diadiem কলামের উপর ভিত্তি করে ড্যাশবোর্ডকে উল্লেখ করে।


  1. RDBMS-এ বিদেশী কী

  2. এসকিউএল সার্ভারে অনুমতি / প্রত্যাহার করুন

  3. SQL সার্ভারে প্রসিডিউর (প্রক্রিয়া)

  4. SQL সার্ভারে PIVOT ধারা