Python SQLite - Aggiorna tabella
AGGIORNAMENTO L'operazione su qualsiasi database implica la modifica dei valori di uno o più record di una tabella, che sono già disponibili nel database. È possibile aggiornare i valori dei record esistenti in SQLite utilizzando l'istruzione UPDATE.
Per aggiornare righe specifiche, è necessario utilizzare la clausola WHERE insieme ad essa.
Sintassi
Di seguito è riportata la sintassi dell'istruzione UPDATE in SQLite:
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
Esempio
Supponiamo di aver creato una tabella con il nome CRICKETERS utilizzando la seguente query:
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
E se abbiamo inserito 5 record in esso utilizzando le istruzioni INSERT come -
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 seguente dichiarazione modifica l'età del giocatore di cricket, il cui nome è Shikhar -
sqlite> UPDATE CRICKETERS SET AGE = 45 WHERE FIRST_NAME = 'Shikhar' ;
sqlite>
Se recuperi il record il cui FIRST_NAME è Shikhar, osservi che il valore dell'età è stato modificato in 45 -
sqlite> SELECT * FROM CRICKETERS WHERE FIRST_NAME = 'Shikhar';
First_Name Last_Name Age Place_Of_B Country
---------- ---------- ---- ---------- -------------
Shikhar Dhawan 45 Delhi India
sqlite>
Se non hai utilizzato la clausola WHERE, i valori di tutti i record verranno aggiornati. La seguente istruzione UPDATE aumenta l'età di tutti i record nella tabella CRICKETERS di 1 -
sqlite> UPDATE CRICKETERS SET AGE = AGE+1;
sqlite>
Se recuperi il contenuto della tabella utilizzando il comando SELEZIONA, puoi vedere i valori aggiornati come -
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>
Aggiornamento dei record esistenti utilizzando python
Per aggiungere record a una tabella esistente nel database SQLite:
Importa pacchetto sqlite3.
Creare un oggetto connessione utilizzando il metodo connect () passando il nome del database come parametro ad esso.
Il cursor()restituisce un oggetto cursore utilizzando il quale è possibile comunicare con SQLite3. Crea un oggetto cursore invocando l'oggetto cursore () sull'oggetto Connection (creato sopra).
Quindi, invoca il metodo execute () sull'oggetto cursore, passando un'istruzione UPDATE come parametro ad esso.
Esempio
Seguendo l'esempio di Python, crea una tabella con il nome DIPENDENTE, inserisce 5 record e aumenta di 1 l'età di tutti i dipendenti maschi -
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()
Produzione
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)]