MySQLMySQL के साथ शुरुआत करना


टिप्पणियों

MySQL लोगो

MySQL एक ओपन-सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जो Oracle Corporation द्वारा विकसित और समर्थित है।

MySQL को बड़ी संख्या में प्लेटफ़ॉर्म पर समर्थित किया गया है, जिसमें Linux वेरिएंट, OS X और Windows शामिल हैं। इसमें C, C ++, Java, Lua .Net, Perl, PHP, Python, और Ruby सहित बड़ी संख्या में भाषाओं के लिए API हैं

MariaDB MySQL का एक कांटा है जिसमें थोड़ा अलग फीचर सेट है । यह ज्यादातर अनुप्रयोगों के लिए MySQL के साथ पूरी तरह से संगत है।

संस्करण

संस्करण रिलीज़ की तारीख
1.0 1995/05/23
3.19 1996/12/01
3.20 1997/01/01
3.21 1998/10/01
3.22 1999-10-01
3.23 2001/01/22
4.0 2003/03/01
4.1 2004/10/01
5.0 2005/10/01
5.1 2008/11/27
5.5 2010-11-01
5.6 2013-02-01
5.7 2015/10/01

शुरू करना

MySQL में डेटाबेस बनाना

CREATE DATABASE mydb;
 

प्रतिलाभ की मात्रा:

क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.05 सेकंड)


निर्मित डेटाबेस mydb का उपयोग करना

USE mydb;
 

प्रतिलाभ की मात्रा:

डेटाबेस बदल दिया गया

MySQL में एक टेबल बनाना

CREATE TABLE mytable
(
  id              int unsigned NOT NULL auto_increment,
  username        varchar(100) NOT NULL,
  email           varchar(100) NOT NULL,
  PRIMARY KEY     (id)
);
 

CREATE TABLE mytable एक नई तालिका बनाएगी जिसे mytable कहा जाता mytable

id int unsigned NOT NULL auto_increment id कॉलम बनाता है, इस प्रकार का फ़ील्ड तालिका में प्रत्येक रिकॉर्ड के लिए एक अद्वितीय संख्यात्मक आईडी प्रदान करेगा (जिसका अर्थ है कि इस मामले में कोई भी दो पंक्तियों में एक ही id नहीं हो सकती है), MySQL स्वचालित रूप से एक नया असाइन करेगा रिकॉर्ड id फ़ील्ड (1 से शुरू) के लिए अद्वितीय मूल्य।

प्रतिलाभ की मात्रा:

क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.10 सेकंड)


किसी पंक्ति को MySQL तालिका में सम्मिलित करना

INSERT INTO mytable ( username, email )
VALUES ( "myuser", "myuser@example.com" );
 

उदाहरण वापसी मूल्य:

क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.06 सेकंड)

varchar उर्फ strings एकल उद्धरण का उपयोग करके भी डाला जा सकता है:

INSERT INTO mytable ( username, email )
VALUES ( 'username', 'username@example.com' );
 

किसी पंक्ति को MySQL तालिका में अद्यतन करना

UPDATE mytable SET username="myuser" WHERE id=8
 

उदाहरण वापसी मूल्य:

क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.06 सेकंड)

int वैल्यू को बिना उद्धरण के एक क्वेरी में डाला जा सकता है। तार और तिथियां एकल उद्धरण में सीमित होने चाहिए ' या डबल कोट्स "


किसी पंक्ति को MySQL तालिका में हटाना

DELETE FROM mytable WHERE id=8
 

उदाहरण वापसी मूल्य:

क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.06 सेकंड)

यह नष्ट करेगा पंक्ति होने id 8 है।


MySQL में शर्तों के आधार पर पंक्तियों का चयन करना

SELECT * FROM mytable WHERE username = "myuser";
 

प्रतिलाभ की मात्रा:

+----+----------+---------------------+
| id | username | email               |
+----+----------+---------------------+
|  1 | myuser   | myuser@example.com  |
+----+----------+---------------------+
 

1 पंक्ति में सेट (0.00 सेकंड)


मौजूदा डेटाबेस की सूची दिखाएं

SHOW databases;
 

प्रतिलाभ की मात्रा:

+-------------------+
| Databases         |
+-------------------+
| information_schema|
| mydb              |
+-------------------+
 

सेट में 2 पंक्तियाँ (0.00 सेकंड)

आप "information_schema" को "मास्टर डेटाबेस" के रूप में सोच सकते हैं जो डेटाबेस मेटाडेटा तक पहुंच प्रदान करता है।


किसी मौजूदा डेटाबेस में तालिकाएँ दिखाएं

SHOW tables;
 

प्रतिलाभ की मात्रा:

+----------------+
| Tables_in_mydb |
+----------------+
| mytable        |
+----------------+
 

1 पंक्ति में सेट (0.00 सेकंड)


एक तालिका के सभी क्षेत्रों को दिखाएं

DESCRIBE databaseName.tableName;
 

या, यदि पहले से ही एक डेटाबेस का उपयोग कर:

DESCRIBE tableName;
 

प्रतिलाभ की मात्रा:

+-----------+----------------+--------+---------+-------------------+-------+
| Field     | Type           | Null   | Key     | Default           | Extra |
+-----------+----------------+--------+---------+-------------------+-------+
| fieldname | fieldvaluetype | NO/YES | keytype | defaultfieldvalue |       |
+-----------+----------------+--------+---------+-------------------+-------+
 

उदाहरण के लिए Extra में auto_increment हो सकता है।

Key उस प्रकार के कुंजी को संदर्भित करती है जो फ़ील्ड को प्रभावित कर सकती है। प्राथमिक (PRI), अद्वितीय (UNI) ...

n पंक्ति में सेट (0.00 सेकंड)

जहां तालिका में n फ़ील्ड की संख्या है।


उपयोगकर्ता बनाना

सबसे पहले, आपको एक उपयोगकर्ता बनाने की आवश्यकता है और फिर कुछ डेटाबेस / तालिकाओं पर उपयोगकर्ता की अनुमति दें। उपयोगकर्ता बनाते समय, आपको यह भी निर्दिष्ट करना होगा कि यह उपयोगकर्ता कहाँ से कनेक्ट कर सकता है।

CREATE USER 'user'@'localhost' IDENTIFIED BY 'some_password';
 

एक उपयोगकर्ता बनाएगा जो केवल स्थानीय मशीन पर कनेक्ट हो सकता है जहां डेटाबेस होस्ट किया गया है।

CREATE USER 'user'@'%' IDENTIFIED BY 'some_password';
 

एक उपयोगकर्ता बनाएगा जो कहीं से भी जुड़ सकता है (स्थानीय मशीन को छोड़कर)।

उदाहरण वापसी मूल्य:

क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)

विशेषाधिकार जोड़ना

निर्दिष्ट डेटाबेस के सभी तालिकाओं के लिए उपयोगकर्ता के लिए सामान्य, बुनियादी विशेषाधिकार प्रदान करें:

GRANT SELECT, INSERT, UPDATE ON databaseName.* TO 'userName'@'localhost';
 

सभी डेटाबेस पर सभी तालिकाओं के लिए उपयोगकर्ता को सभी विशेषाधिकार प्रदान करें (इसके साथ ध्यान दें):

GRANT ALL ON *.* TO 'userName'@'localhost' WITH GRANT OPTION;
 

जैसा कि ऊपर दिखाया गया है, *.* सभी डेटाबेस और तालिकाओं को लक्षित करता है, databaseName.* विशिष्ट डेटाबेस के सभी तालिकाओं को लक्षित करता है। डेटाबेस और तालिका को भी निर्दिष्ट करना संभव है, जैसे databaseName.tableName

यदि उपयोगकर्ता को अन्य उपयोगकर्ता विशेषाधिकार प्रदान करने की आवश्यकता नहीं है, तो WITH GRANT OPTION छोड़ दिया जाना चाहिए।

विशेषाधिकार या तो हो सकते हैं

ALL
 

या निम्नलिखित के संयोजन, प्रत्येक अल्पविराम (गैर-निकास सूची) द्वारा अलग किया गया।

SELECT
INSERT
UPDATE
DELETE
CREATE
DROP
 

ध्यान दें

आम तौर पर, आपको कॉलम या टेबल नामों के रिक्त स्थान का उपयोग करने या SQL में आरक्षित शब्दों का उपयोग करने से बचने की कोशिश करनी चाहिए। उदाहरण के लिए, table या first name जैसे नामों से बचना सबसे अच्छा है।

यदि आपको ऐसे नामों का उपयोग करना है, तो उन्हें बैक-टिक `` सीमांकक के बीच रखें। उदाहरण के लिए:

CREATE TABLE `table`
(   
   `first name` VARCHAR(30)
);
 

इस तालिका में बैक-टिक डेलिमीटर युक्त एक क्वेरी हो सकती है:

 SELECT `first name` FROM `table` WHERE `first name` LIKE 'a%';
 

सूचना स्कीमा उदाहरण

प्रक्रिया सूची

यह उस समय तक उस क्रम में सभी सक्रिय और सो रहे प्रश्नों को दिखाएगा।
SELECT * FROM information_schema.PROCESSLIST ORDER BY INFO DESC, TIME DESC;
 

यह समय-फ़्रेम पर थोड़ा अधिक विस्तार है क्योंकि यह डिफ़ॉल्ट रूप से सेकंड में है

SELECT ID, USER, HOST, DB, COMMAND, 
TIME as time_seconds, 
ROUND(TIME / 60, 2) as time_minutes, 
ROUND(TIME / 60 / 60, 2) as time_hours, 
STATE, INFO
FROM information_schema.PROCESSLIST ORDER BY INFO DESC, TIME DESC;
 

संग्रहीत कार्यविधि खोज

आसानी से शब्दों और वाइल्डकार्ड के लिए सभी Stored Procedures

SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%word%';