在学习MySQL模块的操作之前,我们先来学习一个名为SQLite的Python内置的数据库模块,SQLite是一种嵌入式数据库,而不是一个客户端的数据库引擎,所以它是一款轻型的遵守ACID的关系型数据库管理系统,它存在于一个相对小的C库中,经常被集成到各种应用程序中,这两节我们就来学习使用SQLite。
Python中内置了SQLite3模块,我们可以直接使用import导入。
我们在操作数据库的时候流程一般如下:
连接SQLite数据库的方式为sqlite.connect(‘数据库名’),我们通过一个例子来看一下,代码如下:
import sqlite3 con = sqlite3.connect('test.db') print('创建数据库文件成功') cursor = con.cursor()#创建一个游标 cursor.execute('''#执行SQL语句 create table user( #创建一个表 id int(8) primary key, name varchar(18), age int(8)) ''')#执行SQL语句 cursor.close() con.close()
执行之后:
输出结果为:
创建数据库文件成功
我们可以看到创建好的数据库文件,如果创建了已存在的user表将会出现错误信息。我们在创建的时候使用通常是使用单引号,这里为了方便大家理解使用三引号方式,我们在创建列表项的时候需要给出姓名和数据类型,主键能帮助我们保证数据的唯一性,当数据不易区分的时候我们需要引入主键,像学生信息这样的表单,我们要设置学号为主键来区分信息,即使出现姓名相同的学生,但也可以通过唯一的主键来区分他们。
在创建了表之后我们肯定要往表中添加数据,添加数据的语法格式为:
con.execute("insert into user (id,name,age) values (1001, '李华', 21,)")
注意插入的数据类型一定要和我们在创建表的时候一一对应,也就是id对应1001,name对应李华,age对应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('插入数据成功') cursor.close() con.commit() con.close()
输出结果为:
插入数据成功
如果我们重复运行当前代码,会出现如下错误,错误提示为存在了相同的信息,我们可以看出已经完成插入。
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
本文固定URL:https://www.dotcpp.com/course/308