एसक्यूएल में अस्थायी तालिका कैसे बनाएं
अस्थायी तालिकाओं का परिचय
- अस्थायी तालिका एक तालिका है जिसका उपयोग अस्थायी डेटा को संग्रहीत करने के लिए किया जाता है जिसे उसी क्लाइंट सत्र में आगे उपयोग किया जा सकता है।
- डिफ़ॉल्ट रूप से, क्लाइंट सत्र समाप्त होने के बाद अस्थायी तालिका हटा दी जाती है।
- अस्थायी तालिका को "DROP TABLE" कथन का उपयोग करके स्पष्ट रूप से हटाया जा सकता है। यह तालिका केवल इसके निर्माता के लिए उपलब्ध है।
- एक ही सत्र में एक से अधिक अस्थायी तालिका मौजूद हो सकती है लेकिन यदि वे एक ही सत्र में हैं तो उनमें अलग-अलग नाम होने चाहिए। लेकिन अगर अस्थायी टेबल अलग-अलग सत्र में हैं, तो टेबल एक ही नाम के साथ मौजूद हो सकते हैं।
- अस्थायी तालिकाओं का नाम समान डेटाबेस में सामान्य तालिकाओं के नाम के समान हो सकता है। यदि ऐसी स्थिति मौजूद है, तो अस्थायी तालिका के निर्माण के बाद निष्पादित सभी प्रश्न अब सामान्य तालिका के बजाय अस्थायी तालिका को संदर्भित करेंगे। लेकिन एक बार जब इसी नाम से बनाई गई यह अस्थायी तालिका हटा दी जाती है, तो सामान्य तालिका सुलभ हो जाती है और अब प्रश्न सामान्य तालिका के संदर्भ में होंगे।
- अस्थायी तालिका बनाना
वाक्यविन्यास:
अस्थायी तालिका तालिका बनाएं (column_name1 डेटाटाइप (आकार), column_name2 डेटाटाइप (आकार), column_nameN डेटाटाइप (आकार));
उदाहरण:
हमारे पास पहले से ही "कर्मचारी" नाम का एक डेटाबेस है और उस डेटाबेस में "कर्मचारी" नाम की एक तालिका है। अब हम "कर्मचारी" नाम से एक अस्थायी तालिका बनाएंगे।
mysql> USE employeedb; Database changed mysql> CREATE TEMPORARY TABLE employee(Emp_ID INT, Emp_Name VARCHAR(20),Emp_Salary INT); Query OK, 0 rows affected (0.32 sec) mysql> SELECT *FROM employee; Empty set (0.00 sec) mysql> INSERT INTO employee VALUES(1,"Mayuri",45000); Query OK, 1 row affected (0.08 sec) mysql> INSERT INTO employee VALUES(2,"Sakshi",50000); Query OK, 1 row affected (0.04 sec) mysql> SELECT *FROM employee; +--------+----------+------------+ | Emp_ID | Emp_Name | Emp_Salary | +--------+----------+------------+ | 1 | Mayuri | 45000 | | 2 | Sakshi | 50000 | +--------+----------+------------+ 2 rows in set (0.00 sec)
- अब हमने डेटाबेस "कर्मचारी" में "कर्मचारी" नाम से एक नई तालिका बनाई है।
- इसलिए, अस्थायी तालिका के निर्माण के बाद जब हम कर्मचारी तालिका से डेटा पुनर्प्राप्त करने का प्रयास कर रहे थे, तो हमें खाली परिणाम सेट मिला। ऐसा इसलिए होता है क्योंकि अब SELECT क्वेरी में निर्दिष्ट कर्मचारी तालिका नव निर्मित अस्थायी तालिका "कर्मचारी" को संदर्भित कर रही है, न कि मौजूदा तालिका "कर्मचारी"।
- उसके बाद जब हमने कर्मचारी तालिका पर INSERT क्वेरी निष्पादित की, तो यह क्वेरी अस्थायी तालिका "कर्मचारी" पर भी संचालित होती है क्योंकि हम अस्थायी तालिका निर्माण के बाद इस क्वेरी को निष्पादित कर रहे हैं।
- एक अस्थायी तालिका छोड़ें
वाक्यविन्यास:
DROP TABLE TABLENAME;
उदाहरण:
अब हम "कर्मचारी" नामक एक अस्थायी तालिका को हटा देंगे।
mysql> SELECT *FROM employee; +--------+----------+------------+ | Emp_ID | Emp_Name | Emp_Salary | +--------+----------+------------+ | 1 | Mayuri | 45000 | | 2 | Sakshi | 50000 | +--------+----------+------------+ 2 rows in set (0.00 sec) mysql> DROP TABLE employee; Query OK, 0 rows affected (0.08 sec) mysql> SELECT *FROM employee; +--------+----------+------------+ | Emp_ID | Emp_Name | Emp_Salary | +--------+----------+------------+ | 1 | Mayuri | 40000 | | 2 | Mayuri | 40000 | | 3 | Mayuri | 40000 | | 4 | Mayuri | 40000 | | 5 | Mayuri | 40000 | +--------+----------+------------+ 5 rows in set (0.09 sec)
- जब हम सेलेक्ट क्वेरी को निष्पादित करते हैं, तो हमें आउटपुट के रूप में दो रिकॉर्ड मिलते हैं क्योंकि हमने अस्थायी तालिका निर्माण के बाद इस क्वेरी को निष्पादित किया है। तो, यह चयन क्वेरी अस्थायी तालिका पर संचालित होती है।
- उसके बाद हमने ड्रॉप क्वेरी निष्पादित की है। DROP कमांड का उपयोग करके, नव निर्मित कर्मचारी तालिका (अस्थायी तालिका) को गिरा दिया जाएगा।
- फिर से, जब हम सेलेक्ट क्वेरी को निष्पादित करते हैं, तो अब यह हमारी कर्मचारी तालिका (मूल तालिका) पर संचालित होगी, न कि अस्थायी तालिका क्योंकि अस्थायी तालिका पहले ही डेटाबेस से हटा दी गई है।