python_reference/sqlite3/update_db.py
2013-12-02 18:27:24 -05:00

47 lines
1.2 KiB
Python

# 10/28/2013 Sebastian Raschka
# Syntax basics for updating sqlite3 data bases
import sqlite3
# make connection to existing db
conn = sqlite3.connect('zinc_db1.db')
c = conn.cursor()
# update field (no insert if id doesn't exist)
t = ('NO', 'ZINC00895033', )
c.execute("UPDATE zinc_db1 SET purchasable=? WHERE zinc_id=?", t)
print "Total number of rows changed:", conn.total_changes
# update, or insert when id does not exist
# here: updates rotatable bonds if record with primary key zinc_id exists,<br>
# else inserts new record an sets purchasable to 0
c.execute("""INSERT OR REPLACE INTO zinc_db1 (zinc_id, rotatable_bonds, purchasable)
VALUES ( 'ZINC123456798',
3,
COALESCE((SELECT purchasable from zinc_db1 WHERE zinc_id = 'ZINC123456798'), 0)
)""")
# delete rows
t = ('NO', )
c.execute("DELETE FROM zinc_db1 WHERE purchasable=?", t)
print "Total number of rows deleted: ", conn.total_changes
# add column
c.execute("ALTER TABLE zinc_db1 ADD COLUMN 'keto_oxy' TEXT")
# save changes
conn.commit()
# print column names
c.execute("SELECT * FROM zinc_db1")
col_name_list = [tup[0] for tup in c.description]
print col_name_list
# close connection
conn.close()