2.1 এসকিউএল এর ভূমিকা
আপনার যদি একটি ডাটাবেস (ডিবি) থাকে এবং এতে - কিছু ডেটা সহ একটি টেবিল, তবে সবচেয়ে সাধারণ কাজটি এই টেবিলে নির্দিষ্ট ডেটা খুঁজে পাওয়া। এটিই 40 বছর আগে এসকিউএল উদ্ভাবিত হয়েছিল।
SQL মানে স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ ।
সবচেয়ে সহজ SQL ক্যোয়ারী এই মত দেখায়:
SELECT column1, column2, … columnN FROM table
ধরা যাক আপনার স্টার্টআপের কর্মীদের তালিকা সহ আপনার কাছে একটি কর্মচারী টেবিল রয়েছে:
আইডি | নাম | পেশা | বেতন | বয়স | তারিখ যোগ দিতে |
---|---|---|---|---|---|
1 | ইভানভ ইভান | প্রোগ্রামার | 100,000 | 25 | 2012-06-30 |
2 | পেট্রোভ পেট্র | প্রোগ্রামার | 80,000 | 23 | 2013-08-12 |
3 | ইভানভ সের্গেই | পরীক্ষক | 40,000 | ত্রিশ | 2014-01-01 |
4 | রাবিনোভিচ মইশা | পরিচালক | 200,000 | 35 | 2015-05-12 |
5 | কিরিয়েনকো আনাস্তাসিয়া | অফিস ব্যবস্থাপক | 40,000 | 25 | 2015-10-10 |
6 | ভাস্কা | বিড়াল | 1,000 | 3 | 2018-01-01 |
আপনি একটি ক্যোয়ারী লিখতে চান যা employee names
সেগুলিকেও প্রদর্শন করবে salaries
, তারপর আপনাকে একটি ক্যোয়ারী লিখতে হবে:
SELECT name, salary FROM employee
আপনি প্রশ্নের ফলাফল পাবেন:
নাম | বেতন |
---|---|
ইভানভ ইভান | 100,000 |
পেট্রোভ পেট্র | 80,000 |
ইভানভ সের্গেই | 40,000 |
রাবিনোভিচ মইশা | 200,000 |
কিরিয়েনকো আনাস্তাসিয়া | 40,000 |
ভাস্কা | 1,000 |
আপনি যদি আপনার টেবিলের সমস্ত কলাম প্রদর্শন করতে চান তবে সমস্ত কলামের নাম তালিকাভুক্ত করার পরিবর্তে, আপনি কেবল একটি তারকাচিহ্ন লিখতে পারেন। উদাহরণ:
SELECT * FROM employee
আপনি প্রশ্নের ফলাফল পাবেন:
আইডি | নাম | পেশা | বেতন | বয়স | তারিখ যোগ দিতে |
---|---|---|---|---|---|
1 | ইভানভ ইভান | প্রোগ্রামার | 100,000 | 25 | 2012-06-30 |
2 | পেট্রোভ পেট্র | প্রোগ্রামার | 80,000 | 23 | 2013-08-12 |
3 | ইভানভ সের্গেই | পরীক্ষক | 40,000 | ত্রিশ | 2014-01-01 |
4 | রাবিনোভিচ মইশা | পরিচালক | 200,000 | 35 | 2015-05-12 |
5 | কিরিয়েনকো আনাস্তাসিয়া | অফিস ব্যবস্থাপক | 40,000 | 25 | 2015-10-10 |
6 | ভাস্কা | বিড়াল | 1,000 | 3 | 2018-01-01 |
2.2 এসকিউএল কোয়েরির উন্নত দৃশ্য
SQL ভাষা যতটা সম্ভব ব্যবহারকারী-বান্ধব হিসাবে ডিজাইন করা হয়েছিল।
প্রথমত, রিকোয়েস্ট টেক্সটের ক্ষেত্রে কিছু যায় আসে না । আপনি SELECT, Select, বা Select লিখতে পারেন এবং সবকিছু কাজ করবে। দ্বিতীয়ত, লাইন বিরতি কোনোভাবেই বিবেচনায় নেওয়া হয় না । DBMS ক্যোয়ারীটিকে একটি দীর্ঘ স্ট্রিংয়ে পরিণত করবে, তাই আপনি এটিকে আপনার পছন্দ মতো লিখতে পারেন।
আপনি সম্ভবত ইতিমধ্যে অনুমান করেছেন, SELECT এবং FROM কীওয়ার্ড সীমাবদ্ধ নয়। অন্যথায় এসকিউএল এর চারপাশে এত কথা হবে না। এসকিউএল ক্যোয়ারী এর বর্ধিত ভিউ এই মত দেখায়:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting
একটি কীওয়ার্ডের সাহায্যে, WHERE
আপনি নির্বাচিত সারিগুলির জন্য একটি শর্ত / ফিল্টার সেট করতে পারেন।
উদাহরণ 1 । আসুন একটি প্রশ্ন লিখি যা "প্রোগ্রামার" পেশার সাথে কর্মীদের নির্বাচন করবে:
SELECT * FROM employee WHERE occupation = 'Programmer'
এবং আমরা নিম্নলিখিত ক্যোয়ারী ফলাফল পেতে:
আইডি | নাম | পেশা | বেতন | বয়স | তারিখ যোগ দিতে |
---|---|---|---|---|---|
1 | ইভানভ ইভান | প্রোগ্রামার | 100,000 | 25 | 2012-06-30 |
2 | পেট্রোভ পেট্র | প্রোগ্রামার | 80,000 | 23 | 2013-08-12 |
আপনি দেখতে পাচ্ছেন, ক্যোয়ারী সম্পাদনের ফলে, শুধুমাত্র সেই সারিগুলি প্রদর্শিত হয় যেখানে কর্মচারীর পেশাকে "প্রোগ্রামার" বলা হয়।
কীওয়ার্ডগুলি GROUP BY
, ORDER BY
এবং HAVING
আমরা পরবর্তী লেকচারগুলিতে কভার করব। এবং এখানে আমরা WHERE শব্দটি দিয়ে আরও কয়েকটি উদাহরণ বিশ্লেষণ করব।
উদাহরণ 2 । এখন আসুন একটি প্রশ্ন লিখি যা আমাদের সকল কর্মচারীকে দেখাবে যার বেতন 100K এর বেশি। এটি দেখতে কেমন হবে তা এখানে:
SELECT * FROM employee WHERE salary > 100000
আমরা নিম্নলিখিত ক্যোয়ারী ফলাফল পেতে:
আইডি | নাম | পেশা | বেতন | বয়স | তারিখ যোগ দিতে |
---|---|---|---|---|---|
4 | রাবিনোভিচ মইশা | পরিচালক | 200,000 | 35 | 2015-05-12 |
উদাহরণ 3 । এখন আরো কঠিন কিছু চেষ্টা করা যাক. 2015 সালে নিয়োগ করা সমস্ত কর্মচারীদের কীভাবে প্রদর্শন করবেন? এবং এই মত:
SELECT * FROM employee WHERE YEAR(join_date) = 2015
আমরা নিম্নলিখিত ক্যোয়ারী ফলাফল পেতে:
আইডি | নাম | পেশা | বেতন | বয়স | তারিখ যোগ দিতে |
---|---|---|---|---|---|
4 | রাবিনোভিচ মইশা | পরিচালক | 200,000 | 35 | 2015-05-12 |
5 | কিরিয়েনকো আনাস্তাসিয়া | অফিস ব্যবস্থাপক | 40,000 | 25 | 2015-10-10 |
এই ক্যোয়ারীতে, আমরা একটি বিশেষ ফাংশন ব্যবহার করি YEAR()
যা আমাদেরকে একটি তারিখ থেকে বছর পেতে এবং তারপর তারিখের বছরটিকে 2015 সংখ্যার সাথে তুলনা করতে দেয়।
2.3 SQL প্রশ্নে মন্তব্য
এবং আরও একটি গুরুত্বপূর্ণ বিষয় হল SQL প্রশ্নে মন্তব্য। মন্তব্য একটি খুব দরকারী জিনিস. প্রথমত, আপনি তাদের মধ্যে ব্যাখ্যা এবং/অথবা আপনার ধারণা লিখতে পারেন। দ্বিতীয়ত, মন্তব্যের সাহায্যে, আপনি ভাঙা কোড নিষ্ক্রিয় করতে পারেন। অথবা কোডের পুরানো সংস্করণটি মন্তব্য করুন।
এসকিউএল, জাভা মত, একক লাইন এবং বহু লাইন মন্তব্য আছে. অধিকন্তু, একটি মাল্টি-লাইন মন্তব্য জাভা-এর মতোই দেখায়। এর চেহারা:
/*
comment text
comment text
comment text
*/
অবশ্যই, এটি এক লাইনেও ব্যবহার করা যেতে পারে। উদাহরণ:
/*comment text*/
জাভা "//" এর মতো "প্রথম থেকে লাইনের শেষ পর্যন্ত" এক ধরণের মন্তব্যও রয়েছে। শুধুমাত্র SQL এ আপনাকে দুটি বিয়োগ অক্ষর এবং একটি স্পেস লিখতে হবে । এই ধরনের মন্তব্যের সাধারণ দৃষ্টিভঙ্গি:
-- comment text
উদাহরণ:
SELECT * FROM employee -- WHERE YEAR(join_date) = 2015
উপরের উদাহরণে, আমরা ক্যোয়ারী শর্তটি মন্তব্য করেছি, তাই MySQL শুধুমাত্র ক্যোয়ারীটি চালাবে:
SELECT * FROM employee
2.4 SQL উচ্চারণ
আপনি যদি বিদেশী গ্রাহকদের সাথে যোগাযোগ করেন বা একটি আমেরিকান কোম্পানির জন্য একটি অনলাইন ইন্টারভিউ পাস করেন, তাহলে আপনাকে সিক্যুয়াল ভাষার সাথে আপনার অভিজ্ঞতা সম্পর্কে জিজ্ঞাসা করা হতে পারে । আপনি সততার সাথে বলবেন যে আপনি তার সাথে কাজ করেননি এবং সাথে সাথে সাক্ষাত্কারটি ফাঁকি দিয়েছেন।
এবং জিনিসটি হল যে SQL ভাষাটিকে মূলত SEQUEL বলা হত, যা একটি সিক্যুয়েল (ˈsēkwəl) এর মতো উচ্চারিত হয়, তাই প্রায়শই মার্কিন যুক্তরাষ্ট্রে এবং অন্যান্য ইংরেজি-ভাষার উত্সে আপনি "escuel" নয়, "সিক্যুয়েল" শুনতে পাবেন। SQL লেখা হয়, এবং সিক্যুয়েল পড়া হয়. এখানে যেমন একটি ঐতিহাসিক প্যারাডক্স আছে.