python|python中使用SQLite3对数据库的基本操作(基于ubuntu操作系统)

1.SQLite3 1.1定义
SQLite,是一款轻型的数据库,是遵守ACID(事务特性)的关系型数据库管理系统。

1.1.1关系型数据库
是一种采用了关系模型(二维表模型)来组织数据的数据库。(二维表如下图所示)


Id
name
score
1



2



3








1.1.1.5 事务
(1):指一系列的操作的集合
(2):作用:保证数据的完整性,要么操作都成功,要么操作都失败
(3):主要操作类型:
1:开启事务(begin):
开启事务后,在这区间的任何操作都不会正真提交到数据库当中。
2:提交事务(commit):
当执行了提交事务以后,才会将所有操作提交到数据库当中。
3:回滚事务(rollback):
结束事务,相当于所有操作完全没有发生过。
在对数据库进行操作时,默认会开启事务。(就是说在你执行sql语句时不需要写begin和commit,它会默认的写上这两,虽然你只打了sql语句的代码,但实际执行时是先开启事务--执行sql语句--提交事务)
1.1.2ACID(事务特性)

1、A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败。就比如说你为了达成某一目标需要完成多件事,其中多件事的集合就可以称为一系列操作,而原子性要求这些事情要么全部成功,要么全部失败。


2、C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。


3、I (Isolation) 独立性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。


4、D (Durability) 持久性
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失
接下来给大家来讲述一下SQLite3中的基本操作语言:
在SQLite3中有两种操作命令:
1:系统命令(通常是以‘.’开头的命令)
2:sql命令(通常是以‘;’结尾的语句)

常用的系统命令
.help帮助(如果想看更多系统命令可以在终端输入)
.quit 退出SQLite(.exit)
.table 打开当前数据库的表格
.schema 查看表的结构
.indecs 查看表中的索引
常用的sql语句
在学习基本的sql语句之前,我们先要了解一下其中需要的格式
import sqlite3 conn=sqlite3.connect('ff.db') cur=conn.cursor()

如果,首先要在python里已用SQLite3
第二行建立起python对数据库的联系,后面的’ff.db‘是作者创建的一个数据库
要注意:系统如果在当前文件夹中未找到相对应的数据库,则会默认在打开python的文件夹内默认创建,如果数据库在文件夹外,则连接时要输入该数据库的路径
第三行则是创建一个游标函数(可以理解为打开一个命令中枢,只有打开了命令中枢,才能对sql语句进行执行等一系列操作)
cur.execute()

这个函数是对sql语句的执行(不难看出这是基于游标函数下的执行操作)
基本sql语句
1:在python上创造表格
import sqlite3 conn=sqlite3.connect('ff.db') cur=conn.cursor() sql=''' create table ff1( id INT, name TEXT, age INT)''' cur.execute(sql) conn.close()#对数据库的操作结束后,记得关闭连接

sql语言句式:'create table 表格名(列名 数据类型)'(要加入新列时要用’,‘隔开)
可以理解为在数据库中创造了如下的表格:
ff1
id name age
2:在python上插入数据
conn=sqlite3.connect('ff.db') cur=conn.cursor() sql=''' insert into ff1 values(1001,'linweiqi',19)''' cur.execute(sql) conn.close()

sql语言句式:'insert into 表格名 values(?,?,?)'(问号代表你要插入的数据,其中需要注意TEXT数据类型输入数据时要加’ ‘)
可以理解为在数据库中表格插入了如下数据:
ff1
id name age
1001 linweiqi 19

3:在python中查询数据
conn=sqlite3.connect('ff.db') cur=conn.cursor() sql=''' select * from ff1; ''' cur.execute(sql) print(cur.fetchall())#打印出结果 conn.close()

sql语言句式:'select * from 表格名'(*表示提取出全部数据)
4:在python中删除某一行:
conn=sqlite3.connect('ff.db') cur=conn.cursor() sql=''' delete from ff1 where id=1001; ''' cur.execute(sql) conn.commit() conn.close()

sql语言句式:'delete from 表格名 where 条件;'(其中条件指的对你想删除行的定位)

5:在python中更新数据:
conn=sqlite3.connect('ff.db') cur=conn.cursor() sql=''' update ff1 set name='linweiqi2' where id=1002''' cur.execute(sql) conn.commit() conn.close()

sql语言句式:'update 表格名 set 列名=’你想更改的数据‘ where 条件'
6:在python中增加新列:
conn=sqlite3.connect('ff.db') cur=conn.cursor() sql=''' alter table ff1 add column address TEXT; ''' cur.execute(sql) conn.commit()

sql语言句式:'alter table 表格名 add column 列名 数据类型'
可以理解为在数据库中表格中新加入一列:
ff1
id name age address

【python|python中使用SQLite3对数据库的基本操作(基于ubuntu操作系统)】以上所列出的6中语句,读者可以再终端进行验证。

    推荐阅读