国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python SQLite3簡(jiǎn)介

2020-01-04 15:50:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最近需要用Python寫一個(gè)簡(jiǎn)易通訊錄,但是對(duì)于數(shù)據(jù)存儲(chǔ)很發(fā)愁。大家都知道,使用 Python 中的列表和字典進(jìn)行存儲(chǔ)數(shù)據(jù)是很不靠譜的,所以就想到Python有沒(méi)有內(nèi)置的數(shù)據(jù)庫(kù)模塊。

SQLite3簡(jiǎn)介

SQLite3 可使用 sqlite3 模塊與 Python 進(jìn)行集成。sqlite3 模塊是由 Gerhard Haring 編寫的。它提供了一個(gè)與 PEP 249 描述的 DB-API 2.0 規(guī)范兼容的 SQL 接口。您不需要單獨(dú)安裝該模塊,因?yàn)?Python 2.5.x 以上版本默認(rèn)自帶了該模塊。
為了使用 sqlite3 模塊,您首先必須創(chuàng)建一個(gè)表示數(shù)據(jù)庫(kù)的連接對(duì)象,然后您可以有選擇地創(chuàng)建光標(biāo)對(duì)象,這將幫助您執(zhí)行所有的 SQL 語(yǔ)句。

怎么樣,聽(tīng)起來(lái)不錯(cuò)吧!那就快來(lái)學(xué)習(xí)使用吧。

連接數(shù)據(jù)庫(kù)

下面的 Python 代碼顯示了如何連接到一個(gè)現(xiàn)有的數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)不存在,那么它就會(huì)被創(chuàng)建,最后將返回一個(gè)數(shù)據(jù)庫(kù)對(duì)象。

#-*- coding:utf-8 -*-import sqlite3conn = sqlite3.connect('mysql_person.db')print "Opened database successfully";

在這里,您也可以把數(shù)據(jù)庫(kù)名稱復(fù)制為特定的名稱 :memory:,這樣就會(huì)在 RAM 中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。現(xiàn)在,讓我們來(lái)運(yùn)行上面的程序,在當(dāng)前目錄中創(chuàng)建我們的數(shù)據(jù)庫(kù) mysql_person.db。您可以根據(jù)需要改變路徑。保存上面代碼到 sqlite.py 文件中,并按如下所示執(zhí)行。如果數(shù)據(jù)庫(kù)成功創(chuàng)建,那么會(huì)顯示下面所示的消息:

$chmod +x sqlite.py$./sqlite.pyOpen database successfully

創(chuàng)建表

下面的 Python 代碼段將用于在先前創(chuàng)建的數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)表:

#-*- coding:utf-8 -*-import sqlite3conn = sqlite3.connect('mysql_person.db')print "Opened database successfully";conn.execute('''CREATE TABLE MT    (ID INT PRIMARY KEY   NOT NULL,    NAME      TEXT  NOT NULL,    AGE      INT   NOT NULL,    ADDRESS    CHAR(50),    SALARY     REAL);''')print "Table created successfully";conn.close()

上述程序執(zhí)行時(shí),它會(huì)在 test.db 中創(chuàng)建 MT 表,并顯示下面所示的消息:

Opened database successfullyTable created successfully

INSERT 操作

下面的 Python 程序顯示了如何在上面創(chuàng)建的 MT 表中創(chuàng)建記錄:

 

#-*- coding:utf-8 -*-import sqlite3conn = sqlite3.connect('mysql_person.db')print "Opened database successfully";conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) /   VALUES (1, 'Paul', 32, 'California', 20000.00 )");conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) /   VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) /   VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");conn.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()

上述程序執(zhí)行時(shí),它會(huì)在 MT 表中創(chuàng)建給定記錄,并會(huì)顯示以下兩行:

Opened database successfullyRecords created successfully

SELECT 操作

下面的 Python 程序顯示了如何從前面創(chuàng)建的 MT 表中獲取并顯示記錄:

#-*- coding:utf-8 -*-import sqlite3conn = sqlite3.connect('mysql_person.db')print "Opened database successfully";cursor = conn.execute("SELECT id, name, address, salary from MT")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()

上述程序執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果:

Opened database successfullyID = 1NAME = PaulADDRESS = CaliforniaSALARY = 20000.0ID = 2NAME = AllenADDRESS = TexasSALARY = 15000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully

UPDATE 操作

下面的 Python 代碼顯示了如何使用 UPDATE 語(yǔ)句來(lái)更新任何記錄,然后從 COMPANY 表中獲取并顯示更新的記錄:

#-*- coding:utf-8 -*-import sqlite3conn = sqlite3.connect('mysql_person.db')print "Opened database successfully";conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")conn.commit()print "Total number of rows updated :", conn.total_changescursor = conn.execute("SELECT id, name, address, salary from MT")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()

上述程序執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果:

Opened database successfullyTotal number of rows updated : 1ID = 1NAME = PaulADDRESS = CaliforniaSALARY = 25000.0ID = 2NAME = AllenADDRESS = TexasSALARY = 15000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully

DELETE 操作

下面的 Python 代碼顯示了如何使用 DELETE 語(yǔ)句刪除任何記錄,然后從 COMPANY 表中獲取并顯示剩余的記錄:

#-*- coding:utf-8 -*-import sqlite3conn = sqlite3.connect('mysql_person.db')print "Opened database successfully";conn.execute("DELETE from COMPANY where ID=2;")conn.commit()print "Total number of rows deleted :", conn.total_changescursor = conn.execute("SELECT id, name, address, salary from MT")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()

上述程序執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果:

Opened database successfullyTotal number of rows deleted : 1ID = 1NAME = PaulADDRESS = CaliforniaSALARY = 20000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沅陵县| 宿州市| 松溪县| 深州市| 荥阳市| 建宁县| 南木林县| 织金县| 辽阳县| 伊吾县| 重庆市| 鹤峰县| 云阳县| 安阳市| 罗源县| 肥城市| 株洲市| 诏安县| 凉山| 全南县| 辰溪县| 雷波县| 怀柔区| 沁源县| 仪陇县| 精河县| 河曲县| 晋州市| 太保市| 永宁县| 腾冲县| 潞西市| 邢台市| 潮州市| 清远市| 铁岭市| 岱山县| 泸溪县| 抚州市| 成安县| 太保市|