在學(xué)習(xí)MySQL模塊的操作之前,我們先來學(xué)習(xí)一個名為SQLite的Python內(nèi)置的數(shù)據(jù)庫模塊,SQLite是一種嵌入式數(shù)據(jù)庫,而不是一個客戶端的數(shù)據(jù)庫引擎,所以它是一款輕型的遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它存在于一個相對小的C庫中,經(jīng)常被集成到各種應(yīng)用程序中,這兩節(jié)我們就來學(xué)習(xí)使用SQLite。
1. 創(chuàng)建數(shù)據(jù)庫文件流程
Python中內(nèi)置了SQLite3模塊,我們可以直接使用import導(dǎo)入。
我們在操作數(shù)據(jù)庫的時候流程一般如下:
2. 創(chuàng)建數(shù)據(jù)庫文件和表
連接SQLite數(shù)據(jù)庫的方式為sqlite.connect(‘?dāng)?shù)據(jù)庫名’),我們通過一個例子來看一下,代碼如下:
import sqlite3 con = sqlite3.connect('test.db') print('創(chuàng)建數(shù)據(jù)庫文件成功') cursor = con.cursor()#創(chuàng)建一個游標(biāo) cursor.execute('''#執(zhí)行SQL語句 create table user( #創(chuàng)建一個表 id int(8) primary key, name varchar(18), age int(8)) ''')#執(zhí)行SQL語句 cursor.close() con.close()
執(zhí)行之后:
輸出結(jié)果為:
創(chuàng)建數(shù)據(jù)庫文件成功
我們可以看到創(chuàng)建好的數(shù)據(jù)庫文件,如果創(chuàng)建了已存在的user表將會出現(xiàn)錯誤信息。我們在創(chuàng)建的時候使用通常是使用單引號,這里為了方便大家理解使用三引號方式,我們在創(chuàng)建列表項的時候需要給出姓名和數(shù)據(jù)類型,主鍵能幫助我們保證數(shù)據(jù)的唯一性,當(dāng)數(shù)據(jù)不易區(qū)分的時候我們需要引入主鍵,像學(xué)生信息這樣的表單,我們要設(shè)置學(xué)號為主鍵來區(qū)分信息,即使出現(xiàn)姓名相同的學(xué)生,但也可以通過唯一的主鍵來區(qū)分他們。
3. 插入操作
在創(chuàng)建了表之后我們肯定要往表中添加數(shù)據(jù),添加數(shù)據(jù)的語法格式為:
con.execute("insert into user (id,name,age) values (1001, '李華', 21,)")
注意插入的數(shù)據(jù)類型一定要和我們在創(chuàng)建表的時候一一對應(yīng),也就是id對應(yīng)1001,name對應(yīng)李華,age對應(yīng)21。
代碼如下:
import sqlite3 con = sqlite3.connect('test.db') cursor = con.cursor() con.execute("insert into user (id,name,age) values (1001, '李華', 21)") con.execute("insert into user (id,name,age) values (1002, '小明', 20)") con.execute("insert into user (id,name,age) values (1003, '小張', 21)") print('插入數(shù)據(jù)成功') cursor.close() con.commit() con.close()
輸出結(jié)果為:
插入數(shù)據(jù)成功
如果我們重復(fù)運行當(dāng)前代碼,會出現(xiàn)如下錯誤,錯誤提示為存在了相同的信息,我們可以看出已經(jīng)完成插入。
Traceback (most recent call last): File "C:/Users/輕煙/PycharmProjects/untitled1/Akgirutgnm/test.py", line 4, in <module> con.execute("insert into user (id,name,age) values (1001, '李華', 21)") sqlite3.IntegrityError: UNIQUE constraint failed: user.id
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導(dǎo)課程