亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python操作SQLite簡明教程

系統 1548 0

一、SQLite簡介

SQLite是一個包含在C庫中的輕量級數據庫。它并不需要獨立的維護進程,并且允許使用非標準變體(nonstandard variant)的SQL查詢語句來訪問數據庫。一些應用可是使用SQLite保存內部數據。它也可以在構建應用原型的時候使用,以便于以后轉移到更大型的數據庫,比如PostgreSQL或者Oracle。

sqlite3模塊由Gerhard H?ring編寫,提供了一個SQL接口,這個接口的設計遵循了由PEP 249描述的DB-API 2.0說明書。

二、創建并打開數據庫

為了使用這個模塊,必須先創建一個連接(Connection)對象來代表數據庫。在以下的例子中,數據將會被保存在 example.db 文件中:

復制代碼 代碼如下:
import sqlite3
conn = sqlite3.connect('example.db')

如果指定的數據庫存在,就會直接打開這個數據庫,否則將新建一再打開。
也可以提供專用名 :memory: 來在內存中建立數據庫。

三、數據庫連接對象

一旦擁有了連接(Connection)對象,就可以創建游標(Cursor)對象并調用他的execute()方法來執行SQL語句:

復制代碼 代碼如下:
c = conn.cursor()
?
?# Create table
?c.execute('''CREATE TABLE stocks?????????????
???? (date text, trans text, symbol text, qty real, price real)''')
?
?# Insert a row of data
?c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
?
?# Save (commit) the changes
?conn.commit()
?
?# We can also close the connection if we are done with it.
?# Just be sure any changes have been committed or they will be lost.
?conn.close()
?

保存后的數據是持久的,并且可以在以后的訪問中可用。

四、增刪改查

1.建(create)表

復制代碼 代碼如下:
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)

復制代碼 代碼如下:
c.execute("drop table catalog")

上面語句將catalog表刪除。

另外SQLite中沒有清空表的操作,使用如下方式替代:

復制代碼 代碼如下:
c.execute("delete from catalog")

3.插入(insert)數據,更改(uptate)數據

通常SQL語句中會用到python變量作為值(value)。不建議直接使用python的字符串運算來構造查詢語句,因為這樣是不安全的,會使你的程序容易受到SQL注入攻擊。

可以使用DB-API提供的參數代換。在想使用值(value)的地方放置一個'?'作為占位符,然后提供一個由值(value)組成的元組作為游標(cursor)中execute()方法的第二個參數。(其他的數據庫模塊可能使用別的占位符,比如 '%s' 或者 ':1')

復制代碼 代碼如下:

# Larger example that inserts many records at a time
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)

c.execute("UPDATE catalog SET trans='SELL' WHERE symbol = 'IBM'")

4.查詢(select)數據

正如前面所說,提倡使用元組進行操作。

復制代碼 代碼如下:
# Never do this -- insecure!
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)

# Do this instead
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print c.fetchone()

5.刪除(delete)數據

復制代碼 代碼如下:

t=('RHAT')
c.execute("DELETE * FROM stocks WHERE symbol=?", t)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品国产一区二区三区不卡 | 亚洲精品午夜级久久久久 | 456性欧美欧美在线视频 | 在线观看日韩精品 | 免费一级毛片在线播放放视频 | 全免费午夜一级毛片真人 | 欧美日韩国产成人综合在线影院 | 久久综合九色 | 欧美黑人激情性久久 | 色婷婷欧美 | 国产dvd毛片在线视频 | 色综合综合色综合色综合 | 成人最新午夜免费视频 | 99久久精品久久久久久清纯 | 羞羞视频网页 | 亚洲一级毛片欧美一级说乱 | 日本视频不卡 | 亚洲人成高清 | 爱爱免费视频网站 | 视频福利在线 | 热久久99精品这里有精品 | 亚洲精品老司机综合影院 | 免费在线亚洲 | 看真人视频一一级毛片 | 大色佬视频在线观看 | 国内精品久久久久影院日本 | 亚洲国产精品67194成人 | 亚洲悠悠色综合中文字幕 | 亚洲精品麻豆一区二区 | 久99久爱精品免费观看视频 | 免费观看h片 | 免费xxxx美国18 | 欧美一区二区在线观看免费网站 | 久久精品爱| 私人影院aaaaa毛片 | 欧美伊人久久久久久久久影院 | 久久中精品中文 | 成人深夜影院 | 日韩一区二区三区在线观看 | 国产福利视频在线观看 | 欧美片欧美日韩国产综合片 |