mysql update语句

触发器

一个人想着一个人 提交于 2019-12-03 05:30:25
MySQL触发器用法详解 一、MySQL触发器创建: 1、MySQL触发器的创建语法: 1 2 3 4 5 6 7 CREATE  [DEFINER = { 'user' | CURRENT_USER }]  TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW [trigger_order] trigger_body   2、MySQL创建语法中的关键词解释: 字段 含义 可能的值 DEFINER= 可选参数,指定创建者,默认为当前登录用户(CURRENT_USER); 该触发器将以此参数指定的用户执行,所以需要考虑权限问题; DEFINER='root@%' DEFINER=CURRENT_USER trigger_name 触发器名称,最好由表名+触发事件关键词+触发时间关键词组成; trigger_time 触发时间,在某个事件之前还是之后; BEFORE、AFTER trigger_event 触发事件,如插入时触发、删除时触发;   INSERT:插入操作触发器,INSERT、LOAD DATA、REPLACE时触发;   UPDATE:更新操作触发器,UPDATE操作时触发;   DELETE:删除操作触发器,DELETE、REPLACE操作时触发; INSERT

MySQL数据库5事务、视图、触发器、函数、数据库的备份

时光怂恿深爱的人放手 提交于 2019-12-03 05:19:33
目录 一、事务(important) 1.1什么是事务? 1.2解决办法 1.2.1事务的语法 1.2.2使用事务解决转账问题代码演示 1.2.3rollback 1.3事务的特性(important) 二、存储引擎(important) 2.1 innodb 2.2 myisam 2.3两种引擎的区别 三、视图 四、触发器 4.1简述 4.2用法 4.2.1增加 4.2.2删除 五、存储过程 5.1存储过程的创建 5.2存储过程的删除 六、函数 七、数据库的备份 7.1数据库的备份 7.2数据库的导入 也许人生就是这样,我们花大把时间迷茫,然后在几个瞬间成长。——无意间看到的一句话 一、事务(important) 1.1什么是事务? 事务指一组操作要么成功要么失败,在成功修改数据前原来的数据不会受影响,如果修改成功则数据将被更改,如果失败,则原数据库数据不变。 思考:银行转账,转账人如果已经进行了转账操作,而在对方还未收到转账时如果发生网络故障,对方没有收到钱,这个转着账如何处理?这时候就用到了事务,转账要么成功,两边数据都修改,要么失败,两边的数据都不变。 代码演示 create table user ( id int auto_increment primary key , name varchar (32) not null default '', salary int

MySQL 05

空扰寡人 提交于 2019-12-03 05:19:04
目录 事务 基本概念 四大特性(ACID) 使用方法 存储引擎 视图 基本概念 使用方法 触发器 基本概念 使用方法 存储过程 基本概念 使用方法 数据备份 备份 导入 函数 事务 基本概念 事务: Transaction 事务是由一个或多个sql语句构成的逻辑单元, 是一个整体的概念 作用 : 使得一系列sql语句要么全部完成, 要目全部不完成, 保证了数据库的完整性 四大特性(ACID) 原子性 ( A tomicity): 事务是最小执行单位, 不可再分, 既一个事务中的所有操作, 要么全部完成, 要么全部不完成 一致性 ( C onsistency): 事务开始之前和结束之后, 数据库的完整性没有被破坏 隔离性 ( I solation): 数据库支持多个事务并发, 隔离性可以防止事务交叉执行导致的不一致 读未提交 读提交 可重复读 串行化 持久性 ( D urability): 事务处理结束后, 对数据的修改时永久的 使用方法 start transaction; 开启 commit; 提交 rollback; 回滚 第一步: 开启事务, 执行操作 # alpha 对 bravo 转账 100 mysql> select * from balance; +----+-------+-------+ | id | name | money | +----+-------+-

Linux上安装MySQL数据库

柔情痞子 提交于 2019-12-03 05:18:06
声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Linux上安装MySQL数据库: 解压包安装(没有data目录安装方式) 以下是解压包的下载地址 https://dev.mysql.com/downloads/mysql/ 1.下载MySQL解压包 2.压缩MySQL安装包 3.修改my-default.ini文件 basedir = “C:\Program Files\mysql-5.7.16-winx64” datadir = “C:\ProgramData\mysql\data” 记得把数据库数据文件地址存放在其他目录下 4.把my-default.ini改成my.ini 5.以管理员身份启动dos进入bin目录 cd C:\Program Files\mysql-5.7.16-winx64\bin\ 6.在dos里执行 MySQL –initialize-insecure 7.执行mysqld程序,查看进程是否有mysqld程序 8.你现在的mysql数据库每次重启都要重新启动mysqld程序 9.在windows中把mysql安装到服务器中 mysqld -install mysqld –install MySQL 如何进入数据库呢? 安装好后,用户名是:root

1101 笔记

*爱你&永不变心* 提交于 2019-12-03 05:12:45
目录 1. 事务 为什么要使用 使用 特性 原子性 一致性 隔离性 持久性 2.存储引擎 InnoDB MYIsam 区别 3.视图 定义 增加视图 查看视图 删除视图 4.触发器 语法 增加触发器 查看触发器 删除触发器 5.存储过程 定义 优点 缺点 总结 语法 创建 使用 删除 6.函数 7.数据库备份 语法 1. 事务 mysql主要用于处理操作量大,复杂度高的数据,比如在人员管理系统 你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务! 在mysql中只有使用了InnoDB数据库引擎的数据库或表才支持事务 事务处理可以维护数据库的完整性,保证成批的sql语句要么全部执行,要么全部不执行 事务用来管理insert,update,delete语句 为什么要使用 很多时候一个数据操作,不是一个sql语句就完成的,可能有很多个sql语句,如果部分sql执行成功而部分sql执行失败将导致数据错乱 eg: 转账 == 转入转出均成功,才能认为操作成功 使用 开启事务: start transaction sql语句: 提交: commit 回滚: rollback // 影响所有,回滚到初始 start transaction; --开启事物,在这条语句之后的sql将处在同一事务,并不会立即修改数据库

Linux下安装MySQL

浪尽此生 提交于 2019-12-03 05:11:40
安装步骤 1、下载     下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads     下载版本:我这里选择的5.6.33,通用版,linux下64位     也可以直接复制64位的下载地址,通过命令下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz 0、卸载老版本MySQL 查找并删除mysql有关的文件 find / - name mysql rm -rf 上边查找到的路径,多个路径用空格隔开 #或者下边一条命令即可 find / - name mysql|xargs rm -r Paste_Image.png 1、在安装包存放目录下执行命令解压文件: tar -zxvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz 2、删除安装包,重命名解压后的文件 rm -f mysql -5.6 .31 -linux-glibc2 .5 -x86_64.tar.gz mv mysql -5.6 .31 -linux-glibc2 .5 -x86_64/ mysq 3、添加mysql用户组和mysql用户

Day 37 SQL基础(五)

牧云@^-^@ 提交于 2019-12-03 05:01:07
目录 事务处理 开始事务 回滚事务 提交事务 事务的特性 存储引擎 什么是存储引擎 各存储引擎的特性 概览 各种存储引擎的特性 各存储引擎的介绍 视图 创建视图 删除视图 修改视图 触发器 创建触发器 删除触发器 存储过程 创建无参存储过程 创建有参存储过程 执行存储过程 删除存储过程 SQL函数 事务处理 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性 开始事务 start transaction 标识事务的开始 回滚事务 rollback 用来回退(撤销)SQL语句 select * from users; start transaction; update users set age = 18 where id = 120; delete from users where name = 'tiny'; rollback; select * from users; rollback只能在一个事务处理内使用,在执行一条start transaction命令之后 提交事务 commit 一般的MySQL语句都是直接针对数据库表执行和编写的.这就是所谓的隐含提交,即提交(写或保存)操作是自动进行的. 但是.在事务处理块中,提交不会隐含地进行.为进行明确的提交,使用commit语句 start transaction;

记一次处理MySql锁等待(Lock wait timeout exceeded)

允我心安 提交于 2019-12-03 04:53:56
环境 MySQL5.5 现象 A.数据更新或新增后数据经常自动回滚。 B.表操作总报 Lock wait timeout exceeded 并长时间无反应 解决方法 A.应急方法: show processlist; kill掉出现问题的进程 B.根治方法: select * from innodb_trx 查看有是哪些事务占据了表资源。 C.我的方法:设置MySQL锁等待超时 innodb_lock_wait_timeout=50 ,autocommit=on 该类问题导致原因 据我分析,Mysql的 InnoDB存储引擎是支持事务的,事务开启后没有被主动Commit。导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock wait timeout exceeded 接下来是转载的内容 转载: http://blog.sina.com.cn/s/blog_6bb63c9e0100s7cb.html MySQL 5.5 -- innodb_lock_wait 锁 等待 记得以前,当出现:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction, 要解决是一件麻烦的事情 ; 特别是当一个SQL执行完了,但未COMMIT,后面的SQL想要执行就是被锁

MySQL数据库 锁机制简介

百般思念 提交于 2019-12-03 04:48:42
MySQL 数据库 锁机制简介 数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问访问变得有序所设计的一种规则。 对于任何一种数据库来说都需要有相应的锁定机制 ,所以 MySQL 自然也不能例外。 MySQL 数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计, 所以各存储引擎的锁定机制也有较大区别。 一、MySQL有三种锁的级别:页级、表级、行级。 MyISAM 和MEMORY 存储引擎采用的是表级锁; BDB 存储引擎采用的是页面锁,但也支持表级锁; InnoDB 存储引擎既支持行级锁,也支持表级锁,但默认情况下是采用行级锁。 MySQL 这3 种锁的特性可大致归纳如下: 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高, 并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低, 并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 二、死锁 死锁是指两个或者两个以上的事务在执行过程中,因争夺资源而造成的一种相互等待的现象。解决死锁最简单的一种方式是超时,即当两个事务相互等待是

数据库事务【重点】、数据库单库备份、数据库多库备份、数据库全部备份、重新导入数据库文件

纵饮孤独 提交于 2019-12-03 04:47:00
day 05 数据库 1.pymysql 介绍: Python操作mysql的模块 安装: pip install mysql 连接: import pymysql conn = pymysql.connect(host='主机名', user='用户名', password='密码', database='数据库名',charset='utf8'); cursor = conn.cursor() ### 返回的是元祖套元祖 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) ### 返回的是列表套字典 执行sql语句: cursor.execute(sql) 查: fetchall() : 获取多个, 返回 列表套字典 fetchone() : 获取一个, 返回 字典 fetchmany(size) : 获取size个数据, 返回的是 列表套字典 增删改: conn.commit() SQL注入: 原因: 太相信用户输入的数据 解决的方法: # sql = "select * from user where name='%s' and password='%s'" % (user, pwd) sql = "select * from user where name=%s and password=%s" cursor