Python SQLite - Table de mise à jour
UPDATE L'opération sur n'importe quelle base de données implique de modifier les valeurs d'un ou plusieurs enregistrements d'une table, qui sont déjà disponibles dans la base de données. Vous pouvez mettre à jour les valeurs des enregistrements existants dans SQLite à l'aide de l'instruction UPDATE.
Pour mettre à jour des lignes spécifiques, vous devez utiliser la clause WHERE avec elle.
Syntaxe
Voici la syntaxe de l'instruction UPDATE dans SQLite -
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
Exemple
Supposons que nous ayons créé une table avec le nom CRICKETERS en utilisant la requête suivante -
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
Et si nous y avons inséré 5 enregistrements en utilisant des instructions INSERT comme -
sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
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>
La déclaration suivante modifie l'âge du joueur de cricket, dont le prénom est Shikhar -
sqlite> UPDATE CRICKETERS SET AGE = 45 WHERE FIRST_NAME = 'Shikhar' ;
sqlite>
Si vous récupérez l'enregistrement dont FIRST_NAME est Shikhar, vous constatez que la valeur d'âge a été modifiée à 45 -
sqlite> SELECT * FROM CRICKETERS WHERE FIRST_NAME = 'Shikhar';
First_Name Last_Name Age Place_Of_B Country
---------- ---------- ---- ---------- --------
Shikhar Dhawan 45 Delhi India
sqlite>
Si vous n'avez pas utilisé la clause WHERE, les valeurs de tous les enregistrements seront mises à jour. L'instruction UPDATE suivante augmente l'âge de tous les enregistrements de la table CRICKETERS de 1 -
sqlite> UPDATE CRICKETERS SET AGE = AGE+1;
sqlite>
Si vous récupérez le contenu de la table à l'aide de la commande SELECT, vous pouvez voir les valeurs mises à jour comme -
sqlite> SELECT * FROM CRICKETERS;
First_Name Last_Name Age Place_Of_B Country
---------- ---------- ---- ---------- -------------
Shikhar Dhawan 46 Delhi India
Jonathan Trott 39 CapeTown SouthAfrica
Kumara Sangakkara 42 Matale Srilanka
Virat Kohli 31 Delhi India
Rohit Sharma 33 Nagpur India
sqlite>
Mettre à jour des enregistrements existants à 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 UPDATE comme paramètre.
Exemple
En suivant l'exemple Python, crée une table avec le nom EMPLOYEE, y insère 5 enregistrements et augmente l'âge de tous les employés masculins de 1 -
import sqlite3
#Connecting to sqlite
conn = sqlite3.connect('example.db')
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
#Creating table as per requirement
sql ='''CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)'''
cursor.execute(sql)
#Inserting data
cursor.execute('''INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Ramya', 'Rama priya', 27, 'F', 9000),
('Vinay', 'Battacharya', 20, 'M', 6000),
('Sharukh', 'Sheik', 25, 'M', 8300),
('Sarmista', 'Sharma', 26, 'F', 10000),
('Tripthi', 'Mishra', 24, 'F', 6000)''')
conn.commit()
#Fetching all the rows before the update
print("Contents of the Employee table: ")
cursor.execute('''SELECT * from EMPLOYEE''')
print(cursor.fetchall())
#Updating the records
sql = '''UPDATE EMPLOYEE SET AGE=AGE+1 WHERE SEX = 'M' '''
cursor.execute(sql)
print("Table updated...... ")
#Fetching all the rows after the update
print("Contents of the Employee table after the update operation: ")
cursor.execute('''SELECT * from EMPLOYEE''')
print(cursor.fetchall())
#Commit your changes in the database
conn.commit()
#Closing the connection
conn.close()
Production
Contents of the Employee table:
[
('Ramya', 'Rama priya', 27, 'F', 9000.0),
('Vinay', 'Battacharya', 20, 'M', 6000.0),
('Sharukh', 'Sheik', 25, 'M', 8300.0),
('Sarmista', 'Sharma', 26, 'F', 10000.0),
('Tripthi', 'Mishra', 24, 'F', 6000.0)
]
Table updated......
Contents of the Employee table after the update operation:
[
('Ramya', 'Rama priya', 27, 'F', 9000.0),
('Vinay', 'Battacharya', 21, 'M', 6000.0),
('Sharukh', 'Sheik', 26, 'M', 8300.0),
('Sarmista', 'Sharma', 26, 'F', 10000.0),
('Tripthi', 'Mishra', 24, 'F', 6000.0)
]