परिचय
MySQL सबसे लोकप्रिय रिलेशनल डेटाबेस में से एक है, जिसका व्यापक रूप से वेब डेवलपमेंट और एंटरप्राइज सॉल्यूशंस में उपयोग किया जाता है। Python में MySQL के साथ काम करने के लिए अक्सर PyMySQL ड्राइवर का उपयोग किया जाता है - यह MySQL प्रोटोकॉल का शुद्ध Python इम्प्लीमेंटेशन है। यह उपयोग में सरल, सक्रिय रूप से सपोर्टेड है और SQLAlchemy और Pandas जैसी लोकप्रिय लाइब्रेरीज़ के साथ संगत है।
PyMySQL एक MySQL ड्राइवर है जो आपको डेटाबेस से कनेक्ट करने, SQL क्वेरी चलाने, ट्रांजैक्शन मैनेज करने और बिना जटिल सेटअप के वेब फ्रेमवर्क के साथ इंटीग्रेट करने की सुविधा देता है। अन्य ड्राइवरों के विपरीत, PyMySQL पूरी तरह से Python में लिखा गया है, जो इसे क्रॉस-प्लेटफॉर्म और इंस्टॉल करने में आसान बनाता है।
PyMySQL क्या है
PyMySQL Python के लिए एक क्लाइंट लाइब्रेरी है जो MySQL क्लाइंट/सर्वर प्रोटोकॉल को इम्प्लीमेंट करती है। यह MySQL सर्वर से कनेक्ट करने और SQL क्वेरी चलाने के लिए एक इंटरफेस प्रदान करती है। यह लाइब्रेरी Python Database API 2.0 (PEP 249) स्पेसिफिकेशन का पालन करती है, जो अन्य Python एप्लिकेशन के साथ संगतता सुनिश्चित करती है।
PyMySQL की मुख्य विशेषताएं
- शुद्ध Python: C/C++ पर कोई बाहरी निर्भरता नहीं
- संगतता: MySQL संस्करण 5.5 और उससे ऊपर को सपोर्ट करता है
- सुरक्षा: SQL इंजेक्शन से बिल्ट-इन सुरक्षा
- प्रदर्शन: तेज़ क्वेरी निष्पादन के लिए ऑप्टिमाइज़्ड
- उपयोग में आसानी: सहज और समझने योग्य API
MySQL से इंस्टॉलेशन और कनेक्शन
इंस्टॉलेशन
pip install pymysql
अतिरिक्त कार्यक्षमता के लिए निम्नलिखित इंस्टॉल करने की भी सिफारिश की जाती है:
pip install pymysql[rsa] # RSA ऑथेंटिकेशन के लिए
डेटाबेस से कनेक्शन
import pymysql
connection = pymysql.connect(
host='localhost',
user='root',
password='password',
database='test_db',
port=3306,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
DictCursor आपको टपल के बजाय डिक्शनरी के रूप में परिणाम प्राप्त करने की अनुमति देता है, जिससे डेटा के साथ काम करना अधिक सुविधाजनक हो जाता है।
कनेक्शन पैरामीटर
| पैरामीटर | विवरण | प्रकार | डिफ़ॉल्ट |
|---|---|---|---|
host |
MySQL सर्वर का होस्ट | str | 'localhost' |
port |
सर्वर पोर्ट | int | 3306 |
user |
उपयोगकर्ता नाम | str | None |
password |
पासवर्ड | str | None |
database |
डेटाबेस का नाम | str | None |
charset |
एन्कोडिंग | str | 'utf8mb4' |
autocommit |
ऑटोमैटिक कमिट | bool | False |
cursorclass |
कर्सर क्लास | class | Cursor |
डेटाबेस और टेबल बनाना
# डेटाबेस बनाना
with connection.cursor() as cursor:
cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")
# टेबल बनाना
with connection.cursor() as cursor:
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
""")
connection.commit()
PyMySQL के साथ CRUD ऑपरेशन
डेटा इन्सर्ट करना
# एक रिकॉर्ड इन्सर्ट करना
with connection