標籤:blog ar 使用 for strong sp 檔案 資料 div
#!/usr/bin/env python# coding=utf-8import sqlite3conn = sqlite3.connect(":memory:")c = conn.cursor()c.execute( ‘‘‘CREATE TABLE stocks(data text,trans text,symbol test,qty real,price real)‘‘‘)c.execute("INSERT INTO stocks VALUES(‘2006-01-05‘,‘BUY‘,‘RHAT‘,100,35.14)")conn.commit()symbol = ‘RHAT‘c.execute("SELECT * FROM stocks WHERE symbol=‘%s‘" % symbol)print c.fetchone()parament = [ (‘2014-11-11‘, ‘WCS‘, ‘RHAT‘, 200, 20.5), (‘2014-11-15‘, ‘wcs‘, ‘RHAT‘, 300, 30.0)]# for t in parament:# c.execute("INSERT INTO stocks VALUES(?,?,?,?,?)", t)c.executemany("INSERT INTO stocks VALUES(?,?,?,?,?)", parament)c.execute("SELECT * FROM stocks WHERE symbol=‘%s‘" % symbol)print c.fetchall(
python是一個輕量級的開發資料庫,相比較sql server和roacle而言它顯得更加的簡單和直觀,如oracle龐大的安裝檔案sqlite就顯得輕巧很多,就拿python來說當安裝python的時候會自動安裝sqlite,使用者只要通過import 將其載入入項目就可以直接使用。
在調用sqlite時需要先通過import載入sqlite3,當載入完畢後可以直接通過調用其方法來對資料庫進行相應的操作
sqlite有兩種載入方式:
1記憶體形式
這種類型下的所有資料全部存放在記憶體當中,相當於使用者在運行相應程式的時候會在記憶體中建立一塊專屬的地區,當項目運行結束後會自動清空其所在地區內的所有的資料,相對檔案而言存取速度更快。
在調用.connect()方法只要將":memory:"做為形參調用就可以建立一個記憶體資料庫
2、檔案形式
.connect("檔案名稱"),當系統已有相應的名稱的資料庫時會自動載入,當沒有這個資料庫的時候會自動建立。
如果需要執行相應的資料操作時,需要調用其.execute()這個方法
1、建表操作
c.execute(
‘‘‘CREATE TABLE stocks(data text,trans text,symbol test,qty real,price real)‘‘‘)
上面的語句是執行一條建立表的SQL語句,表名為stocks
2、插入操作
2.1:通過元組來實現多個資料同時插入
parament = [ (‘2014-11-11‘, ‘WCS‘, ‘RHAT‘, 200, 20.5), (‘2014-11-15‘, ‘wcs‘, ‘RHAT‘, 300, 30.0)]for t in parament: c.execute("INSERT INTO stocks VALUES(?,?,?,?,?)", t)c.execute("SELECT * FROM stocks WHERE symbol=‘%s‘" % symbol)print c.fetchall()
(u‘2006-01-05‘, u‘BUY‘, u‘RHAT‘, 100.0, 35.14)
[(u‘2006-01-05‘, u‘BUY‘, u‘RHAT‘, 100.0, 35.14), (u‘2014-11-11‘, u‘WCS‘, u‘RHAT‘, 200.0, 20.5), (u‘2014-11-15‘, u‘wcs‘, u‘RHAT‘, 300.0, 30.0)]
第一條是初始狀態,第二條插入以後的查詢
2.2通過executemany來進行多條語句的插入
parament = [ (‘2014-11-11‘, ‘WCS‘, ‘RHAT‘, 200, 20.5), (‘2014-11-15‘, ‘wcs‘, ‘RHAT‘, 300, 30.0)]
c.executemany("INSERT INTO stocks VALUES(?,?,?,?,?)", parament)
c.execute("SELECT * FROM stocks WHERE symbol=‘%s‘" % symbol)
print c.fetchall(
結果與2.1相同
python sqlite(1)