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
idnameage

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
idnameage
1001linweiqi19

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
idnameageaddress

 

以上所列出的6中语句,读者可以再终端进行验证。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小林学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值