第11天 | 12天搞定Python,數據庫操作

無論你學任何編程語言,數據庫都必須要學會,否則你的數據存在哪,總不能用手端着吧?數據庫是“按照數據結構來組織、存儲和管理數據的倉庫”,它的存儲空間很大,可以存放百萬條、千萬條、上億條數據。但是數據庫並不是隨意地將數據進行存放,是有一定的規則的,否則查詢的效率會很低。

中小型企業用得較多的是Sql Server和MySql數據庫,大型企業用得較多的是Oracle數據庫。在平時開發單機軟件時,大多數人會選擇用SQLite數據庫。

SQLite是一個無服務器、零配置的SQL 數據庫引擎,是在世界上最廣泛部署的 SQL 數據庫引擎它的源代碼不受版權限制。智能手機(Android或iPhone)本地內置支持的數據庫就是SQLite。Python內置就提供了對SQLite3數據庫操作的支持,在代碼中直接導入即可使用。

1. 創建數據庫和表

引入sqlite開發包,用connect打開(不存在就創建)數據庫文件,創建遊標cursor,執行Sql語句。

import sqlite3

# 創建一個數據庫
conn = sqlite3.connect("sales.db")
# 創建遊標
cursor = conn.cursor()
# 執行語句創建表的語句
createTable = "Create Table Customer(id int, name text, address text)"
cursor.execute(createTable)
# 關閉數據庫的鏈接
cursor.close()

輸出結果(sales.db文件內容)

 

 

 2. 插入數據

可單條或批量插入數據。記得加上conn.commit()進行命令提交。

import sqlite3

# 創建一個數據庫
conn = sqlite3.connect("sales.db")
# 創建遊標
cursor = conn.cursor()
# 添加單條數據
data = "1,'高科技企業','青藏高原1號1路222'"
cursor.execute('INSERT INTO Customer VALUES (%s)' % data)
# 添加單條數據
cursor.execute("INSERT INTO Customer values(?,?,?)",
               (2, "高高在上科技", "黃土高坡3號3單元"))
# 添加多條數據
cursor.executemany('INSERT INTO Customer VALUES (?,?,?)',
                   [(3, "牛逼公司", "在最牛的9棟9單元上"),
                    (4, "真的好科技無限公司", "在一個無人知道的地方")])
conn.commit()
# 關閉數據庫的鏈接
cursor.close()
conn.close()

輸出結果

 

 

 3. 修改數據

修改單行數據時,用id指定。修改全部時,可去掉where語句。

import sqlite3

# 創建一個數據庫
conn = sqlite3.connect("sales.db")
# 創建遊標
cursor = conn.cursor()
# 方式一
cursor.execute("UPDATE Customer SET name=? WHERE id=?", ("吹牛皮企業", 1))
# 方式二
cursor.execute("UPDATE Customer SET name='這裏有家皮包公司' WHERE id=2")
conn.commit()
# 關閉數據庫的鏈接
cursor.close()
conn.close()

輸出結果(第1和第2條記錄的客戶名稱name被修改了)

 

4. 刪除數據

用where指定刪除行的id,如果不指定,將刪除全部,這個要注意。

import sqlite3

# 創建一個數據庫
conn = sqlite3.connect("sales.db")
# 創建遊標
cursor = conn.cursor()
# 方式一
cursor.execute("DELETE FROM Customer WHERE id=?", (1,))
# 方式二
cursor.execute("DELETE FROM Customer WHERE id=2")
conn.commit()
# 關閉數據庫的鏈接
cursor.close()
conn.close()

輸出結果(第1和第2條記錄被刪除了)

......

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章