對資料做更改必須得使用conn.commit()語句變更才生效。
為了使語句安全,使用這樣的格式,傳變數。symbol = 'rhat' c.execute("select * from stocks where symbol = '%s'" % symbol)
使用完後記得關閉資料庫,使用conn.close()語句。
in [1]:
importsqlite3
conn=sqlite3.connect('example.db')
c=conn.cursor()
# 建立表
c.execute('''create table stocks
(date text, trans text, symbol text, qty real, price real)''')
# 插入一行資料
c.execute("insert into stocks values ('2006-01-05','buy','rhat',100,35.14)")
# 儲存(提交)資料
conn.commit()
# 我們也可以關閉連線,如果我們完成了它。
# 只要確保所有的更改都已提交,否則它們將丟失。
conn.close()
in [2]:
conn=sqlite3.connect('example.db')
c=conn.cursor()
symbol='rhat'
c.execute("select * from stocks where symbol = '%s'"%symbol)
print(c.fetchone())
('2006-01-05', 'buy', 'rhat', 100.0, 35.14)
in [3]:
conn.close()
in [15]:
conn=sqlite3.connect('example.db')
c=conn.cursor()
purchases= [('2006-03-28', 'buy', 'ibm', 1000, 45.00),
('2006-04-05', 'buy', 'msft', 1000, 72.00),
('2006-04-06', 'sell', 'ibm', 500, 53.00),
]
c.executemany('insert into stocks values (?,?,?,?,?)', purchases)
conn.commit()
conn.close()
in [79]:
conn=sqlite3.connect('example.db')
c=conn.cursor()
c.execute('select * from stocks')
print(c.fetchmany(10))
conn.close()
[('2006-01-05', 'buy', 'rhat', 100.0, 35.14), ('2006-03-28', 'buy', 'ibm', 1000.0, 45.0), ('2006-04-05', 'buy', 'msft', 1000.0, 72.0), ('2006-04-06', 'sell', 'ibm', 500.0, 53.0), ('2006-03-28', 'buy', 'ibm', 1000.0, 45.0), ('2006-04-05', 'buy', 'msft', 1000.0, 72.0), ('2006-04-06', 'sell', 'ibm', 500.0, 53.0), ('2006-03-28', 'buy', 'ibm', 1000.0, 45.0), ('2006-04-05', 'buy', 'msft', 1000.0, 72.0), ('2006-04-06', 'sell', 'ibm', 500.0, 53.0)]
in [111]:
conn=sqlite3.connect('example.db')
c=conn.cursor()
t= ('rhat',20,'buy') #使用元組的方式,使資料更加安全。
c.execute('select * from stocks where symbol=? and price>? and trans=?', t)
#print(c.fetchall()) #顯示全部記錄。
#print(c.fetchmany(10)) #顯示多條記錄。
print(c.fetchone()) #顯示一條記錄。
conn.close()
('2006-01-05', 'buy', 'rhat', 100.0, 35.14)
in [112]:
importhashlib
defmd5sum(t):
returnhashlib.md5(t).hexdigest()
con=sqlite3.connect(":memory:")
con.create_function("md5", 1, md5sum)
cur=con.cursor()
cur.execute("select md5(?)", (b"foo",))
print(cur.fetchone()[0])
con.close()
acbd18db4cc2f85cedef654fccc4a4d8
Android對SQLite批量新增資料
有人去面試的時候面試官問這麼乙個問題。如何將大量的資料同時插入到sqlite?或者說批量資料插入資料庫?本人總結了一下幾種方法,重點注意後面那一點 1.使用contentvalues插入 db.begintransaction 手動設定開始事務 for contentvalues v list db...
Python 操作sqlite資料庫
sqlite是一種輕量級的資料庫,它最大的特點就是無需安裝。資料庫本身以乙個單獨的檔案的形式存放。sqlite只有5種資料型別 null 值是乙個 null 值。integer 值是乙個帶符號的整數,根據值的大小儲存在 1 2 3 4 6 或 8 位元組中。real 值是乙個浮點值,儲存為 8 位元...
Python連線SQLite資料庫
sqlite作為一款輕型資料庫,管理工具有很多,比如sqlite expert professional,很適合用來儲存python 爬蟲的相關資料,下面列出基本的增刪查改操作 讀取操作 conn1 sqlite3.connect board.databasepath conn1.row facto...