在学习MySQL模块的操作之前,我们先来学习一个名为SQLite的Python内置的数据库模块,SQLite是一种嵌入式数据库,而不是一个客户端的数据库引擎,所以它是一款轻型的遵守ACID的关系型数据库管理系统,它存在于一个相对小的C库中,经常被集成到各种应用程序中,这两节我们就来学习使用SQLite。

1. 创建数据库文件流程

        Python中内置了SQLite3模块,我们可以直接使用import导入。

        我们在操作数据库的时候流程一般如下:

sqlite1

        

2. 创建数据库文件和表

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

        执行之后:

sqlite2

        输出结果为:

创建数据库文件成功

        我们可以看到创建好的数据库文件,如果创建了已存在的user表将会出现错误信息。我们在创建的时候使用通常是使用单引号,这里为了方便大家理解使用三引号方式,我们在创建列表项的时候需要给出姓名和数据类型,主键能帮助我们保证数据的唯一性,当数据不易区分的时候我们需要引入主键,像学生信息这样的表单,我们要设置学号为主键来区分信息,即使出现姓名相同的学生,但也可以通过唯一的主键来区分他们。

3. 插入操作

        在创建了表之后我们肯定要往表中添加数据,添加数据的语法格式为:

        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


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)