কম্পিউটার

আমরা কিভাবে MySQL ভিউ তৈরি করতে পারি?


CREATE VIEW স্টেটমেন্ট ব্যবহার করে MySQL ভিউ তৈরি করা হয়। একটি একক টেবিল, একাধিক টেবিল বা অন্য ভিউ থেকে ভিউ তৈরি করা যেতে পারে। আমরা জানি যে একটি ভিউ তৈরি করতে, নির্দিষ্ট বাস্তবায়ন অনুযায়ী ব্যবহারকারীর অবশ্যই উপযুক্ত সিস্টেম সুবিধা থাকতে হবে।

মৌলিকভিউ তৈরি করুন সিনট্যাক্স নিম্নরূপ -

সিনট্যাক্স

<প্রে> তৈরি করুন [বা প্রতিস্থাপন করুন] [অ্যালগোরিদম ={অনির্ধারিত | মার্জ | টেম্পটেবল}] [ডিফাইনার ={ ব্যবহারকারী | CURRENT_USER }] [SQL নিরাপত্তা { সংজ্ঞায়িতকারী | আমন্ত্রণকারী }] ভিউ_নাম [(কলাম_তালিকা)] নির্বাচন_বিবৃতি হিসাবে [কাসকেডেড | স্থানীয়] বিকল্প চেক করুন

এখানে,

  • ভিউ তৈরি করুন - এই বিবৃতিটি একটি নতুন দৃশ্য তৈরি করে৷

  • View_name − view_name হল ভিউ এর নাম। একটি ভিউ সবসময় একটি ডাটাবেসের অন্তর্গত। ডিফল্টরূপে, বর্তমানে ব্যবহৃত ডাটাবেসে একটি নতুন ভিউ তৈরি করা হয়।

  • নির্বাচন_বিবৃতি − Select_statement হল একটি SELECT স্টেটমেন্ট এবং ভিউ এর সংজ্ঞা প্রদান করে। Select_statement বেস টেবিল বা অন্যান্য ভিউ থেকে ডেটা নির্বাচন করতে পারে।

  • কলাম_তালিকা - column_list অংশটি ঐচ্ছিক। এটি ভিউয়ের নামের ঠিক পরে ভিউয়ের কলামগুলির নামের একটি তালিকা প্রদান করে যেখানে নামগুলি অবশ্যই অনন্য হতে হবে। কলাম_তালিকায় নামের সংখ্যা SELECT বিবৃতি দ্বারা পুনরুদ্ধার করা কলামের সংখ্যার সমান হতে হবে। আমরা যদি আমাদের ভিউ কলামের একটি ভিন্ন নাম দিতে চাই, তাহলে আমরা নির্বাচন তালিকায় একটি [AS name] ধারা যোগ করে তা করতে পারি।

  • বা প্রতিস্থাপন করুন - যদি ঐচ্ছিক বা REPLACE ক্লজটি CREATE VIEW স্টেটমেন্টের সাথে যোগ করা হয়, CREATE VIEW স্টেটমেন্টটি একটি বিদ্যমান ভিউকে প্রতিস্থাপন করে এবং একটি নতুন তৈরি করে। যদি ভিউটি বিদ্যমান না থাকে, তাহলে ভিউ তৈরি করুন এবং ভিউ তৈরি করুন বা প্রতিস্থাপন করুন৷

  • অ্যালগোরিদম - ALGORITHM ধারাটি ঐচ্ছিক, এটি MySQL কিভাবে ভিউ প্রক্রিয়া করে তা প্রভাবিত করে। ALGORITHM তিনটি মান নেয়:মার্জ, টেম্পটেবল বা অনির্ধারিত। ডিফল্ট অ্যালগরিদম অনির্ধারিত৷

  • [ডিফাইনার ={ ব্যবহারকারী | CURRENT_USER }] [SQL নিরাপত্তা { সংজ্ঞায়িতকারী | INVOKER ] - ডিফাইনার এবং এসকিউএল সিকিউরিটি ক্লজগুলি ভিউ ইনভোকেশনের সময় অ্যাক্সেসের সুবিধাগুলি পরীক্ষা করার সময় ব্যবহার করা সুরক্ষা প্রসঙ্গ নির্দিষ্ট করে৷ আপনি যদি DEFINER ক্লজ নির্দিষ্ট করেন, তাহলে নিম্নলিখিত নিয়মগুলি আইনি DEFINER ব্যবহারকারীর মান নির্ধারণ করে -

    • যদি আপনার কাছে SUPER বিশেষাধিকার না থাকে, তবে একমাত্র আইনি ব্যবহারকারীর মান হল আপনার নিজের অ্যাকাউন্ট এবং আপনি অন্য কোনো অ্যাকাউন্টে ডিফাইনার সেট করতে পারবেন না৷

    • আপনার যদি SUPER বিশেষাধিকার থাকে, তাহলে আপনি যেকোন সিনট্যাক্টিলি আইনি অ্যাকাউন্টের নাম উল্লেখ করতে পারেন৷

SQL SECURITY DEFINER বৈশিষ্ট্যের সাথে সংজ্ঞায়িত একটি সংরক্ষিত রুটিনের মধ্যে, CURRENT_USER রুটিনের DEFINER মান প্রদান করে৷ এটি এই ধরনের একটি রুটিনের মধ্যে সংজ্ঞায়িত একটি দৃশ্যকেও প্রভাবিত করে, যদি দৃশ্যের সংজ্ঞায় CURRENT_USER-এর একটি DEFINER মান থাকে।

  • 8. [সহ [ক্যাসকেড | স্থানীয়] বিকল্প চেক করুন] - WITH CHECK OPTION ক্লজটি সারিতে সন্নিবেশ বা আপডেট প্রতিরোধ করার জন্য একটি আপডেটযোগ্য দৃশ্যের জন্য দেওয়া যেতে পারে যেগুলির জন্য নির্বাচন_বিবৃতিতে WHERE ধারাটি সত্য। একটি আপডেটযোগ্য দৃশ্যের জন্য চেক বিকল্পের ধারায়, স্থানীয় এবং ক্যাসকেড কীওয়ার্ডগুলি চেক পরীক্ষার সুযোগ নির্ধারণ করে যখন ভিউটিকে অন্য ভিউয়ের পরিপ্রেক্ষিতে সংজ্ঞায়িত করা হয়। স্থানীয় কীওয়ার্ডটি চেক বিকল্পটিকে শুধুমাত্র সংজ্ঞায়িত দৃশ্যের মধ্যে সীমাবদ্ধ করে। CASCADED এর ফলে অন্তর্নিহিত ভিউয়ের চেকও মূল্যায়ন করা হয়। যখন কোনো কীওয়ার্ড দেওয়া হয় না, তখন ডিফল্টটি ক্যাসকেড হয়৷

উদাহরণ

এই উদাহরণে, আমরা 'গ্রাহকদের' টেবিলে ফার্স্ট_ভিউ নামে একটি ভিউ তৈরি করছি যার ডেটা নিম্নরূপ রয়েছে −

mysql> গ্রাহকদের থেকে * নির্বাচন করুন;+-------------+----------+| গ্রাহক_আইডি | নাম |+------------+---------+| 1 | রাহুল || 2 | যশপাল || 3 | গৌরব || 4 | বীরেন্ডার |+------------+------------+4 সারি সেটে (1.30 সেকেন্ড)mysql> তৈরি করুন প্রথম_দর্শন হিসাবে বেছে নিন * গ্রাহকদের থেকে; প্রশ্ন ঠিক আছে, 0 সারি প্রভাবিত (0.36 সেকেন্ড)

এখন, যদি আমরা ভিউয়ের নাম ব্যবহার করে ক্যোয়ারী চালাই তাহলে আমরা যে টেবিলে এটি তৈরি করা হয়েছে সেখান থেকে বিস্তারিত জানতে পারব।

mysql> প্রথম_দর্শন থেকে * নির্বাচন করুন;+-------------+----------+| গ্রাহক_আইডি | নাম |+------------+---------+| 1 | রাহুল || 2 | যশপাল || 3 | গৌরব || 4 | বীরেন্দর |+------------+---------+4 সেটে সারি (0.13 সেকেন্ড)

  1. কিভাবে MySQL এ একটি খালি ভিউ তৈরি করবেন?

  2. কিভাবে MySQL এ ভিউ থেকে একটি টেবিল তৈরি করবেন?

  3. কিভাবে আমি MySQL এ ক্যাসকেড দেখতে পারি?

  4. কিভাবে একটি MySQL ভিউ তৈরি করবেন?