MySQL
डेटाबेस बनाना
खोज…
वाक्य - विन्यास
- बनाएं {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] /// डेटाबेस बनाने के लिए
- DROP {DATABASE | SCHEMA} [IF EXISTS] db_name /// डेटाबेस को छोड़ने के लिए
पैरामीटर
पैरामीटर | विवरण |
---|---|
DATABASE बनाएं | एक डेटाबेस दिया गया नाम के साथ |
सृजन की योजना | यह CREATE DATABASE पर्याय है |
यदि एक्जिट नहीं है | निष्पादन त्रुटि से बचने के लिए उपयोग किया जाता है, यदि निर्दिष्ट डेटाबेस पहले से मौजूद है |
create_specification | create_specification विकल्प डेटाबेस विशेषताओं जैसे कि CHARACTER SET और COLLATE (डेटाबेस कोलेशन) निर्दिष्ट करते हैं |
डेटाबेस, उपयोगकर्ता और अनुदान बनाएँ
एक DATABASE बनाएं। ध्यान दें कि छोटा शब्द SCHEMA एक पर्याय के रूप में इस्तेमाल किया जा सकता है।
CREATE DATABASE Baseball; -- creates a database named Baseball
यदि डेटाबेस पहले से मौजूद है, तो त्रुटि 1007 वापस आ गई है। इस त्रुटि को प्राप्त करने के लिए, प्रयास करें:
CREATE DATABASE IF NOT EXISTS Baseball;
इसी तरह,
DROP DATABASE IF EXISTS Baseball; -- Drops a database if it exists, avoids Error 1008
DROP DATABASE xyz; -- If xyz does not exist, ERROR 1008 will occur
उपरोक्त त्रुटि संभावनाओं के कारण, DDL स्टेटमेंट्स को अक्सर IF EXISTS
साथ उपयोग किया जाता है।
कोई डिफ़ॉल्ट CHARACTER SET और कॉलेशन के साथ एक डेटाबेस बना सकता है। उदाहरण के लिए:
CREATE DATABASE Baseball CHARACTER SET utf8 COLLATE utf8_general_ci;
SHOW CREATE DATABASE Baseball;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| Baseball | CREATE DATABASE `Baseball` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------------+
अपने वर्तमान डेटाबेस देखें:
SHOW DATABASES;
+---------------------+
| Database |
+---------------------+
| information_schema |
| ajax_stuff |
| Baseball |
+---------------------+
वर्तमान में सक्रिय डेटाबेस सेट करें, और कुछ जानकारी देखें:
USE Baseball; -- set it as the current database
SELECT @@character_set_database as cset,@@collation_database as col;
+------+-----------------+
| cset | col |
+------+-----------------+
| utf8 | utf8_general_ci |
+------+-----------------+
ऊपर डेटाबेस के लिए डिफ़ॉल्ट CHARACTER SET और Collation दिखाता है।
एक उपयोगकर्ता बनाएँ:
CREATE USER 'John123'@'%' IDENTIFIED BY 'OpenSesame';
उपर्युक्त एक उपयोगकर्ता John123 बनाता है, जो %
वाइल्डकार्ड के कारण किसी भी होस्टनाम से जुड़ने में सक्षम है। उपयोगकर्ता के लिए पासवर्ड 'OpenSesame' पर सेट किया गया है जो हैशेड है।
और दूसरा बनाएँ:
CREATE USER 'John456'@'%' IDENTIFIED BY 'somePassword';
दिखाएँ कि उपयोगकर्ता विशेष mysql
डेटाबेस की जांच करके बनाए गए हैं:
SELECT user,host,password from mysql.user where user in ('John123','John456');
+---------+------+-------------------------------------------+
| user | host | password |
+---------+------+-------------------------------------------+
| John123 | % | *E6531C342ED87 .................... |
| John456 | % | *B04E11FAAAE9A .................... |
+---------+------+-------------------------------------------+
ध्यान दें कि इस बिंदु पर, उपयोगकर्ता बनाए गए हैं, लेकिन बिना किसी अनुमति के बेसबॉल डेटाबेस का उपयोग करने के लिए।
उपयोगकर्ताओं और डेटाबेस के लिए अनुमतियों के साथ काम करें। उपयोगकर्ता को John123 को बेसबॉल डेटाबेस पर पूर्ण विशेषाधिकार प्राप्त करने के अधिकार प्रदान करते हैं, और अन्य उपयोगकर्ता के लिए सिर्फ सही अधिकार चुनें:
GRANT ALL ON Baseball.* TO 'John123'@'%';
GRANT SELECT ON Baseball.* TO 'John456'@'%';
उपरोक्त सत्यापित करें:
SHOW GRANTS FOR 'John123'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for John123@% |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'John123'@'%' IDENTIFIED BY PASSWORD '*E6531C342ED87 .................... |
| GRANT ALL PRIVILEGES ON `baseball`.* TO 'John123'@'%' |
+--------------------------------------------------------------------------------------------------------+
SHOW GRANTS FOR 'John456'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for John456@% |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'John456'@'%' IDENTIFIED BY PASSWORD '*B04E11FAAAE9A .................... |
| GRANT SELECT ON `baseball`.* TO 'John456'@'%' |
+--------------------------------------------------------------------------------------------------------+
ध्यान दें कि आप जिस GRANT USAGE
करते हैं, वह हमेशा यह देखता है कि उपयोगकर्ता लॉगिन कर सकता है। वह सब जो इसका मतलब है।
MyDatabase
आपको अपना स्वयं का डेटाबेस बनाना होगा , और किसी भी मौजूदा डेटाबेस के लिए लिखने का उपयोग नहीं करना चाहिए । यह पहली बार कनेक्ट होने के बाद बहुत पहले कामों में से एक होने की संभावना है।
CREATE DATABASE my_db;
USE my_db;
CREATE TABLE some_table;
INSERT INTO some_table ...;
आप डेटाबेस नाम: my_db.some_table
साथ अर्हता प्राप्त करके अपनी तालिका को संदर्भित कर सकते हैं।
सिस्टम डेटाबेस
MySQL के उपयोग के लिए निम्नलिखित डेटाबेस मौजूद हैं। आप पढ़ सकते हैं ( SELECT
) उन्हें है, लेकिन आप नहीं लिख (चाहिए INSERT
/ UPDATE
/ DELETE
) उन में टेबल। (कुछ अपवाद हैं।)
-
mysql
-GRANT
जानकारी और कुछ अन्य चीजों के लिए भंडार। -
information_schema
- यहाँ की सारणियाँ इस मायने में 'आभासी' हैं कि वे वास्तव में स्मृति संरचनाओं द्वारा प्रकट होती हैं। उनकी सामग्री में सभी तालिकाओं के लिए स्कीमा शामिल है। -
performance_schema
- ?? [कृपया स्वीकार करें, फिर संपादित करें] - अन्य?? (मारियाडीबी, गलेरा, तोकुबीडी, आदि के लिए)
डेटाबेस बनाना और चयन करना
यदि व्यवस्थापक आपकी अनुमतियाँ सेट करते समय आपके लिए अपना डेटाबेस बनाता है, तो आप इसका उपयोग शुरू कर सकते हैं। अन्यथा, आपको इसे स्वयं बनाने की आवश्यकता है:
mysql> CREATE DATABASE menagerie;
यूनिक्स के तहत, डेटाबेस के नाम केस सेंसिटिव होते हैं (एसक्यूएल कीवर्ड्स के विपरीत), इसलिए आपको हमेशा अपने डेटाबेस को मेनेजरी के रूप में देखना चाहिए, न कि मेनाजेरी, मेंजीरी, या किसी अन्य वेरिएंट के रूप में। यह तालिका के नामों के लिए भी सही है। (विंडोज के तहत, यह प्रतिबंध लागू नहीं होता है, हालांकि आपको दिए गए क्वेरी के दौरान समान लेटरकेस का उपयोग करके डेटाबेस और तालिकाओं का उल्लेख करना होगा। हालांकि, कई कारणों से, अनुशंसित सर्वोत्तम अभ्यास हमेशा उसी लेटरकेस का उपयोग करने के लिए होता है, जिसका उपयोग तब किया गया था। डेटाबेस बनाया गया था।)
डेटाबेस बनाना उपयोग के लिए इसका चयन नहीं करता है; आपको यह स्पष्ट रूप से करना चाहिए। वर्तमान डेटाबेस को मेनेजर बनाने के लिए, इस कथन का उपयोग करें:
mysql> USE menagerie
Database changed
आपके डेटाबेस को केवल एक बार बनाया जाना चाहिए, लेकिन हर बार जब आप mysql सत्र शुरू करते हैं, तो आपको इसका उपयोग करना होगा। उदाहरण के रूप में दिखाए गए USE स्टेटमेंट जारी करके आप ऐसा कर सकते हैं। वैकल्पिक रूप से, आप mysql आह्वान करने पर कमांड लाइन पर डेटाबेस का चयन कर सकते हैं। किसी भी कनेक्शन पैरामीटर के बाद इसका नाम निर्दिष्ट करें जिसे आपको प्रदान करने की आवश्यकता हो सकती है। उदाहरण के लिए:
shell> mysql -h host -u user -p menagerie
Enter password: ********