समस्या:
आप SQL क्वेरी द्वारा परिभाषित डेटा के साथ डेटाबेस में एक नई तालिका बनाना चाहेंगे।
उदाहरण:
हम टेबल बनाना चाहेंगे gamer
SQL क्वेरी के आधार पर। इस क्वेरी में, हम championship
नीचे प्रस्तुत किया गया।
id | गेमर | स्कोर | चैम्पियनशिप_डेट |
---|---|---|---|
1 | एलिस | 14 | 2020-08-10 |
2 | सुपरवाइजर | 10 | 2020-09-28 |
3 | हैप्पीमैन | 0 | 2020-08-10 |
4 | लुकास | 6 | 2020-08-10 |
5 | ओली | 12 | 2020-08-10 |
6 | बड़ा गेमर | 7 | 2020-09-12 |
डेटाबेस में, चलिए gamer
जो तालिका में परिभाषित सभी स्तंभों में डेटा संग्रहीत करेगा championship
(id
, gamer
, score
, और championship_date
)
समाधान 1:
CREATE TABLE gamer AS SELECT * FROM championship;
चर्चा:
यदि आप एक नई तालिका बनाना चाहते हैं, तो पहला कदम CREATE TABLE
का उपयोग करना है खंड और नई तालिका का नाम (हमारे उदाहरण में:gamer
) फिर, AS
. का उपयोग करें कीवर्ड और एक SELECT
प्रदान करें कथन जो नई तालिका के लिए डेटा का चयन करता है। हमारे उदाहरण में, हमने championship
तारांकन (*) का उपयोग करके। परिणाम सेट तालिका में सभी रिकॉर्ड प्रदर्शित करता है championship
।
हालांकि, यदि आप रिकॉर्ड्स के केवल एक सबसेट के साथ एक तालिका बनाना चाहते हैं, तो आप नीचे दिए गए उदाहरण की तरह चयनित क्वेरी निर्दिष्ट कर सकते हैं।
समाधान 2:
CREATE TABLE gamer AS SELECT gamer, score, championship_date FROM championship WHERE championship_date <= 2020-08-10;
यहाँ परिणाम सेट है:
गेमर | स्कोर | चैम्पियनशिप_डेट |
---|---|---|
एलिस | 14 | 2020-08-10 |
हैप्पीमैन | 0 | 2020-08-10 |
लुकास | 6 | 2020-08-10 |
ओली | 12 | 2020-08-10 |
SELECT
query केवल championship_date
. के साथ रिकॉर्ड्स को पुनः प्राप्त करता है 2020-08-10 के बराबर या उससे अधिक की तारीख (WHERE championship_date <= 2020-08-10
) नई तालिका पिछले उदाहरण की तुलना में कम कॉलम संग्रहीत करती है (SELECT gamer, score, championship_date
) कॉलम के बिना id
।
इस समस्या का एक समान समाधान SELECT INTO
. का उपयोग करना है एक नई तालिका बनाने और किसी अन्य तालिका से डेटा कॉपी करने के लिए खंड। कोड पर एक नज़र डालें:
समाधान 3:
SELECT gamer, score, championship_date INTO gamer FROM championship WHERE championship_date <= 2020-08-10;
परिणामी तालिका समान है। ध्यान दें कि यह निर्माण SQL मानक में मौजूद नहीं है। इस SQL कमांड में, हम सबसे पहले SELECT
write लिखते हैं , फिर कॉलम की सूची, कीवर्ड के आगे INTO
, और अंत में उस नई तालिका का नाम जिसे हम बनाना चाहते हैं। इसके बाद, आप WHERE
जोड़ सकते हैं और अन्य SQL खंड जैसे GROUP BY
या HAVING
नई तालिका के लिए रिकॉर्ड फ़िल्टर करने के लिए।