English 中文(简体)
Python Data Access Tutorial

Selected Reading

Python MySQL - Where Clause
  • 时间:2024-11-03

Python MySQL - Where Clause


Previous Page Next Page  

If you want to fetch, delete or, update particular rows of a table in MySQL, you need to use the where clause to specify condition to filter the rows of the table for the operation.

For example, if you have a SELECT statement with where clause, only the rows which satisfies the specified condition will be retrieved.

Syntax

Following is the syntax of the WHERE clause −


SELECT column1, column2, columnN
FROM table_name
WHERE [condition]

Example

Assume we have created a table in MySQL with name EMPLOYEES as −


mysql> CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT,
   SEX CHAR(1),
   INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)

And if we have inserted 4 records in to it using INSERT statements as −


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

Following MySQL statement retrieves the records of the employees whose income is greater than 4000.


mysql> SELECT * FROM EMPLOYEE WHERE INCOME > 4000;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE  | SEX  | INCOME |
+------------+-----------+------+------+--------+
| Raj        | Kandukuri | 20   | M    | 7000   |
| Ramya      | Ramapriya | 25   | F    | 5000   |
+------------+-----------+------+------+--------+
2 rows in set (0.00 sec)

WHERE clause using python

To fetch specific records from a table using the python program −

    import mysql.connector package.

    Create a connection object using the mysql.connector.connect() method, by passing the user name, password, host (optional default: localhost) and, database (optional) as parameters to it.

    Create a cursor object by invoking the cursor() method on the connection object created above.

    Then, execute the SELECT statement with WHERE clause, by passing it as a parameter to the execute() method.

Example

Following example creates a table named Employee and populates it. Then using the where clause it retrieves the records with age value less than 23.


import mysql.connector

#estabpshing the connection
conn = mysql.connector.connect(
   user= root , password= password , host= 127.0.0.1 , database= mydb )

#Creating a cursor object using the cursor() method
cursor = 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 table
insert_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 clause
cursor.execute("SELECT * from EMPLOYEE WHERE AGE <23")
print(cursor.fetchall())

#Closing the connection
conn.close()

Output


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