python 数据库操作

实际开发过程当中,数据的存储过程主要有三种:

1.将数据存储到内存当中

优点:使用方便,读写速度快  缺点:程序关闭的时候 内存释放 数据消失  

2.将数据写到文件当中

 优点:数据存储是永久性的,不易丢失 缺点:打开关闭文件 操作数据比较麻烦

3.将数据存储到数据库当中

优点:数据存储是永久性的,操作也比较方便 缺点:数据库学习难度比较大

 数据库按照性质分为两大类:

 1.关系型数据库,数据和数据之间存在这广泛的联系 mysql sqlite

 优势:通过一个数据可以访问到其他的数据

 2.非关系型数据库,数据和数据之间没有关系 MongoDB redis

 优势:数据为单独的,数据之间的耦合度比较低,对数据进行增删改不会影响其他数据

 按照数据库规模大小来分 有四种:

 1.大型数据库:oracle 一般用于大型商业公司 例如淘宝京东

 2.中型数据库:SQLserver 使用非常广泛的数据库

3.小型数据库:mysql 一般用于小的产品公司或者公司内部数据库

4.微型数据库:sqlite 大小大概只有4M左右 经常用于移动端

python中用得是sqlite

一、连接和创建数据库:

1.引入sqlite3

# 引入sqlite3
import sqlite3

2.创建数据库和创建表:

语法:cursor.execute() 执行

create table if not exists 表名 (字段名 类型,字段名 类型,...)

# 连接到一个数据库 如果数据库存在则连接
# 如果不存在则创建
con = sqlite3.connect('myDb')
# # 设置数据库光标   光标是用来执行数据库命令的
cursor = con.cursor()
# execute执行 如果mtTable表不存在创建 mtTable表 (字段名)
cursor.execute('CREATE TABLE IF NOT EXISTS mtTable (name text,sex text,age int,height int)')
# commit提交
con.commit()

 创建完成之后 文件下会有个这样的图标

找到 View按照下图方式点击database 可在编译器右边出现一个数据库的控制窗口,将创建的数据库拖进去即可查看数据库的信息

二、数据库的操作:增删改查

1. 增:要注意添加的内容要与数据库的字段名相对应,一次只能增加一条数据

cursor.execute('INSERT  INTO  mtTable (name,sex,age,height) VALUES ("jerry","男",20,150)')
# commit提交
con.commit()

2.删:删除name='jerry'的数据

cursor.execute('DELETE FROM mtTable WHERE name = "jerry"')
con.commit()

3.改:set 设置要改成什么, where后面是条件

cursor.execute('UPDATE mtTable SET name="jerry" WHERE name="tom"')
con.commit()

4.查:select * from 表名 where 条件

cursor.execute('SELECT  * FROM  mtTable')
# fetchall 找到所有的结果 返回值是个列表
result = cursor.fetchall()
# fetchone 找到结果的第一个结果 返回值是一个元组
result = cursor.fetchone()
# fetchmany 找到指定数量的结果
result = cursor.fetchmany(1)
print(result)

5.数据库模糊查询:

import sqlite3
con = sqlite3.connect('nameDB')
cursor = con.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS name_table(name text)')
con.commit()
cursor.execute('INSERT INTO name_table(name) VALUES ("王花")')
con.commit()
# cursor.execute('INSERT INTO name_table(name) VALUES ("张三")')
# con.commit()

X_表示找到以X开头的,后面只有一位的数据

_X表示找到以X结尾的,前面只有一位的数据

 _ _多少位 就表示找到有几位数据

cursor.execute('SELECT  * FROM  name_table WHERE name LIKE "张_"')
结果为:
>>张三

%X 表示找到所有以X结束的数据

 X% 表示找到所有以X开始的数据

%X% 表示找到所有包含 X 的数据

# cursor.execute('SELECT  * FROM  name_table WHERE name LIKE "王%"')
print(cursor.fetchall())
结果为:
>>['王花']

cursor.execute('SELECT  * FROM  name_table WHERE name LIKE "%花%"')
print(cursor.fetchall())
结果为:
>>['王花]'

猜你喜欢

转载自blog.csdn.net/qq_42603652/article/details/81292922