Python SQLite - Tabel Pembaruan

Operasi UPDATE pada database apa pun menyiratkan pengubahan nilai dari satu atau lebih rekaman tabel, yang sudah tersedia dalam database. Anda dapat memperbarui nilai catatan yang ada di SQLite menggunakan pernyataan UPDATE.

Untuk memperbarui baris tertentu, Anda perlu menggunakan klausa WHERE bersamanya.

Sintaksis

Berikut ini adalah sintaks dari pernyataan UPDATE di SQLite -

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -

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

Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -

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>

Pernyataan Mengikuti mengubah usia pemain kriket, yang nama depannya adalah Shikhar -

sqlite> UPDATE CRICKETERS SET AGE = 45 WHERE FIRST_NAME = 'Shikhar' ;
sqlite>

Jika Anda mengambil rekaman yang FIRST_NAME-nya adalah Shikhar, Anda mengamati bahwa nilai usia telah diubah menjadi 45 -

sqlite> SELECT * FROM CRICKETERS WHERE FIRST_NAME = 'Shikhar';
First_Name   Last_Name    Age    Place_Of_B   Country
----------   ----------   ----   ----------   --------
Shikhar      Dhawan       45     Delhi        India
sqlite>

Jika Anda belum pernah menggunakan nilai klausa WHERE dari semua catatan akan diperbarui. Mengikuti pernyataan UPDATE meningkatkan usia semua catatan di tabel CRICKETERS sebesar 1 -

sqlite> UPDATE CRICKETERS SET AGE = AGE+1;
sqlite>

Jika Anda mengambil konten tabel menggunakan perintah SELECT, Anda dapat melihat nilai yang diperbarui sebagai -

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>

Memperbarui Record yang Ada Menggunakan Python

Untuk menambahkan catatan ke tabel yang ada di database SQLite -

  • Impor paket sqlite3.

  • Buat objek koneksi menggunakan metode connect () dengan meneruskan nama database sebagai parameternya.

  • Itu cursor()metode mengembalikan objek kursor yang dapat digunakan untuk berkomunikasi dengan SQLite3. Buat objek kursor dengan memanggil objek cursor () pada objek Connection (di atas dibuat).

  • Kemudian, aktifkan metode execute () pada objek kursor, dengan meneruskan pernyataan UPDATE sebagai parameter untuknya.

Contoh

Mengikuti contoh Python, membuat tabel dengan nama EMPLOYEE, memasukkan 5 catatan ke dalamnya dan, meningkatkan usia semua karyawan laki-laki sebanyak 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()

Keluaran

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)
]