首页
学习
活动
专区
圈层
工具
发布

VBA与数据库——写个类操作ADO_事物

可以这样来理解:就像打开一个Excel文件,对这个文件的许多单元格都进行了输入操作、又增加了Sheet、又设置了各种格式等等。...这里说到的对Excel进行的各种各样的操作,在数据库里就相当于是对数据库进行了很多步修改操作(像Update、Insert、Delete语句都是修改操作)。...事务就相当于是那个保存的按钮,这些对数据库的修改操作,可以使用事务这个东西来控制要么一次性全部执行操作,要么就回到操作之前的状态。 这么控制有什么用呢?...,但是前面也说到过,仅仅是把Excel当作数据库来处理,Excel不是真正的数据库,很多数据库的特性是不支持的,其中事务就不能支持: 虽然执行了Rollback,但是insert的数据还是被保存了。...下面看下sqlite数据库: 可以看到,执行了Rollback,insert的数据没有保存到数据库。 执行了Commit,insert的数据才保存到数据库。

1.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【MySQL数据库】MySQL常用操作

    目录 数据库常用操作 查看所有数据库 创建数据库          切换(操作的数据库)         删除数据库         修改数据库编码          创建表 查看当前数据库所有表名称...查看指定某个表的创建语句 查看表结构  删除表 添加列  修改类名和类型  删除列 修改表名 插入 删除 更新 数据库常用操作 查看所有数据库    show databases; 创建数据库         ...create database if not exists mydb1; 切换(操作的数据库)          use mydb1; 删除数据库          drop database if exists...mydb1; 修改数据库编码          alter database mydb1 character set utf-8; 创建表 create table if not exists 表名(...name varchar(20),gender varchar(20), age int, birth date, address varchar(20), score double ); 查看当前数据库所有表名称

    10K20

    Python操作Mysql(连接、数据探查、写Excel)

    作者主页:不吃西红柿 简介:CSDN博客专家、HDZ核心组成员 公号「信息技术智库」知识内容如下: 本期重点:使用python探查mysql数据库,数据分析类人员必备 ---- 目录 一、缘起...二、转机 三、成果 四、过程  1、导包 2、连接数据库 3、数据探查 4、写execl ---- 一、缘起 事情是这样的,领导安排一个活,详细探查xx公司的数据治理,包括数据源,数据流,数据质量。...代码大致分为4个部分: 1、导包 #coding=utf-8 from __future__ import division import os,openpyxl,pymysql as MySQL 2、...连接数据库 print("开始连接ing") try: conn=MySQL.connect(host="127.0.0.1",port=3306,user="root",passwd="root...ll.append(re4[0][4]) result.append(ll) m=m+1 print(result) cur.close() conn.close() 4、写execl

    87030

    mysql主主复制写操作分区方案

    对于双主MySQL设置,确实需要对写操作进行分区以避免数据冲突。以下是一些可能的策略: 1. 基于应用的分区:在这种策略中,你可以将应用程序或服务分为两组,每组只写入一个数据库服务器。...例如,你可能有两个不同的数据库表,一个表的所有写操作都发生在服务器1,另一个表的所有写操作都发生在服务器2。 3. 基于时间的分区:在某些情况下,你可能会根据时间将写操作分区。...例如,你可能在一天中的一半时间内将所有写操作发送到服务器1,在剩下的时间内将所有写操作发送到服务器2。 4....使用中间件进行分区:有些中间件工具(如MySQL Router,ProxySQL等)可以根据某种规则(如查询类型,表名,应用程序等)来路由查询,你可以利用这些中间件工具来实现写操作分区。...这就需要采取一些策略,如按应用、按数据或者按时间进行写操作分区。

    47420

    MySQL数据库——数据库操作

    1.登入、登出数据库 #登入数据库 mysql -u"用户名" -p "密码" #查看当前时间 select now(); #登出数据库 quit; exit; ctrl + d 2.创建、查看、...选择、删除、修改数据库 创建数据库时,设置数据库的编码方式 CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8 COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为...general_ci; #查看数据库 show databases(); #选择数据库 use 数据库名; #删除数据库 drop databases 数据库名; #修改数据库字符集 alter...database 数据库名 default character set utf8 collate utf8_general_ci; #修改数据库名字 rename database 数据库名 to...新数据库名; 3.导入、导出数据库 #导入数据库 source /路径/xxx.sql; #导出数据库 mysql -uroot -p密码 数据库名<file.sql

    38.5K85

    MySQL 基本操作、数据库操作和表操作

    基本操作 启动MySQL:net start mysql 创建Windows服务:sc create mysql binPath = mysqld_bin_path 连接服务器 :mysql -h...地址 -P 端口 -u 用户名 -p 密码 显示哪些线程正在运行:SHOW PROCESSLIST 显示系统变量信息:SHOW VARIABLES 数据库操作 查看当前数据库:SELECT DATABASE...:SHOW CREATE DATABASE 数据库名 修改库的选项信息:ALTER DATABASE 库名 选项信息 删除库:DROP DATABASE [IF EXISTS] 数据库名 表操作...存储引擎 ENGINE = engine_name 表在管理数据时采用的不同的数据结构,结构不同会导致处理方式、提供的特性操作等不同 常见的引擎:InnoDB MyISAM Memory/Heap...ALTER TABLE语法) ALTER TABLE 表名 操作名 操作名 ADD[ COLUMN] 字段定义 -- 增加字段 AFTER 字段名 -- 表示增加在该字段名后面

    2.7K30

    MySQL数据库基本操作

    1.1.显示数据库 show databases; 1.2.创建数据库 这里以test为名称; create database test;//注意关键字不能做名称,如果非要用关键字做名字,则要用` `...创建一个使用utf8mb4字符集的 test 数据库 如果系统没有 test 的数据库,则创建一个使用utf8mb4字符集的 test 数据库,如果有则 不创建 create database if not...exists test charset utf8mb4; 1.3.使用数据库 use 数据库名; 1.4.删除数据库 drop database test; 2.常用数据类型 常用数据类型: INT:...整型 DECIMAL(M, D):浮点数类型  VARCHAR(SIZE):字符串类型 TIMESTAMP:日期类型 3.表的操作 要操作数据库中的表时,需要先使用该数据库: use test; 3.1...3.2 查看表结构 desc 表名; 3.3显示数据库中的表 show tables; 3.4.删除表 -- 删除 stu_test 表 drop table stu_test; -- 如果存在 stu_test

    56910

    python 操作MySQL数据库

    增删改操作 cursor.execute(sql) cursor.executemany(sql, seq_of_params) 5. 查询操作 6....pymysql.connections.Connection object at 0x00000205AC8E96D0> 成功连接后,获取的连接对象,有很多方法,常用的如下: cursor() 获取游标对象,操作数据库...游标对象 cursor = connection.cursor() 游标对象的常用方法: execute(operation, [, param]) 执行数据库操作,SQL语句 executemany(...ORM 示例写法 data = Book.query.all() 好处: 数据模型利于重用代码 有很多现成工具完成预处理,事物等 基于 ORM 的业务代码简单语义好,易理解 不必编写性能不佳的 sql...缺点: ORM 库不是轻量级工具,学习成本高 复杂的查询,无法表达 或者 性能不如原生SQL ORM 抽象掉了数据库层,无法了解底层操作,也就无法定制特殊的SQL 常用 python ORM 库 Django

    3.4K10

    Python 操作 MySQL 数据库

    Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix...不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范....MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。 如何安装MySQLdb?...数据库查询操作 Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。 fetchone(): 该方法获取下一个查询结果集。...OperationalError 指非用户控制的,而是操作数据库时发生的错误。例如:连接意外断开、 数据库名未找到、事务处理失败、内存分配错误等等操作数据库是发生的错误。

    12410

    Pandas操作MySQL数据库

    Pandas操作MySQL数据库 本文介绍的是如何使用Pandas来操作MySQL数据库。...这份数据是《MySQL经典50题》的一个表之一: mysql -u root -p -- 安装mysql,进入数据库输入暗文密码 show databases; -- 显示全部数据库 use test...; -- 使用某个数据库 show tables; -- 查看数据库下的全部表 select * from Student; -- 查看某个表的全部内容 操作MySQL 连接MySQL 以pymysql...: 连接数据库 import pandas as pd from sqlalchemy import create_engine # 依次填写MySQL的用户名、密码、IP地址、端口、数据库名 # create_engine...("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口/数据库",其他参数) engine = create_engine("mysql+pymysql://root:password

    1.3K10

    MYSQL数据库-基本操作

    MYSQL数据库-基本操作 零、前言 表的增删改查 一、Create 1、插入 2、更新和替换 二、Retrieve 1、SELECT 查询 2、WHERE 条件 3、结果排序 4、筛选分页结果 三、Update...FROM exam_result; 指定列查询 -- 指定列的顺序不需要按定义表的顺序来 SELECT id, name, english FROM exam_result; 查询字段为表达式 -- 表达式不包含字段...LIMIT n OFFSET s; 建议:对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死 示例:按 id 进行分页,每页 3 条记录,分别显示...删除孙悟空同学的考试成绩 删除整张表数据 注:删除整表操作要慎用 2、截断表 语法: TRUNCATE [TABLE] table_name 注意: 只能对整表操作,不能像 DELETE...一样针对部分数据操作 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚 会重置 AUTO_INCREMENT

    1.4K30

    Python - 操作 MySQL 数据库

    PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb 安装 pip3 install PyMySQL 完整的简单小栗子 #!...方法的参数 参数 功能 user 访问数据库的用户 password 访问数据库的密码 host Mysql 数据库服务所在的主机 port Mysql 数据库服务的端口号,默认值为 3306 db...insert 语句返回结果,其实就是执行成功了多少条数据 print('Insert %d students' % rows) # 只有调用了 commit 方法才能将数据落盘,即提交 insert 操作...rows = cursor.execute(sql) # 返回成功修改记录的条数 print('update %d students' % rows) # 调用 commit,才会将 update 操作提交...rows = cursor.execute(sql) # 返回成功修改记录的条数 print('delete %d students' % rows) # 调用 commit,才会将 delete 操作提交

    1.6K40
    领券