এসকিউএল ফান্ডামেন্টালস

DDL, DML এবং JOIN এর সম্পর্কে জানুন

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

এসকিউএলের পিছনে মূল ভিত্তি এই প্রেক্ষাপটে ডেটাবেস তৈরি এবং সংশোধন করার জন্য ব্যবহৃত কয়েকটি কমান্ডের সংক্ষিপ্ত পরিসংখ্যান নেয়।

এসকিউএল সম্পর্কে

এসকিউএলের সঠিক উক্তিটি ডাটাবেস সম্প্রদায়ের মধ্যে একটি বিতর্কিত বিষয়। তার এসকিউএল মানচিত্রে, আমেরিকান ন্যাশনাল স্ট্যান্ডার্ডস ইনস্টিটিউট ঘোষনা করে যে আধুনিক উচ্চারণ "এস কিউই এল"। যাইহোক, অনেক ডাটাবেস পেশাদার slang উচ্চারণ গ্রহণ করা হয়েছে "সিক্যুয়েল।" সিদ্ধান্ত আপনার.

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

ডিডিএল এবং ডিএমএল

এসকিউএল কমান্ড দুটি প্রধান সাব-ভাষায় বিভক্ত করা যায়। ডেটা ডেফিনিশনের ভাষা (DDL) উপাত্তসমূহ এবং ডেটাবেস এবং ডাটাবেস অবজেক্টগুলি তৈরি এবং ধ্বংস করার জন্য ব্যবহৃত কমান্ডগুলি অন্তর্ভুক্ত করে। ডেটাবেস কাঠামোটি DDL- এর সাথে সংজ্ঞায়িত করার পর ডাটাবেস অ্যাডমিনিস্ট্রেটর এবং ব্যবহারকারীরা ডেটা ম্যানিপুলেশন ল্যাংগুয়েজ (ডিএমএল) ব্যবহার করতে পারেন যাতে এতে অন্তর্ভুক্ত ডেটা অন্তর্ভুক্ত, পুনরুদ্ধার এবং সংশোধন করা যায়।

ডেটা সংজ্ঞা ভাষা কমান্ড

ডেটা ডেফিনিশন ভাষা ডেটাবেস এবং ডাটাবেস বস্তু তৈরি এবং ধ্বংস করতে ব্যবহৃত হয়। ডাটাবেস প্রজেক্টের সেটআপ এবং অপসারণের পর্যায়গুলির সময় ডাটাবেস অ্যাডমিনিস্ট্রেটররা এই কমান্ডগুলি ব্যবহার করেন। চারটি DDL কমান্ডের কাঠামো এবং ব্যবহার সম্পর্কে এখানে দেখুন:

সৃষ্টি. একটি কম্পিউটারে একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেম ইনস্টল করা আপনাকে অনেক স্বাধীন ডাটাবেস তৈরি এবং পরিচালনা করতে দেয়। উদাহরণস্বরূপ, আপনি আপনার বিক্রয় বিভাগের জন্য গ্রাহক পরিচিতিগুলির একটি ডাটাবেস এবং আপনার এইচআর ডিপার্টমেন্টের একটি কর্মী ডাটাবেস বজায় রাখতে পারেন। CREATE কমান্ডটি আপনার প্ল্যাটফর্মে প্রতিটি ডেটাবেসগুলি স্থাপন করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, কমান্ড:

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

আপনার DBMS- এ "কর্মচারী" নামক একটি খালি ডাটাবেস তৈরি করে। ডাটাবেস তৈরি করার পর, পরবর্তী ধাপ হল টেবিলের তৈরি করা যা ডাটা ধারণ করে। CREATE কমান্ডের অন্য রূপটি এই উদ্দেশ্যে ব্যবহার করা যেতে পারে। আদেশ:

সারণি ব্যক্তিগত_ইনফো তৈরি করুন (প্রথম_নাম গৃহস্থালি (20) নাল না, শেষ_নাম গৃহস্থালি (20) নল না, কর্মচারী_আইড এনট নাল)

বর্তমান ডাটাবেসে "Personal_info" শিরোনাম একটি টেবিল স্থাপন করে। উদাহরণস্বরূপ, টেবিলে তিনটি বৈশিষ্ট্য রয়েছে: first_name, last_name এবং employee_id কিছু অতিরিক্ত তথ্য সহ।

ব্যবহার করুন। USE কমান্ডটি আপনাকে আপনার DBMS- এর মধ্যে যে ডাটাবেস কাজ করতে চান তা উল্লেখ করতে দেয়। উদাহরণস্বরূপ, যদি আপনি বর্তমানে সেলস ডাটাবেসে কাজ করছেন এবং কিছু কমান্ড ইস্যু করতে চান যা কর্মচারী ডেটাবেসকে প্রভাবিত করবে, তাহলে নিম্নলিখিত SQL কমান্ডের সাথে প্রিফার করবে:

USE কর্মীদের ব্যবহার

ডেটা সনাক্তকরণের আগে এসকিউএল কমান্ডগুলি প্রদান করার আগে আপনি যে ডাটাবেসটি কাজ করছেন তার সর্বদা সচেতন হওয়া গুরুত্বপূর্ণ।

পরিবর্তন করুন। একবার আপনি একটি ডাটাবেস মধ্যে একটি টেবিল তৈরি করেছি, আপনি তার সংজ্ঞা সংশোধন করতে পারেন ALTER কমান্ডটি আপনাকে টেবিলের কাঠামোতে পরিবর্তন না করে এটি পুনরুদ্ধার এবং পরিবর্তন করার অনুমতি দেয়। নিম্নলিখিত কমান্ডটি দেখুন:

এল্টার টেবল ব্যক্তিগত_ইনফো Add money বেতন নাল

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

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

ড্রপ টেবল ব্যক্তিগত_ইনফো

একইভাবে, নিচের কমান্ডটি সম্পূর্ণ কর্মী ডাটাবেস অপসারণের জন্য ব্যবহার করা হবে:

ড্রপ ড্যাটাবিস কর্মচারী

যত্ন সহ এই কমান্ড ব্যবহার করুন DROP কমান্ডটি আপনার ডাটাবেসের সম্পূর্ণ ডাটা স্ট্রাকচারগুলি সরিয়ে দেয়। আপনি যদি পৃথক রেকর্ড মুছে ফেলতে চান, ডেটা ম্যানিপুলেশন ভাষা ডিফল্ট কমান্ড ব্যবহার করুন।

ডেটা ম্যানিপুলেশন ল্যাংগুয়েজ কমান্ড

ডাটা ম্যানিপুলেশন ল্যাংগুয়েজ (ডিএমএল) ডাটাবেস তথ্য উদ্ধার, সন্নিবেশ এবং সংশোধন করতে ব্যবহৃত হয়। এই কমান্ডের ডাটাবেস ব্যবহারকারীদের সর্বদা ডাটাবেসের রুটিন অপারেশনের সময় ব্যবহার করা হয়।

সন্নিবেশ করুন। এসকিউএলের INSERT কমান্ডটি একটি বিদ্যমান টেবিলে রেকর্ড যুক্ত করতে ব্যবহৃত হয়। আগের বিভাগ থেকে personal_info উদাহরণ ফেরত, কল্পনা করুন যে আমাদের এইচআর ডিপার্টমেন্টে একটি নতুন কর্মচারীকে তার ডাটাবেস যুক্ত করতে হবে। আপনি এই এক অনুরূপ একটি কমান্ড ব্যবহার করতে পারে:

ব্যক্তিগত_ইনফো মানগুলিতে প্রবেশ করুন ('বার্ট', 'সিম্পসন', 12345, $ 45000)

উল্লেখ্য, রেকর্ডের জন্য নির্ধারিত চারটি মান রয়েছে। এই টেবিলের বৈশিষ্ট্যাবলীগুলির সাথে ক্রমানুসারে তারা সংজ্ঞায়িত ছিল: first_name, last_name, employee_id এবং বেতন।

নির্বাচন করুন। SELECT কমান্ড হল এসকিউএল এর সবচেয়ে বেশি ব্যবহৃত কমান্ড। এটি ডাটাবেস ব্যবহারকারীদের একটি কার্যক্ষম ডাটাবেসের থেকে তারা ইচ্ছুক নির্দিষ্ট তথ্য উদ্ধার করতে পারবেন। কয়েকটি উদাহরণ দেখুন, আবার কর্মচারী ডাটাবেস থেকে personal_info টেবিল ব্যবহার করে।

নিচে দেখানো কমান্ডটি personal_info টেবিলে থাকা সমস্ত তথ্য উদ্ধার করে। লক্ষ্য করুন যে সূত্রটি এসকিউএল এর একটি ওয়াইল্ডকার্ড হিসাবে ব্যবহৃত হয়। এই আক্ষরিক অর্থ হল "personal_info টেবিল থেকে সবকিছু নির্বাচন করুন।"

ব্যক্তিগত_ইনফো থেকে নির্বাচন করুন

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

Personal_info থেকে past_name নির্বাচন করুন

WHERE ক্লোজটি নির্দিষ্ট মাপদণ্ডের সাথে মিলিত রেকর্ডগুলি সীমাবদ্ধ করার জন্য ব্যবহার করা যেতে পারে। প্রধান নির্বাহী কর্মকর্তা সব অত্যন্ত বেতনভোগী কর্মচারীদের কর্মীদের রেকর্ড পর্যালোচনা করতে আগ্রহী হতে পারে। নিম্নোক্ত কমান্ডটি রেকর্ডের জন্য personal_info এর মধ্যে অন্তর্ভুক্ত সমস্ত ডেটা উদ্ধার করে যা $ 50,000 এর চেয়েও বেশি বেতন প্রদান করে:

SELECT * ব্যক্তিগত_ইনফো থেকে যেখানে বেতন> $ 50000

হালনাগাদ. UPDATE কমান্ডটি একটি সারণিতে অন্তর্ভুক্ত তথ্য সংশোধন করতে ব্যবহার করা যেতে পারে, তা বাল্ক বা পৃথকভাবে। অনুমান করুন কোম্পানির সমস্ত কর্মচারীকে তাদের বেতন বছরে 3 শতাংশ খরচের খরচ বৃদ্ধি করে। নিম্নোক্ত এসকিউএল কমান্ডটি ডাটাবেসের মধ্যে সঞ্চিত সমস্ত কর্মচারীদের কাছে এটি দ্রুত প্রয়োগ করতে ব্যবহার করা যেতে পারে:

আপডেট করুন ব্যক্তিগত_ইনফো SET বেতন = বেতন * 1.03

যখন নতুন কর্মচারী Bart Simpson দায়িত্বের উপরোক্ত উপরে এবং তার পরেও কর্মক্ষমতা প্রদর্শন করে, ব্যবস্থাপনা একটি $ 5,000 বৃদ্ধি সঙ্গে তার অসাধারণ কৃতিত্ব স্বীকার করতে ইচ্ছুক। WHERE ক্লোজটি এই বৃদ্ধির জন্য Bart আউট একক ব্যবহার করা যেতে পারে:

Personal_info SET বেতন আপডেট করুন = বেতন + $ 5000 যেখানে কর্মচারী_আইডি = 12345

মুছে ফেলা. অবশেষে, চলুন DELETE কমান্ডটি দেখুন। আপনি পাবেন যে এই কমান্ডের সিনট্যাক্স অন্য DML কমান্ডের অনুরূপ। দুর্ভাগ্যবশত, আমাদের সর্বশেষ কর্পোরেট উপার্জন প্রতিবেদনটি পুরোপুরি প্রত্যাশা পূরণ করেনি এবং দারিদ্র বিড়ালটি বন্ধ করা হয়েছে। একটি WHERE ক্লজ সহ DELETE কমান্ডটি ব্যক্তিগত_ইনফো টেবিলে তার রেকর্ড সরাতে ব্যবহার করা যেতে পারে:

Personal_info WHERE employee_id = 12345 থেকে মুছে ফেলুন

যোগদান করে

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

দুটি টেবিলের ডাটা একত্রিত করার জন্য একটি মৌলিক JOIN অপারেশন ব্যবহারের অন্বেষণ করতে, PERSONAL_INFO টেবিলের সাহায্যে উদাহরণটি চালিয়ে যান এবং মিশ্রণে একটি অতিরিক্ত সারণি যোগ করুন। অনুমান করুন যে আপনার কাছে DISCIPLINARY_ACTION নামক একটি টেবিল আছে যা নিম্নলিখিত বিবৃতি দিয়ে তৈরি হয়েছে:

টেবিল শৃঙ্খলাভঙ্গি তৈরি করুন (action_id int নাল, employee_id int নাল, মন্তব্য গৃহস্থালি (500))

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

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

Personal_info.first_name, personal_info.last_name, personal_info থেকে disciplinary_action.comments নির্বাচন করুন, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id এবং personal_info.salary> 40000

কোড দুটি টেবিলগুলিকে আমরা FROM ক্লজে যোগ দিতে চাই এবং তারপর WHERE ক্লজে একটি বিবৃতি অন্তর্ভুক্ত করে যা রেকর্ডের সাথে পরিচয় করানো কর্মচারীদের আইডিগুলি সীমাবদ্ধ করে দেয় এবং $ 40,000 এর বেশি বেতন থেকে আমাদের মানদণ্ড পূরণ করে।