এসকিউএল মধ্যে ডাটাবেস এবং টেবিল নির্মাণ

ডাটাবেস নির্মাণ

আপনি কি স্ট্রাকচার্ড ক্যোয়ারী ভাষা দিয়ে ডাটাবেস এবং টেবিল তৈরি করতে প্রস্তুত? এই নিবন্ধে, আমরা CREATE DATABASE সঙ্গে টেবিল ম্যানুয়াল তৈরির প্রক্রিয়া এবং টেবিল কমান্ডগুলি তৈরির প্রক্রিয়াটি এক্সপ্লোর করি। আপনি যদি এসকিউএল থেকে নতুন হন, তাহলে আপনি আমাদের এসকিউএল বেসিকের নিবন্ধটি পর্যালোচনা করতে পারেন।

ব্যবসা প্রয়োজন

কী-বোর্ডে বসা আগে, আমাদের গ্রাহকের প্রয়োজনীয়তা সম্পর্কে আমাদের দৃঢ় ধারণা থাকা দরকার। এই অন্তর্দৃষ্টি প্রাপ্ত করার সেরা উপায় কি? গ্রাহককে অবশ্যই বলছি! XYZ এর হিউম্যান রিসোর্স ডিরেক্টরের সঙ্গে বসার পর, আমরা শিখেছি যে তারা একটি উইজেট বিক্রয় কোম্পানী এবং প্রধানত তাদের বিক্রয় কর্মীদের তথ্য ট্র্যাকিং আগ্রহী

XYZ কর্পোরেশন পূর্ব এবং পশ্চিম অঞ্চলে তাদের বিক্রয় বল বিভক্ত করে, যার প্রতিটি পৃথক বিক্রয় reps দ্বারা আচ্ছাদিত অনেক অঞ্চল বিভক্ত করা হয়। এইচআর বিভাগ প্রতিটি কর্মচারীর পাশাপাশি প্রতিটি কর্মচারীর বেতন তথ্য এবং তত্ত্বাবধানের কাঠামো দ্বারা আচ্ছাদিত অঞ্চলটি ট্র্যাক করতে চায়। এই প্রয়োজনীয়তাগুলি পূরণ করতে, আমরা এই পৃষ্ঠায় সত্তা-সম্পর্কের ডায়াগ্রামে দেখানো তিনটি সারণি সহ একটি ডাটাবেস ডিজাইন করেছি।

একটি ডাটাবেস প্ল্যাটফর্ম নির্বাচন

আমরা স্ট্রাকচার্ড ক্যোয়ারী ভাষা (এসকিউএল) এ নির্মিত একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেম (বা ডিবিএমএস) ব্যবহার করার সিদ্ধান্ত নিয়েছি। অতএব, আমাদের ডাটাবেস এবং টেবিল তৈরির সমস্ত কমান্ডগুলি মান ANSI SQL- র সাথে মনে রাখা উচিত।

একটি অতিরিক্ত সুবিধা হিসাবে, ANSI- অনুবর্তী এসকিউএল ব্যবহার করে নিশ্চিত করা হবে যে এই কমান্ডগুলি যে কোনও DBMS- এ কাজ করবে যা এসকিউএল স্ট্যান্ডার্ড সমর্থন করে , যার মধ্যে রয়েছে ওরাকল এবং মাইক্রোসফ্ট SQL সার্ভার। আপনি যদি এখনও আপনার ডাটাবেসের জন্য কোনও প্ল্যাটফর্মে না নির্বাচন করেন, তাহলে নিবন্ধন ডেটাবেস সফটওয়্যার অপশনগুলি আপনাকে নির্বাচন প্রক্রিয়ার মাধ্যমে নিয়ে যায়।

ডাটাবেস নির্মাণ

আমাদের প্রথম ধাপ হল ডাটাবেস নিজেই তৈরি করা। অনেক ডাটাবেস ম্যানেজমেন্ট সিস্টেম এই ধাপে ডাটাবেস পরামিতি কাস্টমাইজ করার জন্য সিরিজ অফার করে, কিন্তু আমাদের ডাটাবেস কেবল একটি ডাটাবেস সহজ নির্মাণের অনুমতি দেয়। আপনার সমস্ত কমান্ডের সাথে আপনার DBMS- এর ডকুমেন্টেশনটি আপনার নির্দিষ্ট সিস্টেমের দ্বারা সমর্থিত কোনও উন্নত প্যারামিটারগুলি আপনার প্রয়োজনীয়তাগুলি পূরণ করে কিনা তা জানতে চাইতে পারেন। আমাদের ডাটাবেস সেট আপ করতে CREATE DATABASE কমান্ড ব্যবহার করা যাক:

ড্যাটাবিএজ কর্মচারী তৈরি করুন

উপরের উদাহরণে ব্যবহৃত মূলধন বিশেষ নোট নিন। এসকিউএল প্রোগ্রামারদের মধ্যে সাধারণ অভ্যাস হল যে এসকিউএল কীওয়ার্ডগুলি যেমন "CREATE" এবং "DATABASE" সব ক্যাশে অক্ষর ব্যবহার করে ব্যবহারকারী-সংজ্ঞায়িত নামগুলির "লোহা" অক্ষরগুলি ব্যবহার করে যেমন "কর্মচারী" ডাটাবেস নাম। এই নিয়মাবলী সহজে পড়ার জন্য প্রদান।

আমরা আমাদের ডাটাবেস জন্য টেবিল তৈরি হিসাবে এই টিউটোরিয়াল পড়া চালিয়ে যান।

আরও শিখুন

যদি আপনি স্ট্রাকচার্ড কুইরি ল্যাঙ্গুয়েজ সম্পর্কে আরো জানতে চান, এসকিউএল এর ভূমিকাটি পড়ুন অথবা আমাদের বিনামূল্যে শেখার এসকিউএল ই-মেইল কোর্সের জন্য সাইন আপ করুন।

এখন যে আমরা আমাদের ডাটাবেস ডিজাইন এবং তৈরি করেছি, আমরা XYZ কর্পোরেশনের কর্মচারী তথ্য সংরক্ষণ করার জন্য ব্যবহৃত তিনটি টেবিল তৈরি করতে প্রস্তুত। আমরা এই টিউটোরিয়ালের পূর্ববর্তী অংশে ডিজাইন করা টেবিলের বাস্তবায়ন করব।

আমাদের প্রথম টেবিল নির্মাণ

আমাদের প্রথম টেবিল আমাদের কোম্পানির প্রত্যেক কর্মীর জন্য ব্যক্তিগত তথ্য রয়েছে। আমাদের প্রতিটি কর্মচারীর নাম, বেতন, আইডি এবং ম্যানেজারকে অন্তর্ভুক্ত করতে হবে। ভবিষ্যতে অনুসন্ধান ও সাজানোর জন্য তথ্য সহজ করার জন্য আলাদা ক্ষেত্রগুলিতে শেষ এবং প্রথম নামগুলি পৃথক করার জন্য এটি ভাল নকশা অনুশীলন। এছাড়াও, আমরা প্রতিটি কর্মচারীর রেকর্ডে ম্যানেজারের কর্মচারী আইডি সম্পর্কে একটি রেফারেন্স সন্নিবেশ করে প্রতিটি কর্মচারীর ম্যানেজারের নজর রাখব। আসুন প্রথমে পছন্দসই কর্মী টেবিলের দিকে নজর রাখি।

প্রতি রিপোর্টগুলির জন্য প্রতিটি কর্মীর ম্যানেজার আইডি সংরক্ষণ করে। দেখানো নমুনা রেকর্ড থেকে, আমরা নির্ধারণ করতে পারেন যে সু Scampi উভয় টম কেন্ডল এবং জন স্মিথ এর ম্যানেজার হয়। যাইহোক, সু এর ম্যানেজারে ডেটাবেসে কোন তথ্য নেই, যেমন তার সারির নল এন্ট্রি দ্বারা নির্দেশিত

এখন আমরা এসকিউএল ব্যবহার করতে পারেন আমাদের কর্মী ডাটাবেস টেবিলের তৈরি। আমরা এটি করার আগে, আসুন আমরা নিশ্চিত যে আমরা USE কমান্ডটি প্রদান করে সঠিক ডাটাবেসে আছি:

USE কর্মচারী;

বিকল্পভাবে, "ডেটাবেস কর্মীদের"; কমান্ড একই ফাংশন সঞ্চালন করবে। এখন আমরা আমাদের কমান্ডের টেবিলের তৈরি করতে ব্যবহৃত SQL কমান্ডটি দেখতে পারি:

সারণী কর্মচারী তৈরি করুন (কর্মচারীটি নূ্যনতম নয়, শেষ নাম VARCHAR (২5) না উল্লিখিত, প্রথম নাম VARCHAR (২5) না, নথিভুক্ত না হওয়ার জন্য নিখরচায়);

উপরে উল্লিখিত উদাহরণের মতো, উল্লেখ্য যে প্রোগ্রামিং কনভেনশনটি নির্দেশ করে যে আমরা এসকিউএল কীওয়ার্ডস এবং ইউজার নামযুক্ত কলাম এবং টেবিলগুলির জন্য ছোট হাতের অক্ষরগুলির জন্য সমস্ত মূল অক্ষর ব্যবহার করি। উপরের কমান্ডটি প্রথমে বিভ্রান্তিকর বলে মনে হতে পারে, তবে এর পিছনে একটি সহজ কাঠামো আছে। এখানে একটি সাধারণ দৃষ্টিভঙ্গি যা কিছুটা পরিষ্কার করতে পারে:

টেবিল তৈরি করুন table_name (attribute_name ড্যাটাটিপ অপশন, ..., অ্যাট্রিবিউট_নাম ডাটা টাইপ অপশন);

বৈশিষ্ট্য এবং ডেটা প্রকার

পূর্ববর্তী উদাহরণে, সারণির নাম কর্মচারী হয় এবং আমরা চারটি বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করি: কর্মচারী, শেষনাম, প্রথম নাম এবং রিপোর্ট ডেটাটিপ প্রতিটি ধরনের ক্ষেত্রে আমরা যে ধরনের তথ্য সংরক্ষণ করতে চাই তা নির্দেশ করে। কর্মচারী আইডি একটি সাধারণ পূর্ণসংখ্যা সংখ্যা, তাই আমরা কর্মচারী ক্ষেত্র এবং রিপোর্টস্টো ক্ষেত্রের জন্য ইন্টেগ্রার ডাটাটাইপ ব্যবহার করব। কর্মচারীর নামগুলি পরিবর্তনশীল দৈর্ঘ্যের চরিত্রের স্ট্রিং হবে এবং আমরা আশা করব না যে কোনো কর্মচারীকে ২5 টি অক্ষরের চেয়ে বেশি প্রথম বা শেষ নাম থাকতে হবে। অতএব, আমরা এই ক্ষেত্রগুলির জন্য VARCHAR (25) টাইপ ব্যবহার করব।

নুল মান

আমরা CREATE স্টেটমেন্টের বিকল্প ক্ষেত্রগুলির মধ্যে NULL বা NOT NULL উল্লেখ করতে পারি। এই ডাটাবেসকে কেবল ডাটাবেসকে জানাবে যে ডাটাবেসে সারি যোগ করার সময় নুল (অথবা ফাঁকা) মানগুলি ঐ বৈশিষ্ট্যের জন্য অনুমোদিত। আমাদের উদাহরণে, এইচআর ডিপার্টমেন্টের জন্য প্রয়োজন যে একজন কর্মচারী আইডি এবং সম্পূর্ণ নাম প্রতিটি কর্মচারীর জন্য সংরক্ষণ করা হবে। যাইহোক, প্রত্যেক কর্মচারীর একটি ম্যানেজার নেই - সিইও কাউকে রিপোর্ট করেন! - তাই আমরা সেই ক্ষেত্রের NULL এন্ট্রিগুলিকে অনুমতি দিই লক্ষ্য করুন যে NULL হল ডিফল্ট মান এবং এই বিকল্পটি বাদ দিলে একটি বৈশিষ্ট্যের জন্য NULL মানগুলির অনুমতি দেওয়া হবে।

অবশিষ্ট টেবিল নির্মাণ

এখন আসুন টেরিটরি টেবিলটি দেখুন। এই ডেটাতে দ্রুত নজরদারি থেকে দেখা যাচ্ছে যে আমরা একটি পূর্ণসংখ্যা এবং দুটি ভেরিয়েবল দৈর্ঘ্য স্ট্রিং সঞ্চয় করতে হবে। আমাদের আগের উদাহরণের মতো, আমরা 25 টিরও বেশি অক্ষরগুলি ব্যবহার করতে অঞ্চল আইডি আশা করি না। যাইহোক, আমাদের কয়েকটি অঞ্চলে দীর্ঘ নাম আছে, তাই আমরা 40 টি অক্ষরের জন্য যে অ্যাট্রিবিউটের অনুমোদিত লাইনটি প্রসারিত করব। এর অনুরূপ এসকিউএল তাকান যাক:

সারণি অঞ্চলগুলি তৈরি করুন (টেররিড ইন্টিগ্রিটি নূতন নয়, অঞ্চল বর্ণনা VARCHAR) (40) নাল, অঞ্চলটি VARCHAR (25) নুল নয়);

অবশেষে, আমরা কর্মচারী এবং অঞ্চলগুলির মধ্যে সম্পর্কগুলি সংরক্ষণের জন্য কর্মচারী টেরিটিরস টেবিলের ব্যবহার করব। প্রতিটি কর্মচারী এবং অঞ্চলের বিস্তারিত তথ্য আমাদের আগের দুটি টেবিলে সংরক্ষণ করা হয়। অতএব, আমাদের এই টেবিলে দুটি পূর্ণসংখ্যা সনাক্তকরণ সংখ্যা সংরক্ষণ করতে হবে। যদি আমরা এই তথ্যটি প্রসারিত করতে চাই তবে আমরা একাধিক টেবিলের তথ্য সংগ্রহ করতে আমাদের তথ্য নির্বাচন কমান্ডগুলির একটি JOIN ব্যবহার করতে পারি। তথ্য সংরক্ষণের এই পদ্ধতিটি আমাদের ডাটাবেসের মধ্যে অপ্রতুলতা হ্রাস করে এবং আমাদের সংগ্রহস্থলের ড্রাইভগুলিতে স্থানটি সর্বোত্তম ব্যবহার নিশ্চিত করে। ভবিষ্যতে টিউটোরিয়ালে আমরা JOIN কমান্ডটি গভীরভাবে পরিবেশন করব। এখানে আমাদের চূড়ান্ত টেবিল বাস্তবায়ন SQL কোড আছে:

সারণি নিয়োগকারী তৈরি করুন (কর্মচারী নিখরচায় নিখরচায় নেই);

ব্যবস্থাপক এসকিউএল ক্রিয়েশন পরে একটি ডাটাবেসের গঠন পরিবর্তন প্রদান করে

আপনি যদি আজকে বিশেষ করে বুদ্ধিমান হন, তবে আপনি হয়তো লক্ষ্য করেছেন যে আমাদের ডাটাবেস টেবিলের বাস্তবায়নের সময় আমরা "ভুলক্রমে" নকশা প্রয়োজনীয়তা বাদ দিয়েছি। XYZ কর্পোরেশন এর এইচআর পরিচালক অনুরোধ করেন যে ডাটাবেস ট্র্যাক কর্মচারী বেতন তথ্য এবং আমরা ডাটাবেস টেবিলের মধ্যে আমরা এই জন্য প্রদান উপেক্ষিত আমরা তৈরি।

যাইহোক, সব হারিয়ে যায় না আমরা এই বিদ্যমান ডাটাবেসের জন্য এই বৈশিষ্ট্য যুক্ত করার জন্য ALTER TABLE কমান্ড ব্যবহার করতে পারি। আমরা একটি পূর্ণসংখ্যা মান হিসাবে বেতন সংরক্ষণ করতে চান। সিনট্যাক্স তৈরি টেবিল কমান্ডের মতই এখানে, এখানে এটি হল:

ALTER TABLE কর্মচারী বেতন পরিচ্ছদ সরানো;

লক্ষ্য করুন যে আমরা এই বৈশিষ্ট্যের জন্য NULL মান অনুমতি দেওয়া হয়। অধিকাংশ ক্ষেত্রে, বিদ্যমান টেবিলে কলাম যুক্ত করার সময় কোন বিকল্প নেই। এই কারণে যে টেবিলে ইতিমধ্যে এই অ্যাট্রিবিউটের জন্য কোন এন্ট্রির সাথে সারি নেই। অতএব, DBMS স্বয়ংক্রিয়ভাবে অকার্যকর পূরণের জন্য একটি NULL মান সন্নিবেশ করানো হয়।

এবং যে এসকিউএল ডাটাবেস এবং টেবিল তৈরি প্রক্রিয়া আমাদের চেহারা আপ wraps। প্রায়ই আমাদের এসকিউএল টিউটোরিয়াল সিরিজের নতুন কিস্তির জন্য চেক আউট। যদি আপনি একটি ই-মেইল অনুস্মারক চান তবে নতুন নিবন্ধগুলি সম্পর্কে ডাটাবেস সাইটে যোগ করা হলে, আমাদের নিউজলেটারে সাবস্ক্রাইব করা নিশ্চিত করুন!