• Home
  • /
  • Blog
  • /
  • पायथन में SQL का उपयोग करना – शुरुआती के लिए ट्यूटोरियल

पायथन में SQL का उपयोग करना – शुरुआती के लिए ट्यूटोरियल

बच्चों से मास्टर करने के लिए बुनियादी कंप्यूटर कौशल

This post is also available in: English (English) العربية (Arabic)

पायथन डेटाबेस एपीआई (एप्लिकेशन प्रोग्राम इंटरफेस) मानक पायथन के लिए डेटाबेस इंटरफेस है। अधिकांश पायथन डेटाबेस इंटरफेस द्वारा इस मानक का पालन किया जाता है। पायथन डेटाबेस द्वारा समर्थित विभिन्न डेटाबेस सर्वर हैं जैसे कि MySQL, GadFly, mSQL, PostgreSQL, Microsoft SQL Server 2000, Informix, Interbase, Oracle, Sybase, आदि।

एक एसक्यूएल क्या है?

(“सीक्वल” के रूप में उच्चारित) डेटाबेस संचालित करने के लिए एक भाषा है; इसमें डेटाबेस बनाना, हटाना, पंक्तियों को लाना, पंक्तियों को संशोधित करना आदि शामिल हैं। SQL एक ANSI (अमेरिकन नेशनल स्टैंडर्ड इंस्टीट्यूट) मानक भाषा है, लेकिन SQL भाषा के कई अलग-अलग संस्करण हैं।

SQL एक संरचित क्वेरी भाषा है, जो एक रिलेशनल डेटाबेस में संग्रहीत डेटा को संग्रहीत करने, हेरफेर करने और पुनर्प्राप्त करने के लिए एक कंप्यूटर भाषा है।

SQL रिलेशनल डेटाबेस सिस्टम के लिए मानक भाषा है। MySQL, MS Access, Oracle, Sybase, Informix, Postgres, और SQL Server जैसे सभी रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDMS) SQL को अपनी मानक डेटाबेस भाषा के रूप में उपयोग करते हैं।

SQL व्यापक रूप से लोकप्रिय है क्योंकि यह निम्नलिखित लाभ प्रदान करता है –

  • उपयोगकर्ताओं को रिलेशनल डेटाबेस मैनेजमेंट सिस्टम में डेटा एक्सेस करने की अनुमति देता है।
  • उपयोगकर्ताओं को डेटा का वर्णन करने की अनुमति देता है।
  • उपयोगकर्ताओं को डेटाबेस में डेटा को परिभाषित करने और उस डेटा में हेरफेर करने की अनुमति देता है।
  • SQL मॉड्यूल, लाइब्रेरी और प्री-कंपाइलर का उपयोग करके अन्य भाषाओं में एम्बेड करने की अनुमति देता है।
  • उपयोगकर्ताओं को डेटाबेस और टेबल बनाने और छोड़ने की अनुमति देता है।
  • उपयोगकर्ताओं को डेटाबेस में दृश्य, संग्रहीत कार्यविधियाँ, कार्य बनाने की अनुमति देता है।
  • उपयोगकर्ताओं को तालिकाओं, प्रक्रियाओं और विचारों पर अनुमतियाँ सेट करने की अनुमति देता है।

पायथन में SQL का उपयोग करना

MySQLdb Python से MySQL डेटाबेस सर्वर से कनेक्ट करने के लिए एक इंटरफ़ेस है। यह पायथन डेटाबेस एपीआई v2.0 को लागू करता है और इसे MySQL C API के शीर्ष पर बनाया गया है।

MySQLdb मॉड्यूल को स्थापित करने के लिए, निम्न कमांड का उपयोग करें:

For Ubuntu, use the following command -$ sudo apt-get install python-pip python-dev libmysqlclient-devFor Fedora, use the following command -$ sudo dnf install python python-devel mysql-devel redhat-rpm-config gccFor Python command prompt, use the following command -pip install MySQL-python

आगे बढ़ने से पहले, सुनिश्चित करें कि आपने अपने कोड में MySQLdb को शामिल किया है। अपनी पायथन लिपि में बस निम्नलिखित टाइप करें और इसे निष्पादित करें –

#!/usr/bin/pythonimport MySQLdb

यदि आपकी मशीन में MySQLdb स्थापित नहीं है, तो यह निम्न त्रुटि उत्पन्न करता है:

Traceback (most recent call last): File “test.py”, line 3, in <module> import MySQLdbImportError: No module named MySQLdb

डेटाबेस कनेक्शन बनाना

एक पायथन एप्लिकेशन को हमारे डेटाबेस से जोड़ने के लिए निम्नलिखित चरण हैं।

  • कनेक्शन ऑब्जेक्ट बनाएं
  • कर्सर ऑब्जेक्ट बनाएं
  • क्वेरी निष्पादित करें

कनेक्शन बनाना

MySQL डेटाबेस और पायथन एप्लिकेशन के बीच एक कनेक्शन बनाने के लिए, mysql.connector मॉड्यूल की connect() विधि का उपयोग किया जाता है।

विधि कॉल में डेटाबेस विवरण जैसे होस्ट का नाम, उपयोग का कर्ता नाम और डेटाबेस पासवर्ड पास करें। विधि कनेक्शन ऑब्जेक्ट लौटाती है।

connect() का उपयोग करने का सिंटैक्स नीचे दिया गया है।

Connection-Object= mysql.connector.connect(host = <host-name> , user = <username> , passwd = <password> )

उदाहरण:

import mysql.connector #Create the connection object myconn = mysql.connector.connect(host = “localhost”, user = “root”,passwd = “pwd”) #printing the connection object print(myconn)

कर्सर ऑब्जेक्ट बनाना

कर्सर ऑब्जेक्ट को पायथन डीबी-एपीआई 2.0 में निर्दिष्ट एक अमूर्त के रूप में परिभाषित किया जा सकता है। यह हमें डेटाबेस से एक ही कनेक्शन के माध्यम से कई अलग-अलग कार्य वातावरण रखने की सुविधा प्रदान करता है। हम कनेक्शन ऑब्जेक्ट के ‘कर्सर’ फ़ंक्शन को कॉल करके कर्सर ऑब्जेक्ट बना सकते हैं। डेटाबेस में क्वेरी निष्पादित करने के लिए कर्सर ऑब्जेक्ट एक महत्वपूर्ण पहलू है।

कर्सर ऑब्जेक्ट बनाने का सिंटैक्स नीचे दिया गया है।

<my_cur> = conn.cursor()

उदाहरण:

import mysql.connector #Create the connection object myconn = mysql.connector.connect(host = “localhost”, user = “root”,passwd = “pwd”, database = “mydb”) #printing the connection object print(myconn) #creating the cursor object cur = myconn.cursor() print(cur)

क्वेरी निष्पादित करना

इस प्रक्रिया में वांछित ऑपरेशन करने के लिए SQL क्वेरी को निष्पादित करना शामिल है।

एक डेटाबेस बनाना

एक डेटाबेस तालिकाओं का एक संग्रह है जो बदले में संबंधित अभिलेखों को संग्रहीत करता है। आप CREATE DATABASE क्वेरी का उपयोग करके MYSQL में एक डेटाबेस बना सकते हैं।

CREATE DATABASE name_of_the_database

उदाहरण:

import mysql.connector#establishing the connectionconn = mysql.connector.connect(host = “localhost”, user = “root”,passwd = “pwd”, database = “mydb”)#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Doping database MYDATABASE if already exists.cursor.execute(“DROP database IF EXISTS MyDatabase”)#Preparing query to create a databasesql = “CREATE database MYDATABASE”;#Creating a databasecursor.execute(sql)#Retrieving the list of databasesprint(“List of databases: “)cursor.execute(“SHOW DATABASES”)print(cursor.fetchall())#Closing the connectionconn.close()

आउटपुट:

List of databases:[(‘information_schema’,), (‘dbbug61332’,), (‘details’,), (‘exampledatabase’,), (‘mydatabase’,), (‘mydb’,), (‘mysql’,), (‘performance_schema’,)]

एक टेबल बनाना

MYSQL डेटाबेस में टेबल बनाने के लिए CREATE TABLE स्टेटमेंट का उपयोग किया जाता है। यहां, आपको तालिका का नाम और प्रत्येक कॉलम की परिभाषा (नाम और डेटाटाइप) निर्दिष्ट करने की आवश्यकता है।

सिंटेक्स:

MySQL में एक टेबल बनाने के लिए सिंटैक्स निम्नलिखित है –

CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ….. columnN datatype,);

उदाहरण:

निम्न क्वेरी MySQL में EMPLOYEE नाम की एक तालिका बनाती है जिसमें पाँच कॉलम हैं, अर्थात् FIRST_NAME, LAST_NAME, AGE, SEX और, INCOME।

CREATE TABLE EMPLOYEE( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT);

DESC विवरण आपको निर्दिष्ट तालिका का विवरण देता है। इसका उपयोग करके आप सत्यापित कर सकते हैं कि तालिका बनाई गई है या नहीं जैसा कि नीचे दिखाया गया है –

Desc Employee;+————+———-+——+—–+———+——-+| Field | Type | Null | Key | Default | Extra |+————+———-+——+—–+———+——-+| FIRST_NAME | char(20) | NO | | NULL | || LAST_NAME | char(20) | YES | | NULL | || AGE | int(11) | YES | | NULL | || SEX | char(1) | YES | | NULL | || INCOME | float | YES | | NULL | |+————+———-+——+—–+———+——-+

पायथन का उपयोग करके MySQL में एक टेबल बनाना

execute() नामक विधि (कर्सर ऑब्जेक्ट पर लागू) दो चर स्वीकार करती है –

  • निष्पादित की जाने वाली क्वेरी का प्रतिनिधित्व करने वाला एक स्ट्रिंग मान।
  • एक वैकल्पिक args पैरामीटर जो एक टपल या, सूची या, शब्दकोश हो सकता है, जो क्वेरी के पैरामीटर (प्लेसहोल्डर के मान) का प्रतिनिधित्व करता है।

यह क्वेरी से प्रभावित पंक्तियों की संख्या का प्रतिनिधित्व करने वाला एक पूर्णांक मान देता है।

एक बार डेटाबेस कनेक्शन स्थापित हो जाने के बाद, आप CREATE TABLE क्वेरी को execute() विधि में पास करके टेबल बना सकते हैं।

संक्षेप में, Python 7minus का उपयोग करके एक तालिका बनाने के लिए;

  • Mysql.connector पैकेज आयात करें।
  • उपयोगकर्ता नाम, पासवर्ड, होस्ट (वैकल्पिक डिफ़ॉल्ट: लोकलहोस्ट) और डेटाबेस (वैकल्पिक) को पैरामीटर के रूप में पास करके mysql.connector.connect() विधि का उपयोग करके कनेक्शन ऑब्जेक्ट बनाएं।
  • ऊपर बनाए गए कनेक्शन ऑब्जेक्ट पर cursor() विधि को लागू करके एक कर्सर ऑब्जेक्ट बनाएं।
  • फिर, CREATE TABLE स्टेटमेंट को execute() मेथड के पैरामीटर के रूप में पास करके एक्जीक्यूट करें।

उदाहरण:

import mysql.connector#establishing the connectionconn = mysql.connector.connect(host = “localhost”, user = “root”,passwd = “pwd”, database = “mydb”))#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Dropping EMPLOYEE table if already exists.cursor.execute(“DROP TABLE IF EXISTS EMPLOYEE”)#Creating table as per requirementsql =”’CREATE TABLE EMPLOYEE( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT)”’cursor.execute(sql)#Closing the connectionconn.close()

प्राइमरी की

यह तालिका में एक अद्वितीय मान है। यह तालिका में प्रत्येक पंक्ति को विशिष्ट रूप से खोजने में मदद करता है। प्राइमरी की बनाने के लिए, हम तालिका बनाते समय PRIMARY KEY कथन का उपयोग करते हैं।

स्टेटमेंट INT AUTO_INCREMENT PRIMARY KEY का उपयोग प्रत्येक पंक्ति को विशिष्ट रूप से 1 से शुरू होने वाली संख्या के साथ पहचानने के लिए किया जाता है।

उदाहरण:

import mysql.connector as mysqldb = mysql.connect( host = “localhost”, user = “root”, passwd = “pwd”, database = “mydb”)cursor = db.cursor()## first we have to ‘drop’ the table which has already created to create it again with the ‘PRIMARY KEY’## ‘DROP TABLE table_name’ statement will drop the table from a databasecursor.execute(“DROP TABLE users”)## creating the ‘users’ table again with the ‘PRIMARY KEY’cursor.execute(“CREATE TABLE users (id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(255), last_name VARCHAR(255))”)

प्राइमरी की हटाना

हम प्राइमरी की वाले कॉलम को छोड़ने के लिए ALTER TABLE table_name DROP column_name स्टेटमेंट का उपयोग करते हैं।

import mysql.connector as mysqldb = mysql.connect( host = “localhost”, user = “root”, passwd = “pwd”, database = “mydb”) cursor = db.cursor()## dropping the ‘id’ columncursor.execute(“ALTER TABLE users DROP id”)cursor.execute(“DESC users”)print(cursor.fetchall())

प्राइमरी की जोड़ना

मौजूदा तालिका में प्राइमरी की जोड़ना। हम तालिका में प्राइमरी की जोड़ने के लिए ALTER TABLE table_name ADD PRIMARY KEY(column_name) स्टेटमेंट का उपयोग करते हैं।

import mysql.connector as mysqldb = mysql.connect( host = “localhost”, user = “root”, passwd = “pwd”, database = “mydb”)cursor = db.cursor()## adding ‘id’ column to the ‘users’ table## ‘FIRST’ keyword in the statement will add a column in the starting of the tablecursor.execute(“ALTER TABLE users ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST”)cursor.execute(“DESC users”)print(cursor.fetchall())

डेटा सम्मिलित करना

आप INSERT INTO स्टेटमेंट का उपयोग करके MySQL की मौजूदा तालिका में नई पंक्तियाँ जोड़ सकते हैं। इसमें, आपको टेबल का नाम, कॉलम नाम और मान (कॉलम नामों के समान क्रम में) निर्दिष्ट करने की आवश्यकता है।

INSERT INTO TABLE_NAME (column1, column2,column3,…columnN)VALUES (value1, value2, value3,…valueN);

निम्न क्वेरी EMPLOYEE नाम की तालिका में एक रिकॉर्ड सम्मिलित करती है।

INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (‘ Mac’, ‘Mohan’, 20, ‘M’, 2000);

पायथन का उपयोग करके MySQL में डेटा सम्मिलित करना

execute() विधि (कर्सर ऑब्जेक्ट पर लागू) एक क्वेरी को एक पैरामीटर के रूप में स्वीकार करती है और दी गई क्वेरी को निष्पादित करती है। डेटा डालने के लिए, आपको MySQL INSERT स्टेटमेंट को पैरामीटर के रूप में पास करना होगा।

cursor.execute(“””INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (‘Mac’, ‘Mohan’, 20, ‘M’, 2000)”””)

पायथन का उपयोग करके MySQL में एक तालिका में डेटा सम्मिलित करने के लिए –

  • mysql.connector पैकेज आयात करें।
  • उपयोगकर्ता नाम, पासवर्ड, होस्ट (वैकल्पिक डिफ़ॉल्ट: लोकलहोस्ट) और डेटाबेस (वैकल्पिक) को पैरामीटर के रूप में पास करके mysql.connector.connect() विधि का उपयोग करके कनेक्शन ऑब्जेक्ट बनाएं।
  • ऊपर बनाए गए कनेक्शन ऑब्जेक्ट पर cursor() विधि को लागू करके एक कर्सर ऑब्जेक्ट बनाएं
  • फिर, INSERT स्टेटमेंट को execute() विधि के पैरामीटर के रूप में पास करके निष्पादित करें।

उदाहरण:

निम्न उदाहरण EMPLOYEE तालिका में एक रिकॉर्ड डालने के लिए SQL INSERT स्टेटमेंट निष्पादित करता है –

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()# Preparing SQL query to INSERT a record into the database.sql = “””INSERT INTO EMPLOYEE( FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (‘Mac’, ‘Mohan’, 20, ‘M’, 2000)”””try: # Executing the SQL command cursor.execute(sql) # Commit your changes in the database conn.commit()except: # Rolling back in case of error conn.rollback()# Closing the connectionconn.close()

आप MySQL की INSERT क्वेरी में मानों के बजाय “%s” का भी उपयोग कर सकते हैं और उन्हें नीचे दिखाए गए सूचियों के रूप में मान दे सकते हैं –

cursor.execute(“””INSERT INTO EMPLOYEE VALUES (‘Mac’, ‘Mohan’, 20, ‘M’, 2000)”””, (‘Ramya’, ‘Ramapriya’, 25, ‘F’, 5000))

उदाहरण:

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()# Preparing SQL query to INSERT a record into the database.insert_stmt = ( “INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)” “VALUES (%s, %s, %s, %s, %s)”)data = (‘Ramya’, ‘Ramapriya’, 25, ‘F’, 5000)try: # Executing the SQL command cursor.execute(insert_stmt, data) # Commit your changes in the database conn.commit()except: # Rolling back in case of error conn.rollback()print(“Data inserted”)# Closing the connectionconn.close()

तालिका से डेटा पुनर्प्राप्त करना/प्राप्त करना

आप SELECT क्वेरी का उपयोग करके MySQL में किसी तालिका से डेटा पुनर्प्राप्त/प्राप्त कर सकते हैं। यह क्वेरी/स्टेटमेंट निर्दिष्ट तालिका की सामग्री को सारणीबद्ध रूप में लौटाता है और इसे परिणाम-सेट कहा जाता है।

SELECT column1, column2, columnN FROM table_name;

मान लें कि हमने MySQL में एक तालिका बनाई है जिसका नाम cricketers_data है –

CREATE TABLE cricketers_data( First_Name VARCHAR(255), Last_Name VARCHAR(255), Date_Of_Birth date, Place_Of_Birth VARCHAR(255), Country VARCHAR(255));

और अगर हमने INSERT कथनों का उपयोग करके − . के रूप में इसमें 5 रिकॉर्ड डाले हैं

insert into cricketers_data values( ‘Shikhar’, ‘Dhawan’, DATE(‘1981-12-05’), ‘Delhi’, ‘India’);insert into cricketers_data values( ‘Jonathan’, ‘Trott’, DATE(‘1981-04-22’), ‘CapeTown’, ‘SouthAfrica’);insert into cricketers_data values( ‘Kumara’, ‘Sangakkara’, DATE(‘1977-10-27’), ‘Matale’, ‘Srilanka’);insert into cricketers_data values( ‘Virat’, ‘Kohli’, DATE(‘1988-11-05’), ‘Delhi’, ‘India’);insert into cricketers_data values( ‘Rohit’, ‘Sharma’, DATE(‘1987-04-30’), ‘Nagpur’, ‘India’);

निम्न क्वेरी तालिका से FIRST_NAME और देश मान पुनर्प्राप्त करती है।

select FIRST_NAME, Country from cricketers_data;+————+————-+| FIRST_NAME | Country |+————+————-+| Shikhar | India || Jonathan | SouthAfrica || Kumara | Srilanka || Virat | India || Rohit | India |+————+————-+

आप प्रत्येक रिकॉर्ड के सभी मूल्यों को − . के रूप में कॉलम के नाम के * स्थापित का उपयोग करके पुनः प्राप्त कर सकते हैं

SELECT * from cricketers_data;+————+————+—————+—————-+————-+| First_Name | Last_Name | Date_Of_Birth | Place_Of_Birth | Country |+————+————+—————+—————-+————-+| Shikhar | Dhawan | 1981-12-05 | Delhi | India || Jonathan | Trott | 1981-04-22 | CapeTown | SouthAfrica || Kumara | Sangakkara | 1977-10-27 | Matale | Srilanka || Virat | Kohli | 1988-11-05 | Delhi | India || Rohit | Sharma | 1987-04-30 | Nagpur | India |+————+————+—————+—————-+————-+

पायथन का उपयोग करके एक MySQL तालिका से डेटा पुनर्प्राप्त करना/प्राप्त करना

किसी भी डेटाबेस पर READ ऑपरेशन का मतलब डेटाबेस से कुछ उपयोगी जानकारी प्राप्त करना है। आप mysql-connector-python द्वारा प्रदान की गई fetch() विधि का उपयोग करके MYSQL से डेटा प्राप्त कर सकते हैं।

cursor.MySQLCursor वर्ग तीन विधियाँ प्रदान करता है जैसे कि fetchall(), fetchmany() और, fetchone() जहाँ,

  • fetchall() विधि क्वेरी के परिणाम सेट में सभी पंक्तियों को पुनः प्राप्त करती है और उन्हें टुपल्स की सूची के रूप में लौटाती है। (यदि हम कुछ पंक्तियों को पुनः प्राप्त करने के बाद इसे निष्पादित करते हैं तो यह शेष को वापस कर देता है)।
  • fetchone() विधि क्वेरी के परिणाम में अगली पंक्ति प्राप्त करती है और इसे टुपल के रूप में लौटाती है।
  • fetchmany() विधि fetchone() के समान है, लेकिन, यह एक पंक्ति के बजाय, क्वेरी के परिणाम सेट में पंक्तियों के अगले सेट को पुनः प्राप्त करती है।

नोट – एक परिणाम सेट एक ऑब्जेक्ट है जो किसी तालिका को क्वेरी करने के लिए कर्सर ऑब्जेक्ट का उपयोग करने पर वापस किया जाता है।

rowcount – यह केवल-पढ़ने के लिए विशेषता है और execute() विधि से प्रभावित पंक्तियों की संख्या देता है।

उदाहरण:

निम्नलिखित उदाहरण SELECT क्वेरी का उपयोग करके EMPLOYEE तालिका की सभी पंक्तियों को प्राप्त करता है और शुरू में प्राप्त परिणाम सेट से, हम पहली पंक्ति को प्राप्त करने के लिए fetchone() विधि का उपयोग कर रहे हैं और फिर शेष पंक्तियों को प्राप्त करने के लिए fetchall() विधि का उपयोग कर रहे हैं।

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Retrieving single rowsql = ”’SELECT * from EMPLOYEE”’#Executing the querycursor.execute(sql)#Fetching 1st row from the tableresult = cursor.fetchone();print(result)#Fetching 1st row from the tableresult = cursor.fetchall();print(result)#Closing the connectionconn.close()

निम्न उदाहरण fetchmany() विधि का उपयोग करके EMPLOYEE तालिका की पहली दो पंक्तियों को पुनः प्राप्त करता है।

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Retrieving single rowsql = ”’SELECT * from EMPLOYEE”’#Executing the querycursor.execute(sql)#Fetching 1st row from the tableresult = cursor.fetchmany(size =2);print(result)#Closing the connectionconn.close()

WHERE क्लॉज

यदि आप MySQL में किसी तालिका की विशेष पंक्तियों को लाना, हटाना या अपडेट करना चाहते हैं, तो आपको ऑपरेशन के लिए तालिका की पंक्तियों को फ़िल्टर करने के लिए शर्तों को निर्दिष्ट करने के लिए WHERE क्लॉज का उपयोग करना होगा।

उदाहरण के लिए, यदि आपके पास जहां क्लॉज के साथ एक SELECT स्टेटमेंट है, तो केवल निर्दिष्ट शर्त को पूरा करने वाली पंक्तियों को पुनः प्राप्त किया जाएगा।

SELECT column1, column2, columnNFROM table_nameWHERE [condition]

मान लें कि हमने MySQL में EMPLOYEES नाम से − . के रूप में एक तालिका बनाई है

mysql> CREATE TABLE EMPLOYEE( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT);

और अगर हमने INSERT स्टेटमेंट्स का उपयोग करके − . के रूप में इसमें 4 रिकॉर्ड डाले हैं

INSERT INTO EMPLOYEE VALUES (‘Krishna’, ‘Sharma’, 19, ‘M’, 2000), (‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000), (‘Ramya’, ‘Ramapriya’, 25, ‘F’, 5000), (‘Mac’, ‘Mohan’, 26, ‘M’, 2000);

निम्नलिखित MySQL स्टेटमेंट उन कर्मचारियों के रिकॉर्ड को पुनः प्राप्त करता है जिनकी आय 4000 से अधिक है।

SELECT * FROM EMPLOYEE WHERE INCOME > 4000;+————+———–+——+——+——–+| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |+————+———–+——+——+——–+| Raj | Kandukuri | 20 | M | 7000 || Ramya | Ramapriya | 25 | F | 5000 |+————+———–+——+——+——–+

WHERE क्लॉज पायथन का उपयोग करके

पायथन प्रोग्राम का उपयोग करके तालिका से विशिष्ट रिकॉर्ड प्राप्त करने के लिए –

  • mysql.connector पैकेज आयात करें।
  • उपयोगकर्ता नाम, पासवर्ड, होस्ट (वैकल्पिक डिफ़ॉल्ट: लोकलहोस्ट) और डेटाबेस (वैकल्पिक) को पैरामीटर के रूप में पास करके mysql.connector.connect() विधि का उपयोग करके कनेक्शन ऑब्जेक्ट बनाएं।
  • ऊपर बनाए गए कनेक्शन ऑब्जेक्ट पर cursor() विधि को लागू करके एक कर्सर ऑब्जेक्ट बनाएं।
  • फिर, SELECT स्टेटमेंट को WHERE क्लॉज के साथ निष्पादित करें, इसे execute() विधि के पैरामीटर के रूप में पास करके।

उदाहरण

निम्न उदाहरण EMPLOYEE नाम की एक तालिका बनाता है और उसे पॉप्युलेट करता है। फिर WHERE क्लॉज का उपयोग करके यह 23 से कम आयु मान वाले रिकॉर्ड्स को पुनः प्राप्त करता है।

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Doping EMPLOYEE table if already exists.cursor.execute(“DROP TABLE IF EXISTS EMPLOYEE”)sql = ”’CREATE TABLE EMPLOYEE( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT)”’cursor.execute(sql)#Populating the tableinsert_stmt = “INSERT INTO EMPLOYEE (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s)”data = [(‘Krishna’, ‘Sharma’, 19, ‘M’, 2000), (‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000),(‘Ramya’, ‘Ramapriya’, 25, ‘F’, 5000),(‘Mac’, ‘Mohan’, 26, ‘M’, 2000)]cursor.executemany(insert_stmt, data)conn.commit()#Retrieving specific records using the where clausecursor.execute(“SELECT * from EMPLOYEE WHERE AGE <23”)print(cursor.fetchall())#Closing the connectionconn.close()

आउटपुट:

[(‘Krishna’, ‘Sharma’, 19, ‘M’, 2000.0), (‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000.0)]

ORDER BY क्लॉज़

SELECT क्वेरी का उपयोग करके डेटा प्राप्त करते समय, आप ORDER BY क्लॉज का उपयोग करके परिणामों को वांछित क्रम (आरोही या अवरोही) में सॉर्ट कर सकते हैं। डिफ़ॉल्ट रूप से, यह खंड परिणामों को आरोही क्रम में क्रमबद्ध करता है, यदि आपको उन्हें अवरोही क्रम में व्यवस्थित करने की आवश्यकता है तो आपको स्पष्ट रूप से “DESC” का उपयोग करने की आवश्यकता है।

FROM table_name[WHERE condition][ORDER BY column1, column2,.. columnN] [ASC | DESC]; of the ORDER BY clause:

मान लें कि हमने MySQL में EMPLOYEES नाम से − . के रूप में एक तालिका बनाई है

CREATE TABLE EMPLOYEE( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT);

और अगर हमने INSERT स्टेटमेंट्स का उपयोग करके − . के रूप में इसमें 4 रिकॉर्ड डाले हैं

INSERT INTO EMPLOYEE VALUES (‘Krishna’, ‘Sharma’, 19, ‘M’, 2000), (‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000), (‘Ramya’, ‘Ramapriya’, 25, ‘F’, 5000), (‘Mac’, ‘Mohan’, 26, ‘M’, 2000);

निम्नलिखित कथन EMPLOYEE तालिका की सामग्री को आयु के आरोही क्रम में पुनः प्राप्त करता है।

SELECT * FROM EMPLOYEE ORDER BY AGE;+————+———–+——+——+——–+| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |+————+———–+——+——+——–+| Krishna | Sharma | 19 | M | 2000 || Raj | Kandukuri | 20 | M | 7000 || Ramya | Ramapriya | 25 | F | 5000 || Mac | Mohan | 26 | M | 2000 |+————+———–+——+——+——–+

आप DESC का उपयोग करके – . के रूप में डेटा को अवरोही क्रम में भी पुनर्प्राप्त कर सकते हैं

SELECT * FROM EMPLOYEE ORDER BY FIRST_NAME, INCOME DESC;+————+———–+——+——+——–+| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |+————+———–+——+——+——–+| Krishna | Sharma | 19 | M | 2000 || Mac | Mohan | 26 | M | 2000 || Raj | Kandukuri | 20 | M | 7000 || Ramya | Ramapriya | 25 | F | 5000 |+————+———–+——+——+——–+

ORDER BY क्लॉज़ पाइथन में

एक विशिष्ट क्रम में तालिका की सामग्री को पुनः प्राप्त करने के लिए, कर्सर ऑब्जेक्ट पर execute() विधि को लागू करें और, ORDER BY क्लॉज के साथ SELECT स्टेटमेंट को इसके पैरामीटर के रूप में पास करें।

निम्नलिखित उदाहरण में, हम ORDER BY क्लॉज का उपयोग करके नाम और कर्मचारी के साथ एक तालिका बना रहे हैं, इसे पॉप्युलेट कर रहे हैं, और इसके रिकॉर्ड को उनकी उम्र के (आरोही) क्रम में वापस प्राप्त कर रहे हैं।

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Doping EMPLOYEE table if already exists.cursor.execute(“DROP TABLE IF EXISTS EMPLOYEE”)sql = ”’CREATE TABLE EMPLOYEE( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT)”’cursor.execute(sql)#Populating the tableinsert_stmt = “INSERT INTO EMPLOYEE (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s)”data = [(‘Krishna’, ‘Sharma’, 26, ‘M’, 2000), (‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000), (‘Ramya’, ‘Ramapriya’, 29, ‘F’, 5000), (‘Mac’, ‘Mohan’, 26, ‘M’, 2000)]cursor.executemany(insert_stmt, data)conn.commit()#Retrieving specific records using the ORDER BY clausecursor.execute(“SELECT * from EMPLOYEE ORDER BY AGE”)print(cursor.fetchall())#Closing the connectionconn.close()

आउटपुट

[(‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000.0), (‘Krishna’, ‘Sharma’, 26, ‘M’, 2000.0), (‘Mac’, ‘Mohan’, 26, ‘M’, 2000.0), (‘Ramya’, ‘Ramapriya’, 29, ‘F’, 5000.0)]

उसी तरह, आप ORDER BY क्लॉज का उपयोग करके तालिका से डेटा को अवरोही क्रम में पुनर्प्राप्त कर सकते हैं।

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Retrieving specific records using the ORDERBY clausecursor.execute(“SELECT * from EMPLOYEE ORDER BY INCOME DESC”)print(cursor.fetchall())#Closing the connectionconn.close()

आउटपुट:

[(‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000.0), (‘Ramya’, ‘Ramapriya’, 29, ‘F’, 5000.0), (‘Krishna’, ‘Sharma’, 26, ‘M’, 2000.0), (‘Mac’, ‘Mohan’, 26, ‘M’, 2000.0)]

तालिका से रिकॉर्ड हटाना

MySQL टेबल से रिकॉर्ड्स को हटाने के लिए, आपको DELETE FROM स्टेटमेंट का उपयोग करना होगा। विशिष्ट रिकॉर्ड को हटाने के लिए, आपको इसके साथ WHERE क्लॉज का उपयोग करना होगा।

DELETE FROM table_name [WHERE Clause]

मान लें कि हमने MySQL में EMPLOYEES नाम से − . के रूप में एक तालिका बनाई है

CREATE TABLE EMPLOYEE( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT);

और अगर हमने INSERT स्टेटमेंट्स का उपयोग करके − . के रूप में इसमें 4 रिकॉर्ड डाले हैं

INSERT INTO EMPLOYEE VALUES (‘Krishna’, ‘Sharma’, 19, ‘M’, 2000), (‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000), (‘Ramya’, ‘Ramapriya’, 25, ‘F’, 5000), (‘Mac’, ‘Mohan’, 26, ‘M’, 2000);

निम्न MySQL कथन FIRST_NAME “Mac” वाले EMPLOYEE के रिकॉर्ड को हटा देता है।

DELETE FROM EMPLOYEE WHERE FIRST_NAME = ‘Mac’;

यदि आप तालिका की सामग्री को पुनः प्राप्त करते हैं, तो आप केवल 3 रिकॉर्ड देख सकते हैं क्योंकि हमने एक को हटा दिया है।

select * from EMPLOYEE;+————+———–+——+——+——–+| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |+————+———–+——+——+——–+| Krishna | Sharma | 20 | M | 2000 || Raj | Kandukuri | 21 | M | 7000 || Ramya | Ramapriya | 25 | F | 5000 |+————+———–+——+——+——–+

यदि आप WHERE क्लॉज के बिना DELETE स्टेटमेंट निष्पादित करते हैं, तो निर्दिष्ट तालिका से सभी रिकॉर्ड हटा दिए जाएंगे।

DELETE FROM EMPLOYEE;

यदि आप तालिका की सामग्री को पुनः प्राप्त करते हैं, तो आपको एक खाली सेट मिलेगा जैसा कि नीचे दिखाया गया है –

select * from EMPLOYEE;

पायथन का उपयोग करके एक MySQL तालिका से डेटा निकालना

जब आप अपने डेटाबेस से कुछ रिकॉर्ड हटाना चाहते हैं तो DELETE ऑपरेशन की आवश्यकता होती है।

तालिका में रिकॉर्ड्स को मिटाने के लिए −

  • mysql.connector पैकेज आयात करें।
  • उपयोगकर्ता नाम, पासवर्ड, होस्ट (वैकल्पिक डिफ़ॉल्ट: लोकलहोस्ट) और डेटाबेस (वैकल्पिक) को पैरामीटर के रूप में पास करके mysql.connector.connect() विधि का उपयोग करके कनेक्शन ऑब्जेक्ट बनाएं।
  • ऊपर बनाए गए कनेक्शन ऑब्जेक्ट पर cursor() विधि को लागू करके एक कर्सर ऑब्जेक्ट बनाएं।
  • फिर, DELETE स्टेटमेंट को execute() विधि के पैरामीटर के रूप में पास करके निष्पादित करें।

निम्नलिखित कार्यक्रम EMPLOYEE से सभी रिकॉर्ड हटा देता है जिनकी आयु 20 से अधिक है –

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Retrieving single rowprint(“Contents of the table: “)cursor.execute(“SELECT * from EMPLOYEE”)print(cursor.fetchall())#Preparing the query to delete recordssql = “DELETE FROM EMPLOYEE WHERE AGE > ‘%d'” % (25)try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database conn.commit()except: # Roll back in case there is any error conn.rollback()#Retrieving dataprint(“Contents of the table after delete operation “)cursor.execute(“SELECT * from EMPLOYEE”)print(cursor.fetchall())#Closing the connectionconn.close()

आउटपुट:

Contents of the table:[(‘Krishna’, ‘Sharma’, 22, ‘M’, 2000.0), (‘Raj’, ‘Kandukuri’, 23, ‘M’, 7000.0), (‘Ramya’, ‘Ramapriya’, 26, ‘F’, 5000.0), (‘Mac’, ‘Mohan’, 20, ‘M’, 2000.0), (‘Ramya’, ‘Rama priya’, 27, ‘F’, 9000.0)]Contents of the table after delete operation:[(‘Krishna’, ‘Sharma’, 22, ‘M’, 2000.0), (‘Raj’, ‘Kandukuri’, 23, ‘M’, 7000.0), (‘Mac’, ‘Mohan’, 20, ‘M’, 2000.0)]

तालिका को अद्यतन/संशोधित करना

UPDATE किसी भी डेटाबेस पर संचालन एक या अधिक रिकॉर्ड अपडेट करता है, जो पहले से ही डेटाबेस में उपलब्ध हैं। आप UPDATE स्टेटमेंट का उपयोग करके MySQL में मौजूदा रिकॉर्ड के मूल्यों को अपडेट कर सकते हैं। विशिष्ट पंक्तियों को अपडेट करने के लिए, आपको इसके साथ WHERE क्लॉज का उपयोग करना होगा।

UPDATE table_nameSET column1 = value1, column2 = value2…., columnN = valueNWHERE [condition];

आप AND या OR ऑपरेटरों का उपयोग करके कितनी भी कंडीशंस को जोड़ सकते हैं।

मान लें कि हमने MySQL में EMPLOYEES नाम से − . के रूप में एक तालिका बनाई है

CREATE TABLE EMPLOYEE( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT);

और अगर हमने INSERT स्टेटमेंट्स का उपयोग करके − . के रूप में इसमें 4 रिकॉर्ड डाले हैं

INSERT INTO EMPLOYEE VALUES (‘Krishna’, ‘Sharma’, 19, ‘M’, 2000), (‘Raj’, ‘Kandukuri’, 20, ‘M’, 7000), (‘Ramya’, ‘Ramapriya’, 25, ‘F’, 5000), (‘Mac’, ‘Mohan’, 26, ‘M’, 2000);

निम्नलिखित MySQL कथन सभी पुरुष कर्मचारियों की आयु में एक वर्ष की वृद्धि करता है –

UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = ‘M’;

यदि आप तालिका की सामग्री को पुनः प्राप्त करते हैं, तो आप अद्यतन किए गए मानों को रूप में देख सकते हैं

select * from EMPLOYEE;+————+———–+——+——+——–+| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |+————+———–+——+——+——–+| Krishna | Sharma | 20 | M | 2000 || Raj | Kandukuri | 21 | M | 7000 || Ramya | Ramapriya | 25 | F | 5000 || Mac | Mohan | 27 | M | 2000 |+————+———–+——+——+——–+

पायथन का उपयोग करके तालिका की सामग्री को अद्यतन करना

पायथन का उपयोग करके MySQL में एक तालिका में रिकॉर्ड्स को अपडेट करने के लिए –

  • mysql.connector पैकेज आयात करें।
  • उपयोगकर्ता नाम, पासवर्ड, होस्ट (वैकल्पिक डिफ़ॉल्ट: लोकलहोस्ट) और डेटाबेस (वैकल्पिक) को पैरामीटर के रूप में पास करके mysql.connector.connect() विधि का उपयोग करके कनेक्शन ऑब्जेक्ट बनाएं।
  • ऊपर बनाए गए कनेक्शन ऑब्जेक्ट पर cursor() विधि को लागू करके एक कर्सर ऑब्जेक्ट बनाएं।
  • फिर, UPDATE स्टेटमेंट को execute() विधि के पैरामीटर के रूप में पास करके निष्पादित करें।

निम्नलिखित उदाहरण सभी पुरुषों की आयु में एक वर्ष की वृद्धि करता है।

import mysql.connector#establishing the connectionconn = mysql.connector.connect( user=’root’, password=’pwd’, host=’localhost’, database=’mydb’)#Creating a cursor object using the cursor() methodcursor = conn.cursor()#Preparing the query to update the recordssql = ”’UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = ‘M’ ”’try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database conn.commit()except: # Rollback in case there is any error conn.rollback()#Retrieving datasql = ”’SELECT * from EMPLOYEE”’#Executing the querycursor.execute(sql)#Displaying the resultprint(cursor.fetchall())#Closing the connectionconn.close()

आउटपुट

[(‘Krishna’, ‘Sharma’, 22, ‘M’, 2000.0), (‘Raj’, ‘Kandukuri’, 23, ‘M’, 7000.0), (‘Ramya’, ‘Ramapriya’, 26, ‘F’, 5000.0)]

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>