13.1 python資料庫api
13.2 sqlite和pysqlite
sqlite小型資料庫引擎,可直接使用本地檔案,而不需要集中式資料庫儲存機制。
使用模組sqlite3實現的pysqlite。
13.2.1 起步
>>>
import sqlite3
#建立直接到資料庫檔案的連線
>>> conn = sqlite3.connect('somedatabase.db')
#從連線獲得游標,游標可用來執行sql查詢
>>> curs = conn.cursor()
#修改了資料,提交修改
>>> conn.commit()
#關閉連線
>>> conn.close()
>>>
13.2.2 資料庫應用程式示例
import sqlite3
defconvert
(value):
if value.startswith('~'):
return value.strip('~')
ifnot value:
value = '0'
return float(value)
conn = sqlite3.connect('food.db')
curs = conn.cursor()
curs.execute('''
create table food (
id text primaky key,
desc text,
water float,
kcal float,
protein float,
fat float,
ash float,
carbs float,
fiber float,
sugar float
)''')
query = 'insert into food values (?,?,?,?,?,?,?,?,?,?)'
field_count = 10
for line in open('abbrev.txt'):
fields = line.split('^')
vals = [convert(f) for f in fields[:field_count]]
curs.execute(query, vals)
conn.commit()
conn.close()
import sqlite3
conn = sqlite3.connect('food.db')
curs = conn.cursor()
query = 'select * from food where id = "07276"'
print(query)
curs.execute(query)
print("curs.description:",curs.description)
names = [f[0] for f in curs.description]
print("names:", names)
for row in curs.fetchall():
print("row:",row)
print("zip(names, row):",zip(names, row))
for pair in zip(names, row):
print('{}: {}'.format(*pair))
print()
第13章 資料庫支援
為了解決不同資料庫模組的介面 api 不同的問題,指定了標準資料庫api db api 1.全域性變數 所有與db api2.0相容的資料庫模組必須包含3個全域性變數 apilevel 使用的python api版本,是乙個字串常量。db api 2.0指出,這個變數的值為 1.0 或 2.0 如果...
第13章 資料庫連線池(Druid)
spring boot 系列學習記錄 druid是乙個關係型資料庫連線池,它是阿里巴巴的乙個開源專案。druid支援所有jdbc相容資料庫,包括了oracle mysql postgresql sql server h2等。druid在監控 可擴充套件性 穩定性和效能方面具有明顯的優勢。通過drui...
資料庫實驗第13周
有待改善的學生表。介面 增 刪 我剛開始想刪乙個以前存的,發現會報錯,在sql server中輸入對應的刪除語句,發現是因為該學生有選課記錄。然後我就刪除的新插入的那個學生,結果成功了,因為該學生還沒有選課記錄。改 查 增刪改查 private void buttoninsert click obj...