Python SQLite - Insérer des données

Vous pouvez ajouter de nouvelles lignes à une table existante de SQLite à l'aide de l'instruction INSERT INTO. Dans ce cas, vous devez spécifier le nom de la table, les noms de colonne et les valeurs (dans le même ordre que les noms de colonne).

Syntaxe

Voici la syntaxe recommandée de l'instruction INSERT -

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

Où, colonne1, colonne2, colonne3, .. sont les noms des colonnes d'une table et valeur1, valeur2, valeur3, ... sont les valeurs que vous devez insérer dans la table.

Exemple

Supposons que nous ayons créé une table avec le nom CRICKETERS en utilisant l'instruction CREATE TABLE comme indiqué ci-dessous -

sqlite> CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Age int,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255)
);
sqlite>

L'instruction PostgreSQL suivante insère une ligne dans la table créée ci-dessus.

sqlite> insert into CRICKETERS (First_Name, Last_Name, Age, Place_Of_Birth, Country) 
   values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite>

Lors de l'insertion d'enregistrements à l'aide de l' instruction INSERT INTO , si vous ignorez les noms de colonnes, cet enregistrement sera inséré en laissant des espaces vides dans les colonnes que vous avez ignorées.

sqlite> insert into CRICKETERS (First_Name, Last_Name, Country) 
   values ('Jonathan', 'Trott', 'SouthAfrica');
sqlite>

Vous pouvez également insérer des enregistrements dans une table sans spécifier les noms de colonne, si l'ordre des valeurs que vous passez est le même que leurs noms de colonne respectifs dans la table.

sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>

Après avoir inséré les enregistrements dans une table, vous pouvez vérifier son contenu à l'aide de l'instruction SELECT comme indiqué ci-dessous -

sqlite> select * from cricketers;
Shikhar  |Dhawan     | 33 | Delhi | India
Jonathan |Trott      |    |       | SouthAfrica
Kumara   |Sangakkara | 41 | Matale| Srilanka
Virat    |Kohli      | 30 | Delhi | India
Rohit    |Sharma     | 32 | Nagpur| India
sqlite>

Insertion de données à l'aide de Python

Pour ajouter des enregistrements à une table existante dans la base de données SQLite -

  • Importez le package sqlite3.

  • Créez un objet de connexion à l'aide de la méthode connect () en lui passant le nom de la base de données comme paramètre.

  • le cursor()renvoie un objet curseur à l'aide duquel vous pouvez communiquer avec SQLite3. Créez un objet curseur en invoquant l'objet curseur () sur l'objet Connection (créé ci-dessus).

  • Ensuite, appelez la méthode execute () sur l'objet curseur, en lui passant une instruction INSERT en tant que paramètre.

Exemple

L'exemple python suivant insère des enregistrements dans une table nommée EMPLOYEE -

import sqlite3
#Connecting to sqlite
conn = sqlite3.connect('example.db')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Preparing SQL queries to INSERT a record into the database.
cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Ramya', 'Rama Priya', 27, 'F', 9000)'''
)
cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Vinay', 'Battacharya', 20, 'M', 6000)''')

cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Sharukh', 'Sheik', 25, 'M', 8300)''')

cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Sarmista', 'Sharma', 26, 'F', 10000)''')

cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Tripthi', 'Mishra', 24, 'F', 6000)''')

# Commit your changes in the database
conn.commit()

print("Records inserted........")

# Closing the connection
conn.close()

Production

Records inserted........