Python MySQL - Sélectionner des données

Vous pouvez récupérer / récupérer des données à partir d'une table dans MySQL à l'aide de la requête SELECT. Cette requête / instruction renvoie le contenu de la table spécifiée sous forme de tableau et elle est appelée comme ensemble de résultats.

Syntaxe

Voici la syntaxe de la requête SELECT -

SELECT column1, column2, columnN FROM table_name;

Exemple

Supposons que nous ayons créé une table dans MySQL avec le nom cricketers_data comme -

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

Et si nous y avons inséré 5 enregistrements en utilisant des instructions INSERT comme -

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');

La requête suivante récupère les valeurs FIRST_NAME et Country de la table.

mysql> select FIRST_NAME, Country from cricketers_data;
+------------+-------------+
| FIRST_NAME | Country     | 
+------------+-------------+
| Shikhar    | India       |
| Jonathan   | SouthAfrica |
| Kumara     | Srilanka    |
| Virat      | India       |
| Rohit      | India       |
+------------+-------------+
5 rows in set (0.00 sec)

Vous pouvez également récupérer toutes les valeurs de chaque enregistrement en utilisant * instated du nom des colonnes comme -

mysql> 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       |
+------------+------------+---------------+----------------+-------------+
5 rows in set (0.00 sec)

Lire des données à partir d'une table MYSQL à l'aide de Python

LIRE L'opération sur n'importe quelle base de données signifie récupérer des informations utiles dans la base de données. Vous pouvez récupérer les données de MYSQL en utilisant lefetch() méthode fournie par le mysql-connector-python.

La classe cursor.MySQLCursor fournit trois méthodes à savoirfetchall(), fetchmany() et, fetchone() où,

  • le fetchall()La méthode récupère toutes les lignes du jeu de résultats d'une requête et les renvoie sous forme de liste de tuples. (Si nous exécutons ceci après avoir récupéré quelques lignes, il renvoie les autres).

  • le fetchone() La méthode récupère la ligne suivante dans le résultat d'une requête et la renvoie sous forme de tuple.

  • le fetchmany() est similaire à la méthode fetchone (), mais elle récupère le jeu de lignes suivant dans le jeu de résultats d'une requête, au lieu d'une seule ligne.

Note - Un jeu de résultats est un objet renvoyé lorsqu'un objet curseur est utilisé pour interroger une table.

rowcount - Il s'agit d'un attribut en lecture seule et renvoie le nombre de lignes affectées par une méthode execute ().

Exemple

L'exemple suivant récupère toutes les lignes de la table EMPLOYEE à l'aide de la requête SELECT et à partir du jeu de résultats obtenu initialement, nous récupérons la première ligne à l'aide de la méthode fetchone (), puis les lignes restantes à l'aide de la méthode fetchall ().

import mysql.connector
#establishing 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()

#Retrieving single row
sql = '''SELECT * from EMPLOYEE'''

#Executing the query
cursor.execute(sql)

#Fetching 1st row from the table
result = cursor.fetchone();
print(result)

#Fetching 1st row from the table
result = cursor.fetchall();
print(result)

#Closing the connection
conn.close()

Production

('Krishna', 'Sharma', 19, 'M', 2000.0)
[('Raj', 'Kandukuri', 20, 'M', 7000.0), ('Ramya', 'Ramapriya', 25, 'M', 5000.0)]

L'exemple suivant récupère les deux premières lignes de la table EMPLOYEE à l'aide de la méthode fetchmany ().

Exemple

import mysql.connector
#establishing 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()

#Retrieving single row
sql = '''SELECT * from EMPLOYEE'''

#Executing the query
cursor.execute(sql)

#Fetching 1st row from the table
result = cursor.fetchmany(size =2);
print(result)

#Closing the connection
conn.close()

Production

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