欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python操作SQLite簡(jiǎn)明教程

 更新時(shí)間:2014年07月10日 12:02:25   投稿:junjie  
這篇文章主要介紹了Python操作SQLite簡(jiǎn)明教程,簡(jiǎn)單明了的入門教程,包含連接、建表、增刪修查等例子,需要的朋友可以參考下

一、SQLite簡(jiǎn)介

SQLite是一個(gè)包含在C庫(kù)中的輕量級(jí)數(shù)據(jù)庫(kù)。它并不需要獨(dú)立的維護(hù)進(jìn)程,并且允許使用非標(biāo)準(zhǔn)變體(nonstandard variant)的SQL查詢語(yǔ)句來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。一些應(yīng)用可是使用SQLite保存內(nèi)部數(shù)據(jù)。它也可以在構(gòu)建應(yīng)用原型的時(shí)候使用,以便于以后轉(zhuǎn)移到更大型的數(shù)據(jù)庫(kù),比如PostgreSQL或者Oracle。

sqlite3模塊由Gerhard Häring編寫,提供了一個(gè)SQL接口,這個(gè)接口的設(shè)計(jì)遵循了由PEP 249描述的DB-API 2.0說(shuō)明書。

二、創(chuàng)建并打開(kāi)數(shù)據(jù)庫(kù)

為了使用這個(gè)模塊,必須先創(chuàng)建一個(gè)連接(Connection)對(duì)象來(lái)代表數(shù)據(jù)庫(kù)。在以下的例子中,數(shù)據(jù)將會(huì)被保存在 example.db 文件中:

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

如果指定的數(shù)據(jù)庫(kù)存在,就會(huì)直接打開(kāi)這個(gè)數(shù)據(jù)庫(kù),否則將新建一再打開(kāi)。
也可以提供專用名 :memory: 來(lái)在內(nèi)存中建立數(shù)據(jù)庫(kù)。

三、數(shù)據(jù)庫(kù)連接對(duì)象

一旦擁有了連接(Connection)對(duì)象,就可以創(chuàng)建游標(biāo)(Cursor)對(duì)象并調(diào)用他的execute()方法來(lái)執(zhí)行SQL語(yǔ)句:

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

保存后的數(shù)據(jù)是持久的,并且可以在以后的訪問(wèn)中可用。

四、增刪改查

1.建(create)表

復(fù)制代碼 代碼如下:
c.execute("create table catalog (id integer primary key,pid integer,name varchar(10) UNIQUE,nickname text NULL)")

上面語(yǔ)句創(chuàng)建了一個(gè)叫catalog的表,它有一個(gè)主鍵id,一個(gè)pid,和一個(gè)name,name是不可以重復(fù)的,以及一個(gè)nickname默認(rèn)為NULL。

2.刪除表(DROP),清空表(TRUNCATE)

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

上面語(yǔ)句將catalog表刪除。

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

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

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

通常SQL語(yǔ)句中會(huì)用到python變量作為值(value)。不建議直接使用python的字符串運(yùn)算來(lái)構(gòu)造查詢語(yǔ)句,因?yàn)檫@樣是不安全的,會(huì)使你的程序容易受到SQL注入攻擊。

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

復(fù)制代碼 代碼如下:

# 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)數(shù)據(jù)

正如前面所說(shuō),提倡使用元組進(jìn)行操作。

復(fù)制代碼 代碼如下:
# 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)數(shù)據(jù)

復(fù)制代碼 代碼如下:

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

相關(guān)文章

  • Python進(jìn)程間通訊與進(jìn)程池超詳細(xì)講解

    Python進(jìn)程間通訊與進(jìn)程池超詳細(xì)講解

    進(jìn)程彼此之間互相隔離,要實(shí)現(xiàn)進(jìn)程間通信(IPC),multiprocessing模塊主要通過(guò)隊(duì)列方式,隊(duì)列:隊(duì)列類似于一條管道,元素先進(jìn)先出,需要注意的一點(diǎn)是:隊(duì)列都是在內(nèi)存中操作,進(jìn)程退出,隊(duì)列清空,另外,隊(duì)列也是一個(gè)阻塞的形態(tài)
    2022-12-12
  • PyTorch中torch.tensor()和torch.to_tensor()的區(qū)別

    PyTorch中torch.tensor()和torch.to_tensor()的區(qū)別

    在Pytorch中Tensor和tensor都用于生成新的張量,但二者并不相同,下面這篇文章主要給大家介紹了關(guān)于PyTorch中torch.tensor()和torch.to_tensor()區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 利用Python繪制MySQL數(shù)據(jù)圖實(shí)現(xiàn)數(shù)據(jù)可視化

    利用Python繪制MySQL數(shù)據(jù)圖實(shí)現(xiàn)數(shù)據(jù)可視化

    這篇文章主要介紹了利用Python繪制MySQL數(shù)據(jù)圖實(shí)現(xiàn)數(shù)據(jù)可視化,其中包括Python與MySQL的連接搭建、用Python執(zhí)行MySQL語(yǔ)句查詢等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 詳解Python傳入?yún)?shù)的幾種方法

    詳解Python傳入?yún)?shù)的幾種方法

    這篇文章主要介紹了Python傳入?yún)?shù)的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 利用Python實(shí)現(xiàn)個(gè)性化日歷

    利用Python實(shí)現(xiàn)個(gè)性化日歷

    雖然市面上已經(jīng)存在現(xiàn)成的日歷功能,并且有第三方庫(kù)可以直接調(diào)用實(shí)現(xiàn),但我們?nèi)匀幌Mㄟ^(guò)自己編寫日歷程序來(lái)引出我認(rèn)為好用的日歷實(shí)現(xiàn),所以下面就跟隨小編一起學(xué)習(xí)一下如何使用Python編寫一個(gè)簡(jiǎn)單的日歷程序吧
    2024-02-02
  • Face++ API實(shí)現(xiàn)手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì)

    Face++ API實(shí)現(xiàn)手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了Face++ API實(shí)現(xiàn)手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 將python包發(fā)布到PyPI和制作whl文件方式

    將python包發(fā)布到PyPI和制作whl文件方式

    今天小編就為大家分享一篇將python包發(fā)布到PyPI和制作whl文件方式,具有很的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Python實(shí)現(xiàn)的邏輯回歸算法示例【附測(cè)試csv文件下載】

    Python實(shí)現(xiàn)的邏輯回歸算法示例【附測(cè)試csv文件下載】

    這篇文章主要介紹了Python實(shí)現(xiàn)的邏輯回歸算法,結(jié)合具體實(shí)例形式分析了Python邏輯回歸算法相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-12-12
  • 對(duì)numpy中二進(jìn)制格式的數(shù)據(jù)存儲(chǔ)與讀取方法詳解

    對(duì)numpy中二進(jìn)制格式的數(shù)據(jù)存儲(chǔ)與讀取方法詳解

    今天小編就為大家分享一篇對(duì)numpy中二進(jìn)制格式的數(shù)據(jù)存儲(chǔ)與讀取方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • python?Tkinter實(shí)例詳解

    python?Tkinter實(shí)例詳解

    tkinter(Tk?interface)是Python的標(biāo)準(zhǔn)GUl庫(kù),支持跨平臺(tái)的GUl程序開(kāi)發(fā)。tkinter適合小型的GUl程序編寫,也特別適合初學(xué)者學(xué)習(xí)GUl編程,這篇文章主要介紹了python?Tkinter詳解,需要的朋友可以參考下
    2023-03-03

最新評(píng)論