কম্পিউটার

কিভাবে আমরা একাধিক টেবিল থেকে ডেটা ব্যবহার করে একটি MySQL ভিউ তৈরি করতে পারি?


MySQL UNION অপারেটর দুটি বা ততোধিক ফলাফল সেট একত্রিত করতে পারে তাই আমরা একাধিক টেবিল থেকে ডেটা সহ একটি ভিউ তৈরি করতে UNION অপারেটর ব্যবহার করতে পারি। এই ধারণাটি বোঝার জন্য আমরা বেস টেবিল ব্যবহার করছি 'Student_info' এবং 'Student_detail'-এ নিম্নলিখিত ডেটা রয়েছে −

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| 130  | Ram     | Jhansi     | Computers  |
| 132  | Shyam   | Chandigarh | Economics  |
| 133  | Mohan   | Delhi      | Computers  |
+------+---------+------------+------------+
6 rows in set (0.00 sec)

mysql> Select * from Student_detail;
+-----------+-------------+------------+
| Studentid | StudentName | address    |
+-----------+-------------+------------+
|       100 | Gaurav      | Delhi      |
|       101 | Raman       | Shimla     |
|       103 | Rahul       | Jaipur     |
|       104 | Ram         | Chandigarh |
|       105 | Mohan       | Chandigarh |
+-----------+-------------+------------+
5 rows in set (0.00 sec)

উদাহরণ

নিচের কোয়েরিটি উপরে উল্লিখিত উভয় টেবিলের ডেটা ব্যবহার করে একটি দৃশ্য তৈরি করবে -

mysql> Create or Replace View Info AS Select StudentName from Student_detail UNION Select Name From Student_info;
Query OK, 0 rows affected (0.10 sec)

mysql> select * from info;
+-------------+
| StudentName |
+-------------+
| Gaurav      |
| Raman       |
| Rahul       |
| Ram         |  
| Mohan       |
| YashPal     |
| Shyam       |
+-------------+
7 rows in set (0.00 sec)

উপরের ফলাফল সেটে উভয় কলামের মানের সমন্বয় রয়েছে। যদি একটি মান পুনরাবৃত্তি হয় তবে এটি সদৃশ মানগুলিকে সরিয়ে দেয়৷

আমরা সমস্ত মান সঞ্চয় করতে পারি, নিম্নোক্ত ক্যোয়ারীতে UNION ALL ব্যবহার করে একটি নকলও করতে পারি -

mysql> Create or Replace View Info AS Select student name from Student_detail UNION ALL Select Name From Student_info;
Query OK, 0 rows affected (0.16 sec)

mysql> select * from info;
+-------------+
| StudentName |
+-------------+
| Gaurav      |
| Raman       |
| Rahul       |
| Ram         |
| Mohan       |
| YashPal     |
| Gaurav      |
| Raman       |
| Ram         |
| Shyam       |
| Mohan       |
+-------------+
11 rows in set (0.00 sec)

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

  2. MySQL এ একাধিক টেবিল থেকে (*) সারি গণনা করবেন?

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

  4. কিভাবে আপনি পাইথনে MySQL ব্যবহার করে কিছু মানদণ্ডের উপর ভিত্তি করে একটি টেবিল থেকে ডেটা নির্বাচন করতে পারেন?