অন / WHERE এ শর্তাধীন বিবৃতি প্রয়োগ করা
এখানে আমি লজিকাল ক্যোয়ারী প্রসেসিং পদক্ষেপগুলি সম্পর্কে ব্যাখ্যা করেছি।
তথ্যসূত্র: মাইক্রোসফ্ট এসকিউএল সার্ভারের ভিতরে T 2005 টি এসকিউএল অনুসন্ধানী
প্রকাশক: মাইক্রোসফ্ট প্রেস
পাব তারিখ: মার্চ 07, 2006
প্রিন্ট আইএসবিএন-10: 0-7356-2313-9
মুদ্রণ আইএসবিএন -13: 978-0-7356-2313-2
পৃষ্ঠা: 640
মাইক্রোসফ্ট ® এসকিউএল সার্ভারের মধ্যে 2005 টি-এসকিউএল অনুসন্ধান
(8) SELECT (9) DISTINCT (11) TOP <top_specification> <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
এসকিউএল এর প্রথম লক্ষণীয় দিক যা অন্যান্য প্রোগ্রামিং ভাষার চেয়ে পৃথক, কোডটি প্রক্রিয়াভুক্ত করার ক্রম। বেশিরভাগ প্রোগ্রামিং ভাষায়, কোডটি যেভাবে লেখা হয় তাতে প্রক্রিয়াজাত করা হয়। এসকিউএল-তে প্রথম ধারাটি প্রসেস করা হয় হ'ল এফআরওএম ক্লজ, যখন নির্বাচিত ধারাটি যা প্রথম প্রদর্শিত হয় প্রায় শেষ পর্যায়ে প্রক্রিয়াজাত হয়।
প্রতিটি পদক্ষেপ একটি ভার্চুয়াল টেবিল তৈরি করে যা নিম্নলিখিত ধাপে ইনপুট হিসাবে ব্যবহৃত হয়। এই ভার্চুয়াল টেবিলগুলি কলার (ক্লায়েন্ট অ্যাপ্লিকেশন বা বাহ্যিক ক্যোয়ারী) এর জন্য উপলভ্য নয়। শুধুমাত্র চূড়ান্ত পদক্ষেপের দ্বারা উত্পন্ন টেবিলটি কলারে ফিরে আসে। যদি কোনও কোয়েরিতে একটি নির্দিষ্ট ধারাটি নির্দিষ্ট না করা থাকে তবে সংশ্লিষ্ট পদক্ষেপটি সহজেই এড়ানো যায়।
লজিক্যাল ক্যোয়ারী প্রক্রিয়াজাতকরণ পর্যায়ের সংক্ষিপ্ত বিবরণ
পদক্ষেপগুলির বিবরণ আপাতত খুব বেশি অর্থবহ না করে বলে খুব বেশি চিন্তা করবেন না। এগুলি একটি রেফারেন্স হিসাবে সরবরাহ করা হয়। দৃশ্যের উদাহরণের পরে আসা বিভাগগুলি আরও বিশদে পদক্ষেপগুলি আবরণ করবে।
FROM: একটি কার্টেসিয়ান পণ্য (ক্রস জয়েন) এফআরওএম ক্লজে প্রথম দুটি টেবিলের মধ্যে সঞ্চালিত হয় এবং ফলস্বরূপ, ভার্চুয়াল টেবিল ভিটি 1 উত্পন্ন হয়।
চালু: ওএন ফিল্টারটি ভিটি 1 তে প্রয়োগ করা হয়। কেবলমাত্র সারিগুলির জন্য যার <join_condition>
সত্য সত্য VT2 inোকানো হয়।
আউটার (যোগ দিন): যদি একটি আউট জয়েন নির্দিষ্ট করা হয় (কোনও ক্রস যোগ বা একটি অভ্যন্তরীণ যোগদানের বিপরীতে), সংরক্ষিত টেবিল বা সারণীগুলির সারিগুলি যার জন্য কোনও মিল খুঁজে পাওয়া যায় নি, ভিটি 2 থেকে সারিগুলিকে বাইরের সারি হিসাবে যুক্ত করা হয়, VT3। যদি এফআরওএম ক্লজে দুটিরও বেশি সারণী উপস্থিত হয়, সমস্ত সারণী প্রক্রিয়া না হওয়া অবধি সর্বশেষ যোগদানের ফলাফল এবং পরবর্তী সারণীর FROM ধারাটিতে বারবার প্রয়োগ করা হয় are
যেখানে: WHTE ফিল্টারটি ভিটি 3-তে প্রয়োগ করা হয়। কেবলমাত্র সারিগুলির জন্য যার <where_condition>
সত্য সত্য VT4 inোকানো হয়।
গ্রুপ দ্বারা: ভিটি 4 থেকে সারিগুলি গ্রুপের মাধ্যমে গ্রুপে সাজানো হয়েছে গ্রোপ বাই দফায় বর্ণিত কলাম তালিকার ভিত্তিতে। ভিটি 5 জেনারেট হয়।
কিউব | রোলআপ: ভিটি 5 থেকে সারিগুলিতে সুপার গ্রুপগুলি (গোষ্ঠীগুলির গোষ্ঠীগুলি) যুক্ত করা হয়, ভিটি 6 তৈরি করে।
HAVING: HAVING ফিল্টারটি VT6 এ প্রয়োগ করা হয়। কেবলমাত্র সেই গোষ্ঠীগুলির জন্য যাদের <having_condition>
সত্যই VT7 toোকানো হয়।
নির্বাচন করুন: নির্বাচন তালিকাটি ভিটি 8 তৈরি করে প্রক্রিয়াজাত করা হয়।
DISTINCT: সদৃশ সারিগুলি VT8 থেকে সরানো হয়েছে। ভিটি 9 উত্পন্ন হয়।
অর্ডার বাই: ভিটি 9 থেকে সারিগুলি অর্ডার বাই দফায় বর্ণিত কলাম তালিকা অনুসারে বাছাই করা হয়েছে। একটি কার্সার উত্পন্ন হয় (ভিসি 10)।
শীর্ষ: সারিগুলির নির্দিষ্ট নম্বর বা শতাংশ ভিসি 10 এর শুরু থেকে নির্বাচিত হয়। সারণী ভিটি 11 জেনারেট করে কলারে ফিরে আসে।
অতএব, (অন্তর্ভুক্ত হওয়া) ওয়ান যেখানে বিধি প্রয়োগের আগে ডেটা ফিল্টার করবে (ভিটি-র ডেটা গণনা এখানে নিজেই হ্রাস পাবে)। পরবর্তী যোগদানের শর্তগুলি ফিল্টারযুক্ত ডেটা দিয়ে কার্যকর করা হবে যা কর্মক্ষমতা উন্নত করে। এর পরে কেবল WHERE শর্ত ফিল্টার শর্ত প্রয়োগ করবে।
(অন / WHERE এ শর্তাধীন বিবৃতি প্রয়োগ করা কয়েকটি ক্ষেত্রে খুব বেশি পার্থক্য আনবে না depends এটি নির্ভর করে যে আপনি কতগুলি টেবিলগুলিতে যোগদান করেছেন এবং প্রতিটি যোগদানের টেবিলে কতগুলি সারি উপলব্ধ রয়েছে)