MySQL ভিউ তৈরি করা হয় CREATE VIEW স্টেটমেন্ট দিয়ে। ভিউ তৈরি করা যায় একক টেবিল, একাধিক টেবিল, অথবা অন্য একটি ভিউ থেকে। ভিউ তৈরি করতে ইউজারের पास উপযুক্ত সিস্টেম প্রিবিলেজ থাকতে হয়।
সিনট্যাক্স
CREATE [OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
প্রধান ক্লজসমূহ:
- CREATE VIEW — নতুন ভিউ তৈরি করে।
- view_name — ভিউর নাম। বাই ডিফল্ট বর্তমান ডেটাবেসে তৈরি হয়।
- select_statement — ভিউর ডেফিনিশন প্রদান করে। বেস টেবিল বা অন্যান্য ভিউ থেকে ডেটা সিলেক্ট করতে পারে।
- column_list — অপশনাল। ভিউর কলামের নামের লিস্ট। নামগুলো ইউনিক হতে হবে এবং SELECT স্টেটমেন্টের কলাম সংখ্যার সমান হতে হবে।
- OR REPLACE — অপশনাল। বিদ্যমান ভিউ রিপ্লেস করে নতুন তৈরি করে।
- ALGORITHM — অপশনাল। MySQL ভিউ কীভাবে প্রসেস করবে তা নির্ধারণ করে (MERGE, TEMPTABLE, UNDEFINED)। ডিফল্ট: UNDEFINED।
- DEFINER / SQL SECURITY — ভিউ ইনভোকেশন টাইমে অ্যাক্সেস প্রিভিলেজ চেক করার সিকিউরিটি কনটেক্সট নির্দেশ করে।
- WITH CHECK OPTION — আপডেটেবল ভিউতে INSERT/UPDATE রেসট্রিক্ট করে যাতে WHERE ক্লজের শর্ত পূরণ হয়। LOCAL বা CASCADED স্কোপ নির্ধারণ করে।
উদাহরণ
Customers টেবিলে First_View নামে ভিউ তৈরি:
mysql> SELECT * FROM Customers;
+-------------+----------+
| Customer_Id | Name |
+-------------+----------+
| 1 | Rahul |
| 2 | Yashpal |
| 3 | Gaurav |
| 4 | Virender |
+-------------+----------+
mysql> CREATE VIEW first_view AS SELECT * FROM Customers;
Query OK, 0 rows affected (0.36 sec)
mysql> SELECT * FROM first_view;
+-------------+----------+
| Customer_Id | Name |
+-------------+----------+
| 1 | Rahul |
| 2 | Yashpal |
| 3 | Gaurav |
| 4 | Virender |
+-------------+----------+