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

首頁 > 數據庫 > SQLite > 正文

sqlite簡明教程

2024-09-07 00:09:57
字體:
來源:轉載
供稿:網友

本文的主要目的是作為一個入門級教程,教你一些如何使用PySqlite來操作 Sqite 的一些基本的語句,更詳細的還要去參考想應的文檔以及編寫相應的測試程序。希望本文對你有幫助。

我以前的Blog sqlite一個輕巧的數據庫

PySqlite的主頁地址:http://pysqlite.sourceforge.net/上面有關于使用PySqlite的文檔

一、安裝

去PySqlite主頁上下載安裝包,有windows的版本,現支持 Python 2.2和2.3版本。

二、創建數據庫/打開數據庫

Sqlite使用文件作為數據庫,你可以指定數據庫文件的位置。

>>> import sqlite
>>> cx = sqlite.connect("d:/test.db", encoding='cp936')

使用sqlite的connect可以創建一個數據庫文件,上面我指明了路徑。當數據庫文件不存在的時候,它會自動創建。如果已經存在這個文件,則 打開這個文件。encoding指明保存數據所使用的編碼,這里cp936是 Python 中自帶的編碼,其實就是GBK編碼。cx為數據庫連接對象。

三、操作數據庫的基本對象

3.1 數據庫連接對象

象前面的cx就是一個數據庫的連接對象,它可以有以下操作:

  • commit()--事務提交
  • rollback()--事務回滾
  • close()--關閉一個數據庫連接
  • cursor()--創建一個游標

3.2 游標對象

所有sql語句的執行都要在游標對象下進行。

cu = cx.cursor()

這樣定義了一個游標。游標對象有以下的操作:

  • execute()--執行sql語句
  • executemany--執行多條sql語句
  • close()--關閉游標
  • fetchone()--從結果中取一條記錄
  • fetchmany()--從結果中取多條記錄
  • fetchall()--從結果中取出多條記錄
  • scroll()--游標滾動

關于對象的方法可以去 Python 主頁上查看DB API的詳細文檔。不過PySqlite到底支持DB API到什么程序,我就不知道了。我列出的操作都是支持的,不過我不是都使用過。

四、使用舉例

4.1 建庫

前面已經有了,不再重復。(這些例子,如果你有興趣,可以直接在Python的交互環境下試試)

4.2 建表

>>> cu=cx.cursor()
>>> cu.execute("""create table catalog (
id integer primary key,
pid integer,
name varchar(10) UNIQUE
)""")

上面語句創建了一個叫catalog的表,它有一個主鍵id,一個pid,和一個name,name是不可以重復的。

關于sqlite支持的數據類型,在它主頁上面的文檔中有描述,可以參考:Version2DataTypes

4.3 insert(插入)

>>> cu.execute("insert into catalog values(0, 0, 'name1')")
>>> cu.execute("insert into catalog values(1, 0, 'hello')")
>>> cx.commit()

如果你愿意,你可以一直使用cu游標對象。注意,對數據的修改必須要使用事務語句:commit()或rollback(),且對象是數據庫連接對象,這里為cx。

4.4 select(選擇)

>>> cu.execute("select * from catalog")
>>> cu.fetchall()
[(0, 0, 'name2'), (1, 0, 'hello')]

fetchall()返回結果集中的全部數據,結果為一個tuple的列表。每個tuple元素是按建表的字段順序排列。注意,游標是有狀態的,它 可以記錄當前已經取到結果的第幾個記錄了,因此,一般你只可以遍歷結果集一次。在上面的情況下,如果執行fetchone()會返回為空。這一點在測試時 需要注意。

>>> cu.execute("select * from catalog where id = 1")
>>> cu.fetchone()
(1, 0, 'hello')

對數據庫沒有修改的語句,執行后不需要再執行事務語句。

4.5 update(修改)

>>> cu.execute("update catalog set name='name2' where id = 0")
>>> cx.commit()
>>> cu.execute("select * from catalog")
>>> cu.fetchone()
(0, 0, 'name2')

4.6 delete(刪除)

>>> cu.execute("delete from catalog where id = 1")

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄山市| 郸城县| 聊城市| 朝阳区| 甘德县| 诸暨市| 马关县| 龙陵县| 盘锦市| 拉孜县| 旬邑县| 红原县| 齐齐哈尔市| 六安市| 平果县| 马边| 武强县| 福州市| 崇仁县| 惠安县| 景泰县| 孟村| 潞西市| 家居| 微博| 安乡县| 辉南县| 广汉市| 辽源市| 盐边县| 廊坊市| 绥芬河市| 噶尔县| 青海省| 华安县| 西宁市| 双江| 延吉市| 博兴县| 柳州市| 客服|