python 數據庫操作

 

實際開發過程當中,數據的存儲過程主要有三種:

1.將數據存儲到內存當中

優點:使用方便,讀寫速度快  缺點:程序關閉的時候 內存釋放 數據消失  

2.將數據寫到文件當中

 優點:數據存儲是永久性的,不易丟失 缺點:打開關閉文件 操作數據比較麻煩

3.將數據存儲到數據庫當中

優點:數據存儲是永久性的,操作也比較方便 缺點:數據庫學習難度比較大

 數據庫按照性質分爲兩大類:

 1.關係型數據庫,數據和數據之間存在這廣泛的聯繫 mysql sqlite

 優勢:通過一個數據可以訪問到其他的數據

 2.非關係型數據庫,數據和數據之間沒有關係 MongoDB redis

 優勢:數據爲單獨的,數據之間的耦合度比較低,對數據進行增刪改不會影響其他數據

 按照數據庫規模大小來分 有四種:

 1.大型數據庫:oracle 一般用於大型商業公司 例如淘寶京東

 2.中型數據庫:SQLserver 使用非常廣泛的數據庫

3.小型數據庫:mysql 一般用於小的產品公司或者公司內部數據庫

4.微型數據庫:sqlite 大小大概只有4M左右 經常用於移動端

python中用得是sqlite

一、連接和創建數據庫:

1.引入sqlite3

# 引入sqlite3
import sqlite3

2.創建數據庫和創建表:

語法:cursor.execute() 執行

create table if not exists 表名 (字段名 類型,字段名 類型,...)

# 連接到一個數據庫 如果數據庫存在則連接
# 如果不存在則創建
con = sqlite3.connect('myDb')
# # 設置數據庫光標   光標是用來執行數據庫命令的
cursor = con.cursor()
# execute執行 如果mtTable表不存在創建 mtTable表 (字段名)
cursor.execute('CREATE TABLE IF NOT EXISTS mtTable (name text,sex text,age int,height int)')
# commit提交
con.commit()

 創建完成之後 文件下會有個這樣的圖標

找到 View按照下圖方式點擊database 可在編譯器右邊出現一個數據庫的控制窗口,將創建的數據庫拖進去即可查看數據庫的信息

二、數據庫的操作:增刪改查

1. 增:要注意添加的內容要與數據庫的字段名相對應,一次只能增加一條數據

cursor.execute('INSERT  INTO  mtTable (name,sex,age,height) VALUES ("jerry","男",20,150)')
# commit提交
con.commit()

2.刪:刪除name='jerry'的數據

cursor.execute('DELETE FROM mtTable WHERE name = "jerry"')
con.commit()

3.改:set 設置要改成什麼, where後面是條件

cursor.execute('UPDATE mtTable SET name="jerry" WHERE name="tom"')
con.commit()

4.查:select * from 表名 where 條件

cursor.execute('SELECT  * FROM  mtTable')
# fetchall 找到所有的結果 返回值是個列表
result = cursor.fetchall()
# fetchone 找到結果的第一個結果 返回值是一個元組
result = cursor.fetchone()
# fetchmany 找到指定數量的結果
result = cursor.fetchmany(1)
print(result)

5.數據庫模糊查詢:

import sqlite3
con = sqlite3.connect('nameDB')
cursor = con.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS name_table(name text)')
con.commit()
cursor.execute('INSERT INTO name_table(name) VALUES ("王花")')
con.commit()
# cursor.execute('INSERT INTO name_table(name) VALUES ("張三")')
# con.commit()

X_表示找到以X開頭的,後面只有一位的數據

_X表示找到以X結尾的,前面只有一位的數據

 _ _多少位 就表示找到有幾位數據

cursor.execute('SELECT  * FROM  name_table WHERE name LIKE "張_"')
結果爲:
>>張三

%X 表示找到所有以X結束的數據

 X% 表示找到所有以X開始的數據

%X% 表示找到所有包含 X 的數據

# cursor.execute('SELECT  * FROM  name_table WHERE name LIKE "王%"')
print(cursor.fetchall())
結果爲:
>>['王花']

cursor.execute('SELECT  * FROM  name_table WHERE name LIKE "%花%"')
print(cursor.fetchall())
結果爲:
>>['王花]'

 

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