Python SQLite - Tabloyu Güncelle

GÜNCELLEME Herhangi bir veritabanı üzerinde işlem, veritabanında zaten mevcut olan bir tablonun bir veya daha fazla kaydının değerlerinin değiştirilmesi anlamına gelir. UPDATE deyimini kullanarak SQLite'daki mevcut kayıtların değerlerini güncelleyebilirsiniz.

Belirli satırları güncellemek için, onunla birlikte WHERE yan tümcesini kullanmanız gerekir.

Sözdizimi

Aşağıda, SQLite'daki UPDATE ifadesinin sözdizimi verilmiştir -

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

Misal

Aşağıdaki sorguyu kullanarak CRICKETERS adında bir tablo oluşturduğumuzu varsayalım -

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

Ve INSERT ifadelerini kullanarak 5 kayıt eklediysek -

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>

Aşağıdaki Açıklama, ilk adı olan kriket oyuncunun yaşını değiştirir. Shikhar -

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

FIRST_NAME Şikhar olan kaydı alırsanız, yaş değerinin 45 olarak değiştirildiğini görürsünüz -

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

Kullanmadıysanız, tüm kayıtların WHERE yan tümcesi değerleri güncellenecektir. UPDATE ifadesinin ardından, CRICKETERS tablosundaki tüm kayıtların yaşı 1 artar -

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

SELECT komutunu kullanarak tablonun içeriğini alırsanız, güncellenmiş değerleri şu şekilde görebilirsiniz -

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>

Python Kullanarak Mevcut Kayıtları Güncelleme

SQLite veritabanında mevcut bir tabloya kayıt eklemek için -

  • Sqlite3 paketini içe aktarın.

  • Veritabanının adını bir parametre olarak ona ileterek connect () yöntemini kullanarak bir bağlantı nesnesi oluşturun.

  • cursor()yöntem, SQLite3 ile iletişim kurabileceğiniz bir imleç nesnesi döndürür. (Yukarıda oluşturulmuş) Connection nesnesinde cursor () nesnesini çağırarak bir imleç nesnesi oluşturun.

  • Ardından, imleç nesnesinde bir UPDATE deyimini parametre olarak ileterek execute () yöntemini çağırın.

Misal

Python örneğini takiben, EMPLOYEE adında bir tablo oluşturur, içine 5 kayıt ekler ve tüm erkek çalışanların yaşını 1 artırır -

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

Çıktı

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