日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2

sqlite教程

SQLite – Python

閱讀 (2223)

SQLite - Python

安裝

SQLite3 可使用 sqlite3 模塊與 Python 進行集成。sqlite3 模塊是由 Gerhard Haring 編寫的。它提供了一個與 PEP 249 描述的 DB-API 2.0 規(guī)范兼容的 SQL 接口。您不需要單獨安裝該模塊,因為 Python 2.5.x 以上版本默認自帶了該模塊。

為了使用 sqlite3 模塊,您首先必須創(chuàng)建一個表示數據庫的連接對象,然后您可以有選擇地創(chuàng)建光標對象,這將幫助您執(zhí)行所有的 SQL 語句。

Python sqlite3 模塊 API

以下是重要的 sqlite3 模塊程序,可以滿足您在 Python 程序中使用 SQLite 數據庫的需求。如果您需要了解更多細節(jié),請查看 Python sqlite3 模塊的官方文檔。

序號API & 描述
1sqlite3.connect(database [,timeout ,other optional arguments])

該 API 打開一個到 SQLite 數據庫文件 database 的鏈接。您可以使用 ":memory:" 來在 RAM 中打開一個到 database 的數據庫連接,而不是在磁盤上打開。如果數據庫成功打開,則返回一個連接對象。

當一個數據庫被多個連接訪問,且其中一個修改了數據庫,此時 SQLite 數據庫被鎖定,直到事務提交。timeout 參數表示連接等待鎖定的持續(xù)時間,直到發(fā)生異常斷開連接。timeout 參數默認是 5.0(5 秒)。

如果給定的數據庫名稱 filename 不存在,則該調用將創(chuàng)建一個數據庫。如果您不想在當前目錄中創(chuàng)建數據庫,那么您可以指定帶有路徑的文件名,這樣您就能在任意地方創(chuàng)建數據庫。

2connection.cursor([cursorClass])

該例程創(chuàng)建一個 cursor,將在 Python 數據庫編程中用到。該方法接受一個單一的可選的參數 cursorClass。如果提供了該參數,則它必須是一個擴展自 sqlite3.Cursor 的自定義的 cursor 類。

3cursor.execute(sql [, optional parameters])

該例程執(zhí)行一個 SQL 語句。該 SQL 語句可以被參數化(即使用占位符代替 SQL 文本)。sqlite3 模塊支持兩種類型的占位符:問好和命名占位符(命名樣式)。

例如:cursor.execute("insert into people values (?, ?)", (who, age))

4connection.execute(sql [, optional parameters])

該例程是上面執(zhí)行的由光標(cursor)對象提供的方法的快捷方式,它通過調用光標(cursor)方法創(chuàng)建了一個中間的光標對象,然后通過給定的參數調用光標的 execute 方法。

5cursor.executemany(sql, seq_of_parameters)

該例程對 seq_of_parameters 中的所有參數或映射執(zhí)行一個 SQL 命令。

6connection.executemany(sql[, parameters])

該例程是一個由調用光標(cursor)方法創(chuàng)建的中間的光標對象的快捷方式,然后通過給定的參數調用光標的 executemany 方法。

7cursor.executescript(sql_script)

該例程一旦接收到腳本,會執(zhí)行多個 SQL 語句。它首先執(zhí)行 COMMIT 語句,然后執(zhí)行作為參數傳入的 SQL 腳本。所有的 SQL 語句應該用分號(;)分隔。

8connection.executescript(sql_script)

該例程是一個由調用光標(cursor)方法創(chuàng)建的中間的光標對象的快捷方式,然后通過給定的參數調用光標的 executescript 方法。

9connection.total_changes()

該例程返回自數據庫連接打開以來被修改、插入或刪除的數據庫總行數。

10connection.commit()

該方法提交當前的食物。如果您未調用該方法,那么自您上一次調用 commit() 以來所做的任何動作對其他數據庫連接來說是不可見的。

11connection.rollback()

該方法回滾自上一次調用 commit() 以來對數據庫所做的更改。

12connection.close()

該方法關閉數據庫連接。請注意,這不會自動調用 commit()。如果您之前未調用 commit() 方法,就直接關閉數據庫連接,您所做的所有更改將全部丟失!

13cursor.fetchone()

該方法獲取查詢結果集中的下一行,返回一個單一的序列,當沒有更多可用的數據時,則返回 None。

14cursor.fetchmany([size=cursor.arraysize])

該方法獲取查詢結果集中的下一行組,返回一個列表。當沒有更多的可用的行時,則返回一個空的列表。該方法嘗試獲取由 size 參數指定的盡可能多的行。

15cursor.fetchall()

該例程獲取查詢結果集中所有(剩余)的行,返回一個列表。當沒有可用的行時,則返回一個空的列表。

連接數據庫

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

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')

print "Opened database successfully";

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

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

創(chuàng)建表

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

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.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.close()

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

Opened database successfully
Table created successfully

INSERT 操作

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

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.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í)行時,它會在 COMPANY 表中創(chuàng)建給定記錄,并會顯示以下兩行:

Opened database successfully
Records created successfully

SELECT 操作

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

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

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()

上述程序執(zhí)行時,它會產生以下結果:

Opened database successfully
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  20000.0

ID =  2
NAME =  Allen
ADDRESS =  Texas
SALARY =  15000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully

UPDATE 操作

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

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.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_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()

上述程序執(zhí)行時,它會產生以下結果:

Opened database successfully
Total number of rows updated : 1
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  25000.0

ID =  2
NAME =  Allen
ADDRESS =  Texas
SALARY =  15000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully

DELETE 操作

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

#!/usr/bin/python

import sqlite3

conn = sqlite3.connect('test.db')
print "Opened database successfully";

conn.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()

上述程序執(zhí)行時,它會產生以下結果:

Opened database successfully
Total number of rows deleted : 1
ID =  1
NAME =  Paul
ADDRESS =  California
SALARY =  20000.0

ID =  3
NAME =  Teddy
ADDRESS =  Norway
SALARY =  20000.0

ID =  4
NAME =  Mark
ADDRESS =  Rich-Mond
SALARY =  65000.0

Operation done successfully
關閉
程序員人生
主站蜘蛛池模板: 韩日一级| 欧美久久一区二区三区 | 最近中文字幕免费 | 国产精品久久网 | 中文字幕国产精品 | 日日夜夜草 | 亚洲成人三区 | 在线免费国产 | 欧美一级精品片在线看 | 中文字幕免费观看 | 6—12呦国产精品 | 久一久久| 岛国av免费观看 | 日韩午夜视频在线观看 | 精品久久免费 | 日本毛片在线观看 | 中文字幕精品一区二区三区精品 | 91麻豆精品国产自产在线观看一区 | 精品国产免费久久久久久尖叫 | 国产一区二区三区片 | 国产亚洲精品久久久久久牛牛 | 久久久免费精品 | 一区二区三区在线观看视频 | 黄色直接看 | 亚洲2020天天堂在线观看 | 在线播放国产视频 | 青青草国产精品 | 亚洲免费毛片 | 九九热在线视频 | 另类专区亚洲 | 爱情岛论坛首页永久网址 | 国产精品福利片 | 男人操女人免费 | 欧美精品网| 精品一区久久久 | 在线国产一区二区 | 成人区精品一区二区 | 成人免费视频一区二区 | 日韩av手机在线 | 天天操天天干天天 | 成人午夜影院 |