大夥仍是從文章底部的連接看原文吧 轉的貼總是有代碼格式問題 OSC解決下 python
1、SQLite簡介 sql
SQLite是一個包含在C庫中的輕量級數據庫。它並不須要獨立的維護進程,而且容許使用非標準變體(nonstandard variant)的SQL查詢語句來訪問數據庫。一些應用但是使用SQLite保存內部數據。它也能夠在構建應用原型的時候使用,以便於之後轉移到更大型的數據庫,好比PostgreSQL或者Oracle。
sqlite3模塊由Gerhard Häring編寫,提供了一個SQL接口,這個接口的設計遵循了由PEP 249描述的DB-API 2.0說明書。 數據庫
2、建立並打開數據庫 安全
爲了使用這個模塊,必須先建立一個鏈接(Connection)對象來表明數據庫。在如下的例子中,數據將會被保存在 example.db 文件中: fetch
1 import sqlite3 2 conn = sqlite3.connect('example.db')
若是指定的數據庫存在,就會直接打開這個數據庫,不然將新建一再打開。
也能夠提供專用名 :memory: 來在內存中創建數據庫。 this
3、數據庫鏈接對象 spa
一旦擁有了鏈接(Connection)對象,就能夠建立遊標(Cursor)對象並調用他的execute()方法來執行SQL語句: .net
1 c = conn.cursor() 2 3 # Create table 4 c.execute('''CREATE TABLE stocks 5 (date text, trans text, symbol text, qty real, price real)''') 6 7 # Insert a row of data 8 c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)") 9 10 # Save (commit) the changes 11 conn.commit() 12 13 # We can also close the connection if we are done with it. 14 # Just be sure any changes have been committed or they will be lost. 15 conn.close()
保存後的數據是持久的,而且能夠在之後的訪問中可用。 設計
4、增刪改查 code
1.建(create)表
1 c.execute("create table catalog (id integer primary key,pid integer,name varchar(10) UNIQUE,nickname text NULL)")
上面語句建立了一個叫catalog的表,它有一個主鍵id,一個pid,和一個name,name是不能夠重複的,以及一個nickname默認爲NULL。
2.刪除表(DROP),清空表(TRUNCATE)
1 c.execute("drop table catalog")
上面語句將catalog表刪除。
另外SQLite中沒有清空表的操做,使用以下方式替代:
1 c.execute("delete from catalog")
3.插入(insert)數據,更改(uptate)數據
一般SQL語句中會用到python變量做爲值(value)。不建議直接使用python的字符串運算來構造查詢語句,由於這樣是不安全的,會使你的程序容易受到SQL注入攻擊。
可使用DB-API提供的參數代換。在想使用值(value)的地方放置一個'?'做爲佔位符,而後提供一個由值(value)組成的元組做爲遊標(cursor)中execute()方法的第二個參數。(其餘的數據庫模塊可能使用別的佔位符,好比 '%s' 或者 ':1')
1 # Larger example that inserts many records at a time 2 purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), 3 ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00), 4 ('2006-04-06', 'SELL', 'IBM', 500, 53.00), 5 ] 6 c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases) 7 8 c.execute("UPDATE catalog SET trans='SELL' WHERE symbol = 'IBM'")
4.查詢(select)數據
正如前面所說,提倡使用元組進行操做。
1 # Never do this -- insecure! 2 symbol = 'RHAT' 3 c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) 4 5 # Do this instead 6 t = ('RHAT',) 7 c.execute('SELECT * FROM stocks WHERE symbol=?', t) 8 print c.fetchone()
5.刪除(delete)數據
1 t=('RHAT') 2 c.execute("DELETE * FROM stocks WHERE symbol=?", t)