w3resource

Python: Update a specific column value of a given table

Python SQLite Database: Exercise-9 with Solution

Write a Python program to update a specific column value of a given table and select all rows before and after updating the said table.

Sample Solution:

Python Code :

import sqlite3 
from sqlite3 import Error 
def sql_connection():
    try:
      conn = sqlite3.connect('mydatabase.db')
      return conn
    except Error:
      print(Error) 
def sql_table(conn):
    cursorObj = conn.cursor()
# Create the table
    cursorObj.execute("CREATE TABLE salesman(salesman_id n(5), name char(30), city char(35), commission decimal(7,2));")
# Insert records
    cursorObj.executescript("""
    INSERT INTO salesman VALUES(5001,'James Hoog', 'New York', 0.15);
    INSERT INTO salesman VALUES(5002,'Nail Knite', 'Paris', 0.25);
    INSERT INTO salesman VALUES(5003,'Pit Alex', 'London', 0.15);
    INSERT INTO salesman VALUES(5004,'Mc Lyon', 'Paris', 0.35);
    INSERT INTO salesman VALUES(5005,'Paul Adam', 'Rome', 0.45);
    """)    
    cursorObj.execute("SELECT * FROM salesman")
    rows = cursorObj.fetchall()
    print("Agent details:")
    for row in rows:
        print(row)
    print("\nUpdate commission .15 to .45 where id is 5003:")
    sql_update_query = """Update salesman set commission = .45 where salesman_id = 5003"""
    cursorObj.execute(sql_update_query)
    conn.commit()
    print("Record Updated successfully ")    
    cursorObj.execute("SELECT * FROM salesman")
    rows = cursorObj.fetchall()
    print("\nAfter updating Agent details:")
    for row in rows:
        print(row)
sqllite_conn = sql_connection()
sql_table(sqllite_conn)
if (sqllite_conn):
  sqllite_conn.close()
  print("\nThe SQLite connection is closed.")

Sample Output:

Agent details:
(5001, 'James Hoog', 'New York', 0.15)
(5002, 'Nail Knite', 'Paris', 0.25)
(5003, 'Pit Alex', 'London', 0.15)
(5004, 'Mc Lyon', 'Paris', 0.35)
(5005, 'Paul Adam', 'Rome', 0.45)

Update commission .15 to .45 where id is 5003:
Record Updated successfully 

After updating Agent details:
(5001, 'James Hoog', 'New York', 0.15)
(5002, 'Nail Knite', 'Paris', 0.25)
(5003, 'Pit Alex', 'London', 0.45)
(5004, 'Mc Lyon', 'Paris', 0.35)
(5005, 'Paul Adam', 'Rome', 0.45)

The SQLite connection is closed.

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to count the number of rows of a given SQLite table.
Next: Write a Python program to update all the values of a specific column of a given SQLite table.

What is the difficulty level of this exercise?

Test your Python skills with w3resource's quiz


Python: Tips of the Day

Creates a dictionary with the same keys as the provided dictionary and values generated by running the provided function for each value:

Example:

def tips_map_values(obj, fn):
  ret = {}
  for key in obj.keys():
    ret[key] = fn(obj[key])
  return ret
users = {
  'Owen': { 'user': 'Owen', 'age': 29 },
  'Eddie': { 'user': 'Eddie', 'age': 15 }
}

print(tips_map_values(users, lambda u : u['age'])) # {'Owen': 29, 'Eddie': 15}

Output:

{'Owen': 29, 'Eddie': 15}