我们之前接触过的存储数据的方式都是:
1.字符串 2.列表 3.元组 4.字典
以上方式其实是属于同一种方式,即将数据存储在内存中
实际在开发过程中,数据存储主要有三种形式:
1.将数据存储到内存中;
优点:使用方便,读写速度快;
缺点:程序关闭的时候,内存会释放,数据会消失;
2.将数据写入到文件中;
优点:数据存储是永久性的,不易丢失;
缺点:打开关闭文件,操作数据都会比较麻烦;
3.将数据存储到数据库中;
优点:数据存储是永久性的,操作也比较方便;
缺点:数据库学习难度比较大;
数据库按照性质分为两大类:
1.关系型数据库
数据和数据之间存在着广泛的联系,例如:MySQL、sqlite;
优点:通过一个数据可以访问到其他的数据。
3.非关系型数据库
数据和数据之间没有联系,例如:Mongo
优点:数据为单独的,数据之间的耦合度比较低,对数据进行增删改不会影响其他数据
数据库按照规模大小分为四种:
1.大型数据库;例如: Oracle
2.中型数据库;例如: SQLserver
3.小型数据库;例如: MySQL
4.微型数据库;例如: sqlite
import sqlite3
# database
# 连接到一个数据库,如果数据库存在 则连接
# 如果不存在 则创建
con = sqlite3.connect('myDB')
# 设置数据库光标
# 光标使用来执行数据库命令的
cursor = con.cursor()
# 新建一个名字为my_info的表,里面有字段name、age和des
cursor.execute('CREATE TABLE if NOT EXISTS my_info(name text,age int,des text)')
con.commit()
一个项目里面可能用到多个数据库(绝大部分情况下只有一个);
一个数据库里面有多张表;
一个表里面有多个字段;
一个字段里面有多条数据;
增
往数据库的表里面添加数据的方法是:
cursor.execute('INSERT INTO my_info(name,age,des)VALUES ("烬",1000,"我于杀戮之中盛放,亦如黎明中的花朵")')
con.commit()
删
删除数据库表my_info里面的数据的方法是:
1.删除年龄大于40的数据
cursor.execute('DELETE FROM my_info WHERE age > 40')
con.commit()
2.删除年龄大于40且名字为烬的数据
cursor.execute('DELETE FROM my_info WHERE age>40 and name = "烬"')
con.commit()
3.删除表的全部数据
cursor.execute('DELETE FROM my_info')
con.commit()
删除整个表(慎用):
cursor.execute('DROP TABLE IF EXISTS my_info')
con.commit()
改
把名字烬改为德玛西亚之力
cursor.execute('UPDATE my_info SET name = "德玛西亚之力" WHERE name = "烬"')
con.commit()
查
查询整个表:
cursor.execute('SELECT * FROM my_info')
查询name=烬的数据:
cursor.execute('SELECT * FROM my_info WHERE name = "烬"')
查询age>30的数据:cursor.execute('SELECT name FROM my_info WHERE age>30')
查询到的数据需要抓取,有三种方式抓取数据:
注意:这里抓取的数据都是上面的查询到的数据。
1.抓取第一个数据:
result = cursor.fetchone()
2.抓取全部的数据:
result = cursor.fetchall()
3.抓取指定数量的数据:
# result = cursor.fetchmany(2)
最后用print打印输出即可:
print(result)