首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

原来Python自带了数据库,用起来真方便!

这次推荐一个python自带的轻量级数据库模块-sqlite3,先要弄清楚什么是SQLite: SQLite是一种用C写的小巧的嵌入式数据库,它的数据库就是一个文件。...sqlite3模块不同于PyMySQL模块,PyMySQL是一个python与mysql的沟通管道,需要你在本地安装配置好mysql才能使用,而SQLite是python自带的数据库,不需要任何配置,使用...创建与SQLite数据库的连接 使用sqlite3.connect()函数连接数据库,返回一个Connection对象,我们就是通过这个对象与数据库进行交互。...数据库文件的格式是filename.db,如果该数据库文件不存在,那么它会被自动创建。该数据库文件是放在电脑硬盘里的,你可以自定义路径,后续操作产生的所有数据都会保存在该文件中。...# 创建与数据库的连接 conn = sqlite3.connect('test.db') 还可以在内存中创建数据库,只要输入特殊参数值:memory:即可,该数据库只存在于内存中,不会生成本地数据库文件

1.1K10

原来Python自带了数据库,用起来真方便!

这次推荐一个python自带的轻量级数据库模块-sqlite3,先要弄清楚什么是SQLite: ❝SQLite是一种用C写的小巧的嵌入式数据库,它的数据库就是一个文件。...❞ sqlite3模块不同于PyMySQL模块,PyMySQL是一个python与mysql的沟通管道,需要你在本地安装配置好mysql才能使用,而SQLite是python自带的数据库,不需要任何配置...创建与SQLite数据库的连接 使用sqlite3.connect()函数连接数据库,返回一个Connection对象,我们就是通过这个对象与数据库进行交互。...数据库文件的格式是filename.db,如果该数据库文件不存在,那么它会被自动创建。该数据库文件是放在电脑硬盘里的,你可以自定义路径,后续操作产生的所有数据都会保存在该文件中。...# 创建与数据库的连接 conn = sqlite3.connect('test.db') 还可以在内存中创建数据库,只要输入特殊参数值:memory:即可,该数据库只存在于内存中,不会生成本地数据库文件

2.2K40

mysql 主键增语句_MySQL 增主键

MySQL 5.7 及之前的版本,增主键最大值会在启动(重启)后从数据库中取出放到内存: SELECT MAX(ai_col) FROM table_name FOR UPDATE; 这样获取是通过计算的...从 MySQL 8.0 开始,增主键最大值会在每次修改后写入到 redo log,并且在每个检查点写入引擎私有的系统表。 如果是正常重启,则读取系统表里的值。...2 (mutex) 三种插入定义: 简单插入 能够提前知道插入的行数 批量插入 不能提前知道插入的行数 混合插入 批量插入中的一部分的 ID 是指定的(非 0 且非 NULL),另一部分未指定,使用数据库生成的增...其他 如果主动指定 ID 为 0 或者 NULL 插入,则会使用数据库生成的增 ID。...参考文档 为什么 MySQL增主键不单调也不连续 https://database.51cto.com/art/202004/614923.htm 《MySQL技术内幕——InnoDB存储引擎》

10.8K10

mysql主键增策略_MySQL 增主键机制

增主键:特指在增列上定义的主键。 增主键的优点是让主键索引保持递增顺序的插入,避免页分裂,索引更加紧凑。 1. 增值保存在哪? 不同的存储引擎保存增值的策略不一样; a....对于MyISAM引擎,增值保存在数据文件中; b. Innodb引擎,mysql5.7之前,增值保存在内存中,而且不会持久化增值。...每次重启后第一次打开表,都会去查找增值的最大值max(id), 并设置表当前增值为max(id) + 1; mysql8.0, 增值变更记录在了redo log中,重启时依靠redo log恢复重启之前的值...增值修改发生在插入数据的操作之前,如果插入失败,增值不会再修改回去; b. 事务回滚也不会将自增值修改回去; c. 为了减少增id锁带来的性能影响,mysql不会修改回去之前的增值; 4....而对于批量插入数据的语句(select … insert,replace … select 和 load data 语句),MySQL 有一个批量申请增 id 的策略(注:该策略是导致增 id 不连续的第三种原因

9.4K50

学习MySQL 5.7的Sys库使用(一)

学习MySQL 5.7的Sys库使用(上) MySQL 5.7 引入sys库 用于帮助DBA分析一些问题。 sys库里面就是一些存储过程,视图,函数等。...查看sys库的版本 select * from sys.version; +-------------+---------------+ | sys_version | mysql_version |...metrics : DB的内部的统计值 processlist : 线程相关的信息(包含内部线程及用户连接) ps_ : 没有工具统计的一些变量(没看出来存在的价值) schema : 表结构相关的信息,例如: 增...Sys库能做什么,那么我们先来看看以下的问题,对于数据库,你有没有以下的疑问? 1. 谁使用了最多的资源? 基于IP或是用户? 2. 大部分连接来自哪里及发送的SQL情况? 3....MySQL内部现在有多个线程在运行? ...

1.3K20

学习MySQL 5.7的Sys库使用(一)

学习 MySQL 5.7 的 Sys 库使用(上) MySQL 5.7 引入 sys库 用于帮助 DBA 分析一些问题。 sys 库里面就是一些存储过程,视图,函数等。...Sys库里的数据来源 Sys库所有的数据源来自:performance_schema 。目标是把 Performance_schema 的把复杂度降低,让 DBA 能更好的阅读这个库里的内容。...查看 sys库 的版本 select * from sys.version; +-------------+---------------+ | sys_version | mysql_version..._开头是库里的配置表: sys_config 用于 sys schema 库的配置 视图: host : 以 IP 分组相关的统计信息 innodb : innodb buffer 相关信息 io :...: DB 的内部的统计值 processlist : 线程相关的信息(包含内部线程及用户连接) ps_ : 没有工具统计的一些变量(没看出来存在的价值) schema : 表结构相关的信息,例如:

1.5K40

数据库中设置列字段增(Oracle和Mysql

oracle 1、创建一个序列,然后在需要增的字段里使用它 drop sequence seq_stu create sequence seq_stu start with 22 Increment...by 1 maxvalue 999 nocache nocycle; --这是最详细的一种序列的创建,指定了序列从22开始,到999结束,每次使用后都增1 create sequence seq_stu...--这是最简单的一种序列的创建方式,指定了序列从1开始,每次使用后都增1 drop sequence seq_stu; --删除序列(seq_stu为序列名) 2、增数据的插入(序列名.nextval...表名; 注意:截断表,即删除所有数据,只保留表结构 Mysql 创建表时直接制定增列/字段 1、通过点击点击相关表选择“设计表”进行设置 ?...TRUNCATE TABLE 表名; 注意:会删除表中的数据,只有在MySQL中,TABLE字段可省略

7.2K20

MySQL 约束与增长

# MySQL 约束与增长 mysql约束 基本介绍 primary key(主键)-基本使用 not null和unique(唯一) foreign key(外键) check 商店售货系统表设计案例...增长 增长基本介绍 增长使用细节 # mysql约束 # 基本介绍 约束用于确保数据库的数据满足特定的商业规则。...在mysql中,约束包括: not null、unique,primary key,foreign key,和check五种。...# 增长基本介绍 # 增长使用细节 一般来说增长是和primary key配合使用的 增长也可以单独使用[但是需要配合一个unique] 增长修饰的字段为整数型的(虽然小数也可以但是非常非常少这样使用...) 增长默认从1开始,你也可以通过如下命令修改altertable表名auto increment=新的开始值; 如果你添加数据时,给增长字段(列)指定的有值,则以指定的值为准,如果指定了增长,一般来说

3.1K30
领券