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