Python数据库操作

之前查看基础内容的时候,发现少了一篇有关于数据库的介绍,这里给大家补上。

在我们实际的开发过程中,有关数据的存储主要有三种形式。

1.将数据存储到内存当中,这样的话使用会很方便,读写速度也会很快,但是当我们程序关闭的时候,内存会被释放,数据也会随之消失。

2.将数据写入到文件当中,这样的话数据的存储是永久性的,而且不易丢失,但是是打开关闭文件,操作数据都会比较的麻烦。

3.将数据存储到数据库中,这样的话数据是永久性的,操作也是比较的方便,但是数据的学习的难度会比较大一点。

数据库按照性质来划分,可以分为两大类。
1.关系型数据库:数据和数据之间存在着广泛的联系,mysql  sqlite,可以通过一个数据访问到其他的数据

2.非关系型数据库:数据是单独的,数据之间的耦合度比较低,对数据进行增删改不会影响到其他的数据

数据库按照规模的大小来说,分为四种:

1.大型数据库:oracle

2.中型数据库:SQlserver

3.小型数据库:mySQL

4.微型数据库:sqlite

建立数据库的时候,我们先要引入一个包 import sqlite3

con=sqlite3.connect('myDB')  这个是连接到一个数据库,如果数据库存在则连接,如果数据库不存在,则创建。

cursor=con.cursor()   设置数据库光标,光标是用来执行数据库命令的。

1.建立数据库,以及建立数据库中的表格。

import  sqlite3
con=sqlite3.connect('myDB')
cursor=con.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS my_info(name text,age int, fond text)')
con.commit()

点击运行,会发现左边有一个如下图的内容,然后操作,如图所示:

把这个直接拉到右边的框里面,结果如下:

点击my_info,结果如下

如此,便是创建成功了。

接下来,我们要对数据库进行操作,数据库操作,我们可以对数据库进行增删改查操作。

一个项目里面可能会用到多个数据库,但是绝大部分的情况只有一个。

一个数据库里面可以有多张表格,一个表格中可以有多种字段,而一个字段里面可以有多条数据。

1.我们先进行增的操作

import  sqlite3
con=sqlite3.connect('myDB')
cursor=con.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS my_info(name text,age int, fond text)')
con.commit()
#添加数据
cursor.execute('INSERT INTO my_info(name, age, fond)VALUES ("科比",30,"打篮球")')
con.commit()

点击运行,然后重新打开my_info,结果如下:

这里我们只要修改VALUES后面的数据就行了,这里我们多添加几个数据。

这里我们就先添加这四个数据吧,然后我们就把添加数据这行代码注释掉,因为接下来我们要做其他的操作,如果不注释的话,就会运行一次,添加一次,所以,我们添加完成后,就把它先注释掉。

2.删除数据操作

如果我们想删除某一个数据,比如我们这里删除迈克尔杰克逊。我们可以这样写:

import  sqlite3
con=sqlite3.connect('myDB')
cursor=con.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS my_info(name text,age int, fond text)')
con.commit()
#删除数据
cursor.execute('DELETE FROM my_info WHERE name="迈克尔杰克逊"')
con.commit()

点击运行,进入my_info,刷新一下,Ctrl+F5.结果如下:

如果我们想删除一个条件的,比如大于年龄大于40的。

import  sqlite3
con=sqlite3.connect('myDB')
cursor=con.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS my_info(name text,age int, fond text)')
con.commit()
#删除数据
cursor.execute('DELETE FROM my_info WHERE age>40')
con.commit()

点击运行,进入my_info,刷新一下,Ctrl+F5.结果如下:

如果我们想多来几个限制的条件,我们可以在后面用and或者or连接。

cursor.execute('DELETE  FROM my_info WHERE age>30 or name="周杰伦"')
con.commit()
cursor.execute('DELETE  FROM my_info WHERE age>30 and name="周杰伦"')
con.commit()

or只要有一个条件满足,就直接删除;and必须两个条件同时满足才可以删除。

如果我们想删除表中的全部数据,操作如下:

cursor.execute('DELETE FROM my_info')
con.commit()

点击,运行,刷新一下。各位小伙伴看看是不是表中数据全部没了0.0

3.修改数据

由于我们数据在第二步,基本删完了,所以我们先要添加数据。第一步的操作,不再详述。

我们现在数据如下:

接下来,我们要修改数据,先修改单个的数据,我想把小明修改成小江。

import  sqlite3
con=sqlite3.connect('myDB')
cursor=con.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS my_info(name text,age int, fond text)')
con.commit()
#修改数据
cursor.execute('UPDATE my_info set name="小江" WHERE name="小明"')
con.commit()

点击运行,进入my_info,刷新一下结果为:

小明已经变成小江了。

想要修改多条数据时:

cursor.execute('UPDATE  my_info SET name="小玲",age=20 WHERE name="小红"')
con.commit()

点击运行,进入my_info,刷新一下结果为:

小红变成了小玲,年龄17变成了20.

4.查询数据

cursor.execute('SELECT *FROM my_info')
#抓取一个数据,数据为第一条数据
result=cursor.fetchone()
print(result)
#('小江', 18, '钓鱼')
cursor.execute('SELECT *FROM my_info')
#抓取全部的数据
result=cursor.fetchone()
print(result)
#[('小江', 18, '钓鱼'), ('小玲', 20, '跳舞'), ('小兰', 19, '唱歌'), ('小天', 20, '打篮球')]
cursor.execute('SELECT *FROM my_info')
#抓取几条数据,many()里面的数字代表几条数据,按照顺序获取
result=cursor.fetchmany(3)
print(result)
#[('小江', 18, '钓鱼'), ('小玲', 20, '跳舞'), ('小兰', 19, '唱歌')]

查询固定的某一条数据:

cursor.execute('SELECT *FROM  my_info WHERE  name="小天"')
result=cursor.fetchone()
print(result)
#[('小天', 20, '打篮球')]

在这个其实第二段代码,我们选择哪种都可以,但我们一般选择fetchone。

查询某一个条件的对应数据。

cursor.execute('SELECT name FROM my_info WHERE age>19')
result=cursor.fetchall()
print(result)
#[('小玲',), ('小天',)]

数据库,my_info的表格中年龄大于19的有小玲和小天,可见我们的输出结果是正确的。

最后,给大家说一个大家慎用的方法,删除整个表格。

cursor.execute('DROP TABLE IF EXISTS my_info')
con.commit()

点击运行,在下图的地方点击刷新。

然后,我们就会看到,整个列表就消失,被删除了。此方法要慎用。

给大家分享的基本的数据库操作就这么多了,数据库和类和方法的结合很多,有时间机会的话定会和大家分享。

 

  • 9
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jay丶萧邦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值