बाद की सभी क्वेरी के लिए डिफ़ॉल्ट डेटाबेस सेट करने का तरीका यहां बताया गया है।
MySQL आपको किसी भी बाद के SQL कथन के संदर्भ के रूप में उपयोग करने के लिए एक डिफ़ॉल्ट डेटाबेस सेट करने की अनुमति देता है। सर्वर पर कई डेटाबेस हो सकते हैं और MySQL को यह जानने की जरूरत है कि आप किस डेटाबेस के खिलाफ कोई SQL स्टेटमेंट चलाना चाहते हैं। डिफ़ॉल्ट डेटाबेस सेट करना एक अच्छी शुरुआत है क्योंकि यह आपको क्वेरी में डेटाबेस निर्दिष्ट करने से बचाता है।
आप जितनी बार चाहें डिफ़ॉल्ट डीबी बदल सकते हैं। यह जरूरी नहीं कि "सेट एंड फॉरगेट" चीज हो। आप कितने डेटाबेस के साथ काम कर रहे हैं, इस पर निर्भर करते हुए, आप डिफ़ॉल्ट डीबी को बार-बार स्विच कर सकते हैं।
आप डिफ़ॉल्ट डेटाबेस को प्रोग्रामेटिक रूप से या ग्राफिकल इंटरफ़ेस के माध्यम से सेट कर सकते हैं।
MySQL वर्कबेंच GUI का उपयोग करना
SCHEMAS . में डेटाबेस नाम पर राइट-क्लिक करें टैब (बाएं मेनू में):
डिफ़ॉल्ट डेटाबेस अब बोल्ड . में सूचीबद्ध होगा टाइपफेस:
प्रोग्रामेटिक रूप से
USE
जब आप बाद के SQL स्टेटमेंट चलाते हैं, तो स्टेटमेंट MySQL को किसी विशेष डेटाबेस को डिफ़ॉल्ट के रूप में उपयोग करने के लिए कहता है।
USE FruitShop;
अब कोई भी बाद की क्वेरी FruitShop . के विरुद्ध चलाई जाएगी डीबी. इस तरह:
USE FruitShop; SELECT * FROM Fruit;
CREATE DATABASE
स्क्रिप्ट
USE
स्टेटमेंट वास्तव में हमारी स्क्रिप्ट में काम आ सकता है जो डेटाबेस बनाते हैं। एक बार जब हम अपना डेटाबेस बना लेते हैं, तो हम इसे USE
. निर्दिष्ट करके डिफ़ॉल्ट डेटाबेस के रूप में सेट कर सकते हैं इसके खिलाफ बयान।
ऐसा करने से यह सुनिश्चित होगा कि कोई भी अनुवर्ती SQL कथन हमारे नए बनाए गए डेटाबेस को वर्तमान DB के रूप में उपयोग करेगा (जब तक कि स्क्रिप्ट में अन्यथा निर्दिष्ट न हो)। यह महत्वपूर्ण है क्योंकि यह MySQL को बताता है कि किस डीबी के खिलाफ टेबल बनाना है:
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop; USE FruitShop; CREATE TABLE table_1 (...); CREATE TABLE table_2 (...);
डिफ़ॉल्ट डेटाबेस स्विच करना
आपकी स्क्रिप्ट में डिफ़ॉल्ट डेटाबेस को कई बार स्विच करने से रोकने के लिए कुछ भी नहीं है। तो अगर आपके पास दो डेटाबेस होते, तो आप कुछ ऐसा कर सकते थे:
USE FruitShop; SELECT * FROM Fruit; USE VegeShop; SELECT * FROM Vegetables;
उपरोक्त क्वेरी
फल
. से सभी रिकॉर्ड का चयन करती है
फलों की दुकान
. में तालिका
सब्जियों
. से डेटाबेस और सभी रिकॉर्ड
VegeShop
. में तालिका डेटाबेस। बिना USE
. के कथन, MySQL को यह नहीं पता होगा कि प्रत्येक कथन के लिए कौन सा डेटाबेस क्वेरी करना है।
बेशक, यह एक सरलीकृत उदाहरण है। अक्सर आप अपने आप को अपने डेटाबेस के विरुद्ध अधिक जटिल प्रश्न करते हुए पाएंगे और यह तकनीक वास्तव में मदद कर सकती है।
विवरण में DB नाम को योग्य बनाना
भले ही आप एक डिफ़ॉल्ट डेटाबेस सेट करें, आप डेटाबेस को भीतर . भी निर्दिष्ट कर सकते हैं कथन।
ऐसा करने के लिए, निम्नलिखित सिंटैक्स का उपयोग करें:database.table.column
यहां एक उदाहरण दिया गया है:
SELECT FruitName, VegeName FROM FruitShop.Fruit, VegeShop.Vegetables WHERE FruitShop.Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;
डिफ़ॉल्ट DB को ओवरराइड करें — एक क्वेरी के भीतर डेटाबेस निर्दिष्ट करें
एक डिफ़ॉल्ट डेटाबेस सेट करना आपको अन्य डेटाबेस से पूछताछ करने से नहीं रोकता है। डिफ़ॉल्ट डेटाबेस सेट करने के बाद भी, आप अन्य डेटाबेस को डिफ़ॉल्ट के रूप में सेट किए बिना अभी भी क्वेरी कर सकते हैं। आप अभी भी निर्दिष्ट कर सकते हैं कि आपके प्रश्नों में किस डेटाबेस का उपयोग करना है। वास्तव में, आप इस पद्धति का उपयोग करके एक ही क्वेरी में एकाधिक डेटाबेस का उपयोग कर सकते हैं।
तो उपरोक्त उदाहरण को इस प्रकार भी लिखा जा सकता है:
USE FruitShop; SELECT FruitName, VegeName FROM Fruit, VegeShop.Vegetables WHERE Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;