SQL ডেভেলপারদের জন্য ইন্টারভিউ প্রশ্ন: সাধারণ SQL ইন্টারভিউ প্রশ্নোত্তর- পার্ট 3

এসকিউএল-এ, আপনি কি ধরনের joins ব্যবহার করেছেন এবং ব্যাখ্যা করুন কিভাবে তারা কাজ করে?

উত্তর:

  • INNER JOIN: উভয় সারণী থেকে মিলে যাওয়া ডেটা সহ সারি প্রদান করে।
  • LEFT JOIN: বাম টেবিল থেকে সমস্ত সারি এবং ডান টেবিল থেকে মিলিত সারিগুলি দেখায়৷
  • RIGHT JOIN: ডান টেবিল থেকে সমস্ত সারি এবং বাম টেবিল থেকে মিলিত সারি প্রদান করে৷
  • FULL JOIN: নন-মেলা সারি সহ উভয় টেবিল থেকে সমস্ত সারি প্রদান করে।

 

এসকিউএল-এ ACID ধারণা এবং লেনদেন পরিচালনায় তাদের ভূমিকা ব্যাখ্যা করুন

উত্তরঃ ACID মানে Atomicity, Consistency, Isolation, Durability । এসকিউএল-এ লেনদেন পরিচালনায় এগুলি অপরিহার্য বৈশিষ্ট্য:

  • Atomicity নিশ্চিত করে যে একটি লেনদেন সম্পূর্ণরূপে প্রক্রিয়া করা হয়েছে বা মোটেও প্রক্রিয়া করা হয়নি।
  • Consistency নিশ্চিত করে যে ডেটা অবশ্যই সংজ্ঞায়িত নিয়ম, সীমাবদ্ধতা এবং শর্তাবলী মেনে চলে।
  • Isolation নিশ্চিত করে যে সমসাময়িক লেনদেন একে অপরের সাথে হস্তক্ষেপ না করে।
  • Durability নিশ্চিত করে যে একবার লেনদেন সম্পন্ন হলে, ডাটাবেসের পরিবর্তনগুলি নিরাপদে এবং স্থায়ীভাবে সংরক্ষিত হয়।

 

ROW_NUMBER(), RANK(), DENSE_RANK() এসকিউএল ফাংশন মধ্যে পার্থক্য কি ?

উত্তর: ROW_NUMBER(), RANK(), DENSE_RANK() সবগুলোই একটি ক্যোয়ারী ফলাফলে সারি সংখ্যার জন্য ব্যবহৃত হয়, কিন্তু তাদের নিম্নলিখিত পার্থক্য রয়েছে:

  • ROW_NUMBER(): ডুপ্লিকেট বিবেচনা না করে ক্যোয়ারী ফলাফলের সারিগুলিতে ক্রমাগত সংখ্যা বরাদ্দ করে৷
  • RANK(): ক্যোয়ারী ফলাফলে সারিতে সংখ্যা বরাদ্দ করে এবং টাই থাকলে পরবর্তী সংখ্যাটি এড়িয়ে যায়।
  • DENSE_RANK(): ক্যোয়ারী ফলাফলে সারিগুলিতে সংখ্যা বরাদ্দ করে এবং টাইয়ের ক্ষেত্রে পরবর্তী সংখ্যাটি এড়িয়ে যায় না।

 

কিভাবে window functions SQL এ ব্যবহার করবেন এবং একটি উদাহরণ প্রদান করুন।

উত্তর: Window functions মূল প্রশ্নের ফলাফল পরিবর্তন না করেই সম্পর্কিত সারির একটি সেটে গণনা করার অনুমতি দিন। উদাহরণস্বরূপ, আমরা চলমান মোট গণনা করতে উইন্ডো ফাংশন ব্যবহার করতে পারি বা ফলাফল সেটের মধ্যে শীর্ষ N সারিগুলি পুনরুদ্ধার করতে পারি।

SELECT ProductID, UnitPrice,   
       SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal  
FROM Products;  

 

প্যাটার্ন মিলের জন্য SQL এ রেগুলার এক্সপ্রেশন কিভাবে ব্যবহার করবেন

উত্তর: এসকিউএল-এ রেগুলার এক্সপ্রেশনগুলি জটিল পাঠ্য প্যাটার্ন অনুসন্ধানের জন্য ব্যবহৃত হয়। LIKE এগুলি প্রায়শই অপারেটর বা ফাংশনের সাথে ব্যবহার করা হয় যেমন REGEXP_LIKE(ওরাকল) বা REGEXP_MATCHES(পোস্টগ্রেএসকিউএল-এ)।

SELECT * FROM Employees WHERE LastName LIKE '%son%';

 

JSON ডেটার সাথে কাজ করতে SQL-এ JSON ফাংশনগুলি কীভাবে ব্যবহার করবেন

উত্তর: SQL-এ JSON ফাংশনগুলি ডাটাবেসে JSON ফর্ম্যাটে ডেটা অনুসন্ধান, সন্নিবেশ, আপডেট এবং মুছে ফেলার অনুমতি দেয়।

উদাহরণস্বরূপ, আমরা JSON বৈশিষ্ট্যগুলিকে ম্যানিপুলেট করার জন্য JSON_VALUE, JSON_QUERY, JSON_MODIFY(এসকিউএল সার্ভারে), বা ->, ->>, #>, #>> ইত্যাদি(PostgreSQL-এ) এর মতো অপারেটরগুলি ব্যবহার করতে পারি।

SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName  
FROM Customers;  

 

এসকিউএল কোয়েরি অপ্টিমাইজেশান এবং ডাটাবেস পারফরম্যান্স টিউনিংয়ের জন্য উন্নত কৌশল

উত্তর: এসকিউএল কোয়েরি এবং ডাটাবেস কর্মক্ষমতা অপ্টিমাইজ করতে, আমরা কৌশলগুলি ব্যবহার করতে পারি যেমন:

  • প্রায়শই জিজ্ঞাসা করা কলামগুলির জন্য সূচী ব্যবহার করা।
  • অপ্টিমাইজ করা JOIN এবং WHERE দক্ষ ডেটা পুনরুদ্ধারের জন্য ধারা।
  • প্রয়োজনে উইন্ডো ফাংশন এবং পেজিনেশন ব্যবহার করা।
  • SELECT শুধুমাত্র প্রয়োজনীয় কলাম পুনরুদ্ধার করতে * এড়িয়ে যাওয়া ।
  • কিছু ক্ষেত্রে ক্যোয়ারী ইঙ্গিত ব্যবহার করে।
  • ডেটা স্বাভাবিককরণ নিশ্চিত করা এবং সদৃশগুলি সরানো।
  • ডাটাবেস ট্র্যাক এবং সূক্ষ্ম-টিউন করতে কর্মক্ষমতা নিরীক্ষণ সরঞ্জাম নিয়োগ করা।

 

SQl-এ SET অপারেশনগুলি কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করুন (UNION, INTERSECT, EXCEPT)

উত্তর: SET অপারেশনগুলি (UNION, INTERSECT, EXCEPT) বিভিন্ন প্রশ্নের ফলাফল সেটগুলিকে একত্রিত করতে এবং ম্যানিপুলেট করতে ব্যবহৃত হয়।

  • UNION: একটি একক ডেটা সেটে দুই বা ততোধিক প্রশ্নের ফলাফল একত্রিত করে এবং সদৃশগুলিকে সরিয়ে দেয়৷
  • INTERSECT: উভয় ক্যোয়ারী ফলাফল সেটে প্রদর্শিত সারি প্রদান করে।
  • EXCEPT: প্রথম ক্যোয়ারী ফলাফল সেটে প্রদর্শিত সারিগুলি দেখায় কিন্তু দ্বিতীয়টিতে নয়৷

 

LEAD, LAG, FIRST_VALUE, LAST_VALUE এসকিউএল-এর মতো কোয়েরি ফাংশনগুলি কীভাবে ব্যবহার করবেন

LEAD, LAG, FIRST_VALUE, LAST_VALUE উত্তর: একই ক্যোয়ারী ফলাফলের মধ্যে সম্পর্কিত সারি থেকে মান পুনরুদ্ধারের জন্য ক্যোয়ারী ফাংশনগুলি ব্যবহার করা হয়।

  • LEAD: ক্যোয়ারী ফলাফলের পরবর্তী সারি থেকে একটি কলামের মান পায়।
  • LAG: ক্যোয়ারী ফলাফলে পূর্ববর্তী সারি থেকে একটি কলামের মান পায়।
  • FIRST_VALUE: ক্যোয়ারী ফলাফলে একটি কলামের প্রথম মান পুনরুদ্ধার করে।
  • LAST_VALUE: ক্যোয়ারী ফলাফলে একটি কলামের শেষ মান পুনরুদ্ধার করে।