समस्या:
आप किसी अन्य तालिका से कॉपी किए गए डेटा के साथ एक नई तालिका बनाना चाहेंगे।
उदाहरण:
हमारे डेटाबेस में product
निम्नलिखित कॉलम में डेटा के साथ:id
(प्राथमिक कुंजी), name
, category
, और price
।
id | <वें शैली="पृष्ठभूमि-रंग:#cecece">नामश्रेणी | कीमत | |
---|---|---|---|
105 | गुलाब | फूल | 5.70 |
108 | डेस्क | फर्नीचर | 120.00 |
115 | ट्यूलिप | फूल | 6.50 |
123 | सूरजमुखी | फूल | 7.50 |
145 | गिटार | संगीत | 300.00 |
155 | आर्किड | फूल | 9.50 |
158 | बांसुरी | संगीत | 156.00 |
डेटाबेस में, चलिए florist
जो निम्नलिखित कॉलम को स्टोर करेगा:id
, name
, और price
. ये कॉलम product
लेकिन केवल फूल . श्रेणी से .
यह ध्यान रखना महत्वपूर्ण है कि हम एक नई तालिका बना रहे हैं। टेबल florist
इस डेटाबेस में मौजूद नहीं है।
चयन संरचना के रूप में तालिका बनाएं
किसी अन्य तालिका से एक नई तालिका बनाने के लिए, आप CREATE TABLE AS SELECT
का उपयोग कर सकते हैं . यह निर्माण मानक एसक्यूएल है। नीचे दिए गए SQL कोड को देखें:
समाधान 1:
CREATE TABLE florist AS SELECT * FROM product WHERE category = ’flower’;
यहाँ क्वेरी का परिणाम है:
id | <वें शैली="पृष्ठभूमि-रंग:#cecece">नामश्रेणी | कीमत | |
---|---|---|---|
105 | गुलाब | फूल | 5.70 |
115 | ट्यूलिप | फूल | 6.50 |
123 | सूरजमुखी | फूल | 7.50 |
155 | आर्किड | फूल | 9.50 |
CREATE TABLE
का उपयोग करना , आप किसी अन्य तालिका से डेटा कॉपी करके एक नई तालिका बना सकते हैं। इस मामले में, हम सबसे पहले CREATE TABLE
. का उपयोग करते हैं नई तालिका के नाम के साथ खंड (हमारे उदाहरण में:florist
), हम अगला AS
. लिखते हैं और SELECT
कॉलम के नाम के साथ क्वेरी (हमारे उदाहरण में:*
), और फिर हम FROM
. लिखते हैं उसके बाद उस तालिका का नाम आता है जिससे डेटा एकत्र किया जाता है (हमारे उदाहरण में:product
) फिर, आप किसी भी SQL खंड का उपयोग कर सकते हैं:WHERE
, GROUP BY
, HAVING
, आदि.
नई तालिका florist
इसमें product
तालिका (id
, name
, category
, और price
) WHERE क्लॉज का उपयोग करके पंक्तियों की संख्या सीमित है, केवल फूल श्रेणी से डेटा पुनर्प्राप्त करने के लिए रिकॉर्ड्स को फ़िल्टर करना ।
संरचना में चयन करें
एक अन्य समाधान SELECT INTO
. का उपयोग करना है . यह सिंटैक्स गैर-मानक SQL है, लेकिन यह कई लोकप्रिय डेटाबेस द्वारा समर्थित है।
समाधान 2:
SELECT id, name, price INTO florist FROM product WHERE category=’flower’;
ये रहा परिणाम:
id | <वें शैली="पृष्ठभूमि-रंग:#cecece">नामकीमत | |
---|---|---|
105 | गुलाब | 5.70 |
115 | ट्यूलिप | 6.50 |
123 | सूरजमुखी | 7.50 |
155 | आर्किड | 9.50 |
चर्चा:
यदि आप किसी अन्य तालिका से संरचना और डेटा के आधार पर एक नई तालिका बनाना चाहते हैं, तो आप SELECT INTO
का उपयोग कर सकते हैं खंड। सबसे पहले, एक SELECT
लिखें खंड के बाद स्तंभों की सूची (हमारे उदाहरण में:id
, name
, और price
) मौजूदा तालिका से (हमारे उदाहरण में:product
)।
ध्यान दें कि तालिका product
. हमने केवल उन्हीं स्तंभों का चयन किया है जिनमें हमारी रुचि है।
इसके बाद, कीवर्ड का उपयोग करें INTO
उस नई तालिका के नाम के साथ जिसे आप बनाना चाहते हैं (हमारे उदाहरण में:florist
) फिर, मौजूदा तालिका के नाम से FROM कीवर्ड लिखें (हमारे उदाहरण में:product
)।
यदि आप तालिका से फ़िल्टर की गई पंक्तियों का चयन करना चाहते हैं, तो WHERE
. का उपयोग करें खंड। WHERE
के बाद , डेटा फ़िल्टर करने के लिए शर्तें लिखें (हमारे उदाहरण में:WHERE category=’flower’
)।
इस उदाहरण में, हम एक नई तालिका बना रहे हैं florist
जिसमें टेबल से कम कॉलम हैं product
(अंतर कॉलम श्रेणी है)। इस नई तालिका में भी कम पंक्तियाँ हैं - केवल फूल . श्रेणी वाली पंक्तियाँ ।
बेशक, यदि आप अन्य तालिका के सभी स्तंभों का उपयोग करके एक तालिका बनाना चाहते हैं, तो आप *
का उपयोग कर सकते हैं SELECT
. के बाद कॉलम को सूचीबद्ध करने के बजाय . नीचे दिया गया उदाहरण देखें:
समाधान 2:
SELECT * INTO florist FROM product WHERE category=’flower’;
ये रहा परिणाम:
id | <वें शैली="पृष्ठभूमि-रंग:#cecece">नामश्रेणी | कीमत | |
---|---|---|---|
105 | गुलाब | फूल | 5.70 |
115 | ट्यूलिप | फूल | 6.50 |
123 | सूरजमुखी | फूल | 7.50 |
155 | आर्किड | फूल | 9.50 |
SELECT INTO
का उपयोग करना डेटाबेस में मौजूदा तालिका के आधार पर एक नई तालिका बनाने का एक आसान तरीका है।