স্ট্রাকচার্ড কোয়েরি ভাষা আধুনিক ডাটাবেস আর্কিটেকচারের মৌলিক বিল্ডিং ব্লকগুলির মধ্যে একটি। এসকিউএল সমস্ত প্রধান প্লাটফর্মে সম্পর্কযুক্ত ডাটাবেস তৈরি এবং ম্যানিপুলেট করার জন্য ব্যবহৃত পদ্ধতিগুলি সংজ্ঞায়িত করে। প্রথম নজরে, ভাষা ভয়ঙ্কর এবং জটিল মনে হতে পারে, কিন্তু এটি যে সব কঠিন না।
এসকিউএল সম্পর্কে
SQL এর সঠিক উচ্চারণ ডেটাবেস সম্প্রদায়ের মধ্যে একটি বিতর্কিত সমস্যা। এসকিউএল স্ট্যান্ডার্ডে, আমেরিকান ন্যাশনাল স্ট্যান্ডার্ড ইনস্টিটিউট ঘোষণা করেছে যে সরকারী উচ্চারণটি "es queue el।" যাইহোক, অনেক ডাটাবেস পেশাদার slang উচ্চারণ "sequel।" সিদ্ধান্ত আপনার.
এসকিউএল অনেক স্বাদ আসে। ওরাকল ডাটাবেস তার মালিকানা পিএল / এসকিউএল ব্যবহার। মাইক্রোসফ্ট SQL সার্ভার ট্র্যাক্ট্যাক্ট-এসকিউএল ব্যবহার করে। বিভিন্ন বৈচিত্র্য শিল্প মান ANSI এসকিউএল উপর ভিত্তি করে। এই ভূমিকা ANSI-compliant SQL কমান্ড ব্যবহার করে যা কোনও আধুনিক রিলেশনাল ডাটাবেস সিস্টেমে কাজ করে।
ডিডিএল এবং ডিএমএল
এসকিউএল কমান্ড দুটি প্রধান উপ-ভাষা বিভক্ত করা যেতে পারে। ডেটা সংজ্ঞা ভাষা (ডিডিএল) ডাটাবেস এবং ডাটাবেস বস্তু তৈরি এবং ধ্বংস করতে ব্যবহৃত কমান্ড ধারণ করে। ডাটাবেসের কাঠামোটি ডিডিএল দ্বারা সংজ্ঞায়িত করার পরে, ডাটাবেস অ্যাডমিনিস্ট্রেটররা এবং ব্যবহারকারীরা ডেটা ম্যানিপুলেশন ল্যাঙ্গুয়েজ (ডিএমএল) ব্যবহার করতে পারে, এটির মধ্যে থাকা তথ্য সন্নিবেশ, পুনরুদ্ধার এবং সংশোধন করতে পারে।
ডেটা সংজ্ঞা ভাষা কমান্ড
তথ্য সংজ্ঞা ভাষা ডাটাবেস এবং ডাটাবেস বস্তু তৈরি এবং ধ্বংস করতে ব্যবহৃত হয়। এই কমান্ড প্রাথমিকভাবে ডেটাবেস প্রশাসকের দ্বারা ডেটাবেস প্রজেক্টের সেটআপ এবং অপসারণের পর্যায়গুলির সময় ব্যবহৃত হয়। এখানে চারটি মৌলিক DDL কমান্ডের কাঠামো এবং ব্যবহারের একটি বর্ণন রয়েছে:
সৃষ্টি.একটি কম্পিউটারে একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেম ইনস্টল করা আপনাকে অনেক স্বাধীন ডেটাবেস তৈরি এবং পরিচালনা করতে দেয়। উদাহরণস্বরূপ, আপনি আপনার বিক্রয় বিভাগের জন্য গ্রাহক পরিচিতির ডেটাবেস এবং আপনার এইচআর বিভাগের কর্মীদের ডাটাবেস বজায় রাখতে পারেন। CREATE কমান্ডটি আপনার প্ল্যাটফর্মের প্রতিটি ডেটাবেসগুলি ইনস্টল করতে ব্যবহার করা হয়। উদাহরণস্বরূপ, কমান্ডটি:
ডেটাবেস কর্মীদের তৈরি করুন
আপনার DBMS এ "কর্মচারী" নামে একটি খালি ডাটাবেস তৈরি করে। ডাটাবেস তৈরি করার পর, পরবর্তী ধাপ হল তথ্য ধারণকারী টেবিল তৈরি করা। CREATE কমান্ডের আরেকটি রূপ এই উদ্দেশ্যে ব্যবহার করা যেতে পারে। আদেশ: টেবিল ব্যক্তিগত_ইনফো তৈরি করুন (first_name char (20) নুল না, last_name char (20) নাল, কর্মচারী_আইডি int নাল)
বর্তমান ডাটাবেসের মধ্যে "personal_info" শিরোনামের একটি টেবিল স্থাপন করে। উদাহরণস্বরূপ, টেবিলের তিনটি বৈশিষ্ট্য রয়েছে: first_name, last_name, এবং employee_id কিছু অতিরিক্ত তথ্য সহ। ব্যবহার করুন।ইউএসই কমান্ড আপনাকে আপনার ডিবিএমএসের সাথে কাজ করতে চান এমন ডেটাবেস নির্দিষ্ট করার অনুমতি দেয়। উদাহরণস্বরূপ, যদি আপনি বর্তমানে বিক্রয় ডাটাবেসটিতে কাজ করছেন এবং কর্মচারী ডাটাবেসকে প্রভাবিত করতে কিছু কমান্ড ইস্যু করতে চান তবে নিম্নোক্ত SQL কমান্ডের সাথে তাদের প্রচার করুন: কর্মীদের ব্যবহার করুন
ডেটা ম্যানিপুলেট করে এমন SQL কমান্ডগুলি সরবরাহ করার আগে আপনি যে ডেটাবেসে কাজ করছেন সে সম্পর্কে সর্বদা সচেতন থাকা আবশ্যক। পরিবর্তন করুন।একবার আপনি একটি ডাটাবেস মধ্যে একটি টেবিল তৈরি করেছেন, আপনি তার সংজ্ঞা সংশোধন করতে চান। ALTER কমান্ডটি আপনাকে মুছে ফেলার এবং পুনরূদ্ধার না করে একটি টেবিলের কাঠামোতে পরিবর্তন করতে দেয়। নিচের কমান্ডটি দেখুন: ALTER TABLE ব্যক্তিগত_ইনফো যোগ করুন বেতন অর্থ নল
এই উদাহরণটি ব্যক্তিগত_ইনফো সারণিতে একটি নতুন বৈশিষ্ট্য যোগ করে- একজন কর্মচারীর বেতন। "অর্থ" যুক্তিটি নির্দিষ্ট করে যে একজন কর্মচারীর বেতন একটি ডলার এবং সেন্ট ফরম্যাটের মাধ্যমে সংরক্ষণ করা হয়। পরিশেষে, "নাল" শব্দটি ডাটাবেসকে বলে যে এটি এই ক্ষেত্রের জন্য কোনও প্রদত্ত কর্মীর জন্য কোনও মূল্য ধারণ করতে পারে না। ড্রপ।ডেটা সংজ্ঞা ভাষা, DROP এর চূড়ান্ত কমান্ড আমাদেরকে আমাদের DBMS থেকে সম্পূর্ণ ডাটাবেস অবজেক্টগুলি সরাতে দেয়। উদাহরণস্বরূপ, আমরা যদি তৈরি করা ব্যক্তিগত_ইনফো টেবিল স্থায়ীভাবে সরাতে চাই, তাহলে আমরা নিম্নলিখিত কমান্ডটি ব্যবহার করব: ড্রপ টেবিল ব্যক্তিগত_ইনফো
একইভাবে, নিচের কমান্ডটিকে সম্পূর্ণ কর্মী ডাটাবেস মুছে ফেলার জন্য ব্যবহার করা হবে: ড্রপ ডেটাবেস কর্মীরা ড
যত্ন সঙ্গে এই কমান্ড ব্যবহার করুন। DROP কমান্ড আপনার ডেটাবেস থেকে সম্পূর্ণ তথ্য কাঠামো মুছে ফেলে। আপনি পৃথক রেকর্ড মুছে ফেলতে চান, ডেটা ম্যানিপুলেশন ভাষা এর DELETE কমান্ড ব্যবহার করুন। ডেটা ম্যানিপুলেশন ল্যাঙ্গুয়েজ (ডিএমএল) ডাটাবেস তথ্য পুনরুদ্ধার, সন্নিবেশ এবং সংশোধন করতে ব্যবহার করা হয়। এই কমান্ড ডাটাবেসের রুটিন অপারেশন সময় সমস্ত ডাটাবেস ব্যবহারকারীদের দ্বারা ব্যবহৃত হয়। সন্নিবেশ করুন।SQL এ INSERT কমান্ডটি একটি বিদ্যমান টেবিলে রেকর্ড যুক্ত করতে ব্যবহৃত হয়। পূর্ববর্তী বিভাগ থেকে ব্যক্তিগত_ইনফো উদাহরণে ফিরে আসুন, কল্পনা করুন যে আমাদের এইচআর বিভাগকে তার ডাটাবেসটিতে একটি নতুন কর্মচারী যোগ করার প্রয়োজন। আপনি এটির মতো একটি কমান্ড ব্যবহার করতে পারেন: ব্যক্তিগত_ইনফোতে প্রবেশ করুনমান ( 'Bart', 'সিম্পসন', 12345, $ 45000)
রেকর্ডের জন্য নির্দিষ্ট চারটি মান উল্লেখ করুন। এগুলি টেবিলের বৈশিষ্ট্যগুলির সাথে সংজ্ঞায়িত করে যাতে তারা সংজ্ঞায়িত হয়: first_name, last_name, employee_id এবং বেতন। নির্বাচন করুন।SELECT কমান্ড SQL এ সর্বাধিক ব্যবহৃত কমান্ড। এটি ডাটাবেস ব্যবহারকারীদের একটি কর্মক্ষম ডাটাবেস থেকে তারা নির্দিষ্ট নির্দিষ্ট তথ্য পুনরুদ্ধার করতে পারবেন। কর্মচারী ডাটাবেস থেকে ব্যক্তিগত_ইনফো টেবিল ব্যবহার করে আবার কয়েকটি উদাহরণ দেখুন। নীচের কমান্ডটি ব্যক্তিগত_ইনফো টেবিলে থাকা সমস্ত তথ্য উদ্ধার করে। নোট যে এসএক্সকিউএক্স একটি ওয়াইল্ডকার্ড হিসাবে ব্যবহৃত হয়। এই আক্ষরিক অর্থ "ব্যক্তিগত_ইনফো টেবিল থেকে সবকিছু নির্বাচন করুন।" নির্বাচন *ব্যক্তিগত_ইনফো থেকে
বিকল্প হিসাবে, ব্যবহারকারীরা ডাটাবেস থেকে পুনরুদ্ধার করা বৈশিষ্ট্যগুলি সীমাবদ্ধ করতে চাইতে পারে। উদাহরণস্বরূপ, হিউম্যান রিসোর্স ডিপার্টমেন্টকে কোম্পানির সকল কর্মচারীর শেষ নামগুলির তালিকা প্রয়োজন হতে পারে। নিম্নলিখিত SQL কমান্ড শুধুমাত্র সেই তথ্য উদ্ধার করবে: শেষ_নাম নির্বাচন করুনব্যক্তিগত_ইনফো থেকে
WHERE ধারাটি নির্দিষ্ট মাপদণ্ড পূরণ করার জন্য পুনরুদ্ধার করা রেকর্ডগুলিকে সীমাবদ্ধ করতে ব্যবহার করা যেতে পারে। সিইও সমস্ত উচ্চ বেতন কর্মীদের কর্মীদের রেকর্ড পর্যালোচনা আগ্রহী হতে পারে। নিম্নলিখিত কমান্ডটি $ 50,000 এর বেশি বেতন মূল্যের রেকর্ডগুলির জন্য ব্যক্তিগত_ইনফোর মধ্যে থাকা সমস্ত তথ্য উদ্ধার করে: নির্বাচন *ব্যক্তিগত_ইনফো থেকেযেখানে বেতন> $ 50000
হালনাগাদ.UPDATE কমান্ড ব্যবহার করা যেতে পারে টেবিলের মধ্যে থাকা তথ্য সংশোধন করতে, বাল্ক বা পৃথকভাবে। অনুমান করুন যে কোম্পানিটি তাদের কর্মচারীদের বছরে তাদের বেতন বছরে 3 শতাংশেরও বেশি খরচ দেয়। নিম্নোক্ত এসকিউএল কমান্ড ডেটাবেসে সংরক্ষিত সমস্ত কর্মচারীদের দ্রুত প্রয়োগ করার জন্য ব্যবহার করা যেতে পারে: আপডেট করুন personal_infoSET বেতন = বেতন * 1.03
যখন নতুন কর্মচারী বার্ট সিম্পসন দায়িত্ব পালনের উপরে এবং তার বাইরে কর্মক্ষমতা প্রদর্শন করেন, তখন ব্যবস্থাপনাটি 5,000 ডলার বাড়াতে তার তারকীয় অর্জনগুলি স্বীকার করতে চায়। WHERE ধারাটি এই উত্থানের জন্য বার্ট আউট একক ব্যবহার করা যেতে পারে: আপডেট করুন personal_infoSET বেতন = বেতন + $ 5000যেখানে কর্মচারী_আইডি = 12345
মুছে ফেলা.অবশেষে, DELETE কমান্ডটি একবার দেখি। আপনি দেখতে পাবেন যে এই কমান্ডের সিনট্যাক্স অন্যান্য DML কমান্ডের মতো। দুর্ভাগ্যবশত, আমাদের সর্বশেষ কর্পোরেট উপার্জন প্রতিবেদন বেশিরভাগ প্রত্যাশা পূরণ করেনি এবং দরিদ্র বার্ট বন্ধ করা হয়েছে। WHERE ধারা সহ DELETE কমান্ডটি ব্যক্তিগত_ইনফো টেবিল থেকে তার রেকর্ডটি সরাতে ব্যবহার করা যেতে পারে: ব্যক্তিগত_ইনফো থেকে মুছে দিনযেখানে কর্মচারী_আইডি = 12345 এখন আপনি এসকিউএল এর বুনিয়াদি শিখেছি, এখন ভাষাটি অফার করা সবচেয়ে শক্তিশালী ধারণার অন্যতম দিকে যাওয়ার সময় - JOIN বিবৃতি। একটি JOIN বিবৃতি দক্ষতার সাথে বৃহৎ পরিমাণে ডেটা প্রক্রিয়া করার জন্য আপনাকে একাধিক সারণিতে ডেটা একত্রিত করার অনুমতি দেয়। এই বিবৃতি যেখানে একটি ডাটাবেসের সত্য শক্তি বসবাস করে। দুটি টেবিল থেকে তথ্য একত্রিত করার জন্য একটি মৌলিক JOIN অপারেশন ব্যবহারের অন্বেষণ করতে, PERSONAL_INFO টেবিল ব্যবহার করে উদাহরণটি চালিয়ে যান এবং মিশ্রণটিতে একটি অতিরিক্ত টেবিল যুক্ত করুন। অনুমান করুন আপনার DISCIPLINARY_ACTION নামে একটি টেবিল রয়েছে যা নিম্নলিখিত বিবৃতি দিয়ে তৈরি হয়েছিল: টেবিল শৃঙ্খলাবদ্ধকরণ তৈরি করুন (action_id int null না, employee_id int null না, মন্তব্য char (500))
এই টেবিলে কোম্পানির কর্মীদের উপর শাস্তিমূলক কর্ম ফলাফল উপস্থিত রয়েছে। আপনি লক্ষ্য করবেন যে এটি কর্মচারী সংখ্যা ছাড়া কর্মচারী সম্পর্কে কোন তথ্য ধারণ করে না। DISCIPLINARY_ACTION এবং PERSONAL_INFO টেবিল থেকে তথ্য একত্রিত করতে পারে এমন অনেক পরিস্থিতিতে কল্পনা করা সহজ। আপনি 40,000 ডলারেরও বেশি বেতন সহ সমস্ত কর্মীদের বিরুদ্ধে শাস্তিমূলক পদক্ষেপগুলি তালিকাবদ্ধ করে এমন একটি প্রতিবেদন তৈরি করার বিষয়ে কাজ করেছেন বলে মনে করেন। এই ক্ষেত্রে, একটি JOIN অপারেশন ব্যবহার সহজতর। আমরা নিম্নলিখিত কমান্ডটি ব্যবহার করে এই তথ্যটি পুনরুদ্ধার করতে পারি: ব্যক্তিগত_ইনফো। ফার্স্ট_নাম, ব্যক্তিগত_ইনফো.এই_এ_এ_নাম, শৃঙ্খলাবদ্ধ_অনুসন্ধান করুনব্যক্তিগত_ইনফো থেকে, শৃঙ্খলাবদ্ধতাযেখানে personal_info.employee_id = disciplinary_action.employee_idএবং personal_info.salary> 40000
কোডটি দুটি সারণীকে নির্দিষ্ট করে দেয় যা আমরা FROM বিভাগে যোগদান করতে চাই এবং তারপরে WHERE ধারাটিতে ফলাফলগুলি সীমাবদ্ধ করার জন্য কর্মচারী আইডিগুলির সাথে মিলিত হওয়া রেকর্ডগুলি সীমিত করতে এবং $ 40,000 এরও বেশি বেতনগুলির আমাদের মানদণ্ড পূরণ করে। তথ্য ম্যানিপুলেশন ভাষা কমান্ড
যোগদান করে