经过前面基础知识的介绍,Python基础学习告一段落,接下来要进一步深入学习。今天要介绍的是有关数据库操作的学习。
一、数据存储主要有三种形式:
1.将数据存储到内存当中(优点:使用方便,读写速度快 缺点:程序关闭的时候,内存会被释放,数据会消失)
2.将数据写入到文件当中 (优点:数据存储是永久性的,不易丢失 缺点:打开关闭文件,操作数据都会比较麻烦)
3.将数据存储到数据库当中 (优点:数据存储为永久性的,操作也比较方便 缺点:数据库学习难度较大)
二、数据库按照性质分为两类:
1.关系型数据库:数据和数据之间存在着广泛联系 mysql sqlite
(优点:通过一个数据可以访问到其他的数据)
2.非关系型数据库:数据和数据之间没有联系 MongoDB redis
(优点:数据为单独的,数据之间的耦合度比较低,对数据进行增删改不会影响其他数据)
三、数据库按照规模大小分为四种:
1.大型数据库:oracle
2.中型数据库:SQLserver
3.小型数据库:mySQL
4.微型数据库:sqlite (大小大概只有4M左右)
在Python的学习过程中,使用的是sqlite3,直接使用,不用安装任何东西。
连接到一个数据库,如果数据库存在则链接,不存在则创建。
import sqlite3
# database
# 连接到一个数据库,如果数据库存在则链接;如果数据库不存在则创建
con = sqlite3.connect('myDB')
# 设置数据库光标 光标是用来执行数据库命令的
cursor = con.cursor()
在数据库中创建表,一张表里面有多个字段,一个字段里面有多条数据
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 ("刘伟",67,"在天愿作比翼鸟")')
con.commit()
删除数据
cursor.execute('DELETE FROM my_info WHERE age > 40')
con.commit()
cursor.execute('DELETE FROM my_info WHERE age > 30 and name ="杜甫"')
con.commit()
删除范围内数据
cursor.execute('DELETE FROM my_info WHERE age > 30 or name="王羲之"')
con.commit()
删除表中全部数据
cursor.execute('DELETE FROM my_info')
con.commit()
改数据
cursor.execute('UPDATE my_info set name="村长" WHERE name ="刘伟"')
con.commit()
查询数据
cursor.execute('SELECT * FROM my_info')
cursor.execute('SELECT * FROM my_info WHERE name="迪迦"')
cursor.execute('SELECT name FROM my_info WHERE age > 0')
# fechone 抓到,取到
result = cursor.fetchone()
result = cursor.fetchall()
result = cursor.fetchmany(3)
print(result)
删除整个表
cursor.execute('DROP TABLE IF EXISTS my_info')