#!/usr/bin/python
import sqlite3
1 sqlite3.connect(database [,timeout ,other optional arguments])
該 API 打開(kāi)一個(gè)到 SQLite 數(shù)據(jù)庫(kù)文件 database 的鏈接。您可以使用 ":memory:" 來(lái)在 RAM 中打開(kāi)一個(gè)到 database 的數(shù)據(jù)庫(kù)連接厨剪,而不是在磁盤(pán)上打開(kāi)。如果數(shù)據(jù)庫(kù)成功打開(kāi)轮傍,則返回一個(gè)連接對(duì)象兔综。
當(dāng)一個(gè)數(shù)據(jù)庫(kù)被多個(gè)連接訪問(wèn),且其中一個(gè)修改了數(shù)據(jù)庫(kù),此時(shí) SQLite 數(shù)據(jù)庫(kù)被鎖定,直到事務(wù)提交鳞仙。timeout 參數(shù)表示連接等待鎖定的持續(xù)時(shí)間,直到發(fā)生異常斷開(kāi)連接笔时。timeout 參數(shù)默認(rèn)是 5.0(5 秒)棍好。
如果給定的數(shù)據(jù)庫(kù)名稱(chēng) filename 不存在,則該調(diào)用將創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)允耿。如果您不想在當(dāng)前目錄中創(chuàng)建數(shù)據(jù)庫(kù)借笙,那么您可以指定帶有路徑的文件名,這樣您就能在任意地方創(chuàng)建數(shù)據(jù)庫(kù)较锡。
2 connection.cursor([cursorClass])
該例程創(chuàng)建一個(gè) cursor业稼,將在 Python 數(shù)據(jù)庫(kù)編程中用到。該方法接受一個(gè)單一的可選的參數(shù) cursorClass念链。如果提供了該參數(shù)盼忌,則它必須是一個(gè)擴(kuò)展自 sqlite3.Cursor 的自定義的 cursor 類(lèi)。
3 cursor.execute(sql [, optional parameters])
該例程執(zhí)行一個(gè) SQL 語(yǔ)句掂墓。該 SQL 語(yǔ)句可以被參數(shù)化(即使用占位符代替 SQL 文本)谦纱。sqlite3 模塊支持兩種類(lèi)型的占位符:?jiǎn)柼?hào)和命名占位符(命名樣式)。
例如:cursor.execute("insert into people values (?, ?)", (who, age))
4 connection.execute(sql [, optional parameters])
該例程是上面執(zhí)行的由光標(biāo)(cursor)對(duì)象提供的方法的快捷方式君编,它通過(guò)調(diào)用光標(biāo)(cursor)方法創(chuàng)建了一個(gè)中間的光標(biāo)對(duì)象跨嘉,然后通過(guò)給定的參數(shù)調(diào)用光標(biāo)的 execute 方法。
5 cursor.executemany(sql, seq_of_parameters)
該例程對(duì) seq_of_parameters 中的所有參數(shù)或映射執(zhí)行一個(gè) SQL 命令吃嘿。
6 connection.executemany(sql[, parameters])
該例程是一個(gè)由調(diào)用光標(biāo)(cursor)方法創(chuàng)建的中間的光標(biāo)對(duì)象的快捷方式祠乃,然后通過(guò)給定的參數(shù)調(diào)用光標(biāo)的 executemany 方法。
7 cursor.executescript(sql_script)
該例程一旦接收到腳本兑燥,會(huì)執(zhí)行多個(gè) SQL 語(yǔ)句亮瓷。它首先執(zhí)行 COMMIT 語(yǔ)句,然后執(zhí)行作為參數(shù)傳入的 SQL 腳本降瞳。所有的 SQL 語(yǔ)句應(yīng)該用分號(hào)(;)分隔嘱支。
8 connection.executescript(sql_script)
該例程是一個(gè)由調(diào)用光標(biāo)(cursor)方法創(chuàng)建的中間的光標(biāo)對(duì)象的快捷方式,然后通過(guò)給定的參數(shù)調(diào)用光標(biāo)的 executescript 方法挣饥。
9 connection.total_changes()
該例程返回自數(shù)據(jù)庫(kù)連接打開(kāi)以來(lái)被修改除师、插入或刪除的數(shù)據(jù)庫(kù)總行數(shù)。
10 connection.commit()
該方法提交當(dāng)前的事務(wù)扔枫。如果您未調(diào)用該方法汛聚,那么自您上一次調(diào)用 commit() 以來(lái)所做的任何動(dòng)作對(duì)其他數(shù)據(jù)庫(kù)連接來(lái)說(shuō)是不可見(jiàn)的。
11 connection.rollback()
該方法回滾自上一次調(diào)用 commit() 以來(lái)對(duì)數(shù)據(jù)庫(kù)所做的更改短荐。
12 connection.close()
該方法關(guān)閉數(shù)據(jù)庫(kù)連接倚舀。請(qǐng)注意叹哭,這不會(huì)自動(dòng)調(diào)用 commit()。如果您之前未調(diào)用 commit() 方法瞄桨,就直接關(guān)閉數(shù)據(jù)庫(kù)連接话速,您所做的所有更改將全部丟失!
13 cursor.fetchone()
該方法獲取查詢(xún)結(jié)果集中的下一行芯侥,返回一個(gè)單一的序列,當(dāng)沒(méi)有更多可用的數(shù)據(jù)時(shí)乳讥,則返回 None柱查。
14 cursor.fetchmany([size=cursor.arraysize])
該方法獲取查詢(xún)結(jié)果集中的下一行組,返回一個(gè)列表云石。當(dāng)沒(méi)有更多的可用的行時(shí)唉工,則返回一個(gè)空的列表。該方法嘗試獲取由 size 參數(shù)指定的盡可能多的行汹忠。
15 cursor.fetchall()
該例程獲取查詢(xún)結(jié)果集中所有(剩余)的行淋硝,返回一個(gè)列表。當(dāng)沒(méi)有可用的行時(shí)宽菜,則返回一個(gè)空的列表谣膳。
#創(chuàng)建的數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)表
conn = sqlite3.connect('test.db')
print ("Opened database successfully")
c = conn.cursor()
c.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print ("Table created successfully")
conn.commit()
conn.close()
#insert操作
conn = sqlite3.connect('test.db') #連接庫(kù)
c = conn.cursor()
print "Opened database successfully";
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )");
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");
conn.commit()
print "Records created successfully";
conn.close()
#select操作
conn = sqlite3.connect('test.db')
c = conn.cursor()
print "Opened database successfully";
cursor = c.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
print "ID = ", row[0]
print "NAME = ", row[1]
print "ADDRESS = ", row[2]
print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()
#update操作
conn = sqlite3.connect('test.db')
c = conn.cursor()
print "Opened database successfully";
c.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")
conn.commit()
print "Total number of rows updated :", conn.total_changes
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
print "ID = ", row[0]
print "NAME = ", row[1]
print "ADDRESS = ", row[2]
print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()
#刪除操作
conn = sqlite3.connect('test.db')
c = conn.cursor()
print "Opened database successfully";
c.execute("DELETE from COMPANY where ID=2;")
conn.commit()
print "Total number of rows deleted :", conn.total_changes
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
print "ID = ", row[0]
print "NAME = ", row[1]
print "ADDRESS = ", row[2]
print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()
python之sqlite3
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)荠割,“玉大人妹卿,你說(shuō)我怎么就攤上這事≌枪玻” “怎么了纽帖?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)举反。 經(jīng)常有香客問(wèn)我懊直,道長(zhǎng),這世上最難降的妖魔是什么火鼻? 我笑而不...
- 正文 為了忘掉前任室囊,我火速辦了婚禮雕崩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘融撞。我一直安慰自己盼铁,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布尝偎。 她就那樣靜靜地躺著饶火,像睡著了一般。 火紅的嫁衣襯著肌膚如雪致扯。 梳的紋絲不亂的頭發(fā)上肤寝,一...
- 那天,我揣著相機(jī)與錄音抖僵,去河邊找鬼鲤看。 笑死,一個(gè)胖子當(dāng)著我的面吹牛耍群,可吹牛的內(nèi)容都是我干的义桂。 我是一名探鬼主播,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼蹈垢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼慷吊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起耘婚,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤罢浇,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后沐祷,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體嚷闭,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年赖临,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胞锰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站吟逝,受9級(jí)特大地震影響帽蝶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜块攒,卻給世界環(huán)境...
- 文/蒙蒙 一励稳、第九天 我趴在偏房一處隱蔽的房頂上張望佃乘。 院中可真熱鬧,春花似錦驹尼、人聲如沸趣避。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)程帕。三九已至,卻和暖如春地啰,著一層夾襖步出監(jiān)牢的瞬間骆捧,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓顺呕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親括饶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子株茶,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 閑白 Hello大家好我是EC君今天為大家總結(jié)下Python3基礎(chǔ)知識(shí),可以方便我們進(jìn)行基礎(chǔ)知識(shí)的回顧和速記图焰。因?yàn)?..
- 版權(quán)聲明:本文為博主原創(chuàng)文章鳖粟,未經(jīng)博主允許不得轉(zhuǎn)載。 PS:轉(zhuǎn)載請(qǐng)注明出處作者: TigerChain地址: ht...
- 0.1本系列教程說(shuō)明 本系列教程拙绊,采用的大綱母本為《Understanding Network Hacks Att...
- 版權(quán)聲明:本文為博主原創(chuàng)文章标沪,未經(jīng)博主允許不得轉(zhuǎn)載榄攀。 PS:轉(zhuǎn)載請(qǐng)注明出處作者:TigerChain地址:http...
- Python基本知識(shí):Python 是一種高級(jí)語(yǔ)言,簡(jiǎn)潔,代碼少,C語(yǔ)言要寫(xiě)1000行代碼,Java只需要寫(xiě)100...