赞
踩
实际开发过程当中,数据的存储过程主要有三种:
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())
- 结果为:
- >>['王花]'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。