mysql update语句

Mysql存储过程、触发器和事务

会有一股神秘感。 提交于 2020-02-17 14:31:47
一、存储过程 定义存储过程 语法: create procedure 过程名(参数1,参数2....) begin sql语句; end 创建存储过程之前我们必须修改mysql语句默认结束符; 要不能我们不能创建成功 , 使用 delimiter 可以修改执行符号。 mysql> delimiter % #这样结束符就为% mysql> create procedure selCg() -> begin -> select * from category; -> end % 调用存储过程 语法: call 过程名(参数1,参数2); mysql> call selCg() ; 存储过程参数类型 In 参数 特点:读取外部变量值,且有效范围仅限存储过程内部 例 1 : mysql> delimiter // mysql> create procedure pin(in p_in int) -> begin -> select p_in; -> set p_in=2; -> select p_in; -> end // mysql> delimiter ; #使用完马上恢复默认的 mysql> call pin(1); #调用pin存储过程 例 2 :定义存储过程 getOneBook,当输入某书籍 id 后,可以调出对应书籍记录 mysql> create procedure

mysql: lock wait timeout exceeded; try restarting transaction

丶灬走出姿态 提交于 2020-02-17 06:48:07
项目中遇到: lock wait timeout exceeded; try restarting transaction 的问题。 出错的语句是: select id from A where id=1 for update 即锁等待超时, 可能原因分析:并发场景下有一个事务对表A的id等于1的记录进行select for update操作,开启了事务但是并未提交,此时另外的事务对表A的事务操作就会等待锁,最终等待超时报错。 需要检查代码中对事务的开启、提交方面是否有问题。需要保证代码中再进行完for update操作后,事务一定提交或回滚。 Mysql 数据库采用InnoDB模式,默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错,可以考虑调大innodb_lock_wait_timeout参数的值,或者在代码中增加重试操作,等待另一个事务提交,流程则可继续进行。 来源: CSDN 作者: 怠惰的小小白 链接: https://blog.csdn.net/qq_35462323/article/details/104338645

mysql基本命令

爱⌒轻易说出口 提交于 2020-02-17 05:31:22
文章目录 命令行连接 登录mysql 退出登录 数据库操作 查看所有数据库 使用数据库 查看当前使用的数据库 创建数据库 删除数据库 数据表 查看当前数据库中所有表 查看表结构 创建表 修改表 修改表-添加字段 修改表-修改字段:重命名版 修改表-修改字段:不重命名版 修改表-删除字段 删除表 查看表的创建语句 增删改查(curd) curd的解释: 代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete) 查询基本使用 查询指定列 增加 修改 删除 想进一步学习mysql的查询语句可以 点击这里 命令行连接 登录mysql mysql -uroot -p 回车后输入密码,当前设置的密码为mysql 退出登录 quit 和 exit或ctrl+d 数据库操作 查看所有数据库 show databases; 使用数据库 use 数据库名; 查看当前使用的数据库 select database(); 创建数据库 create database 数据库名 charset=utf8; 例:create database python charset=utf8; 删除数据库 drop database 数据库名; 例:drop database python; 数据表 查看当前数据库中所有表 show tables; 查看表结构 desc 表名; 创建表

SQL注入详解

北战南征 提交于 2020-02-17 04:11:45
一:什么是sql注入   SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。 二: SQL注入攻击的总体思路     1:寻找到SQL注入的位置   2:判断服务器类型和后台数据库类型   3:针对不同的服务器和数据库特点进行SQL注入攻击 三: SQL注入攻击实例 String sql = "select * from user_table where username= ' "+userName+" ' and password=' "+password+" '"; --当输入了上面的用户名和密码,上面的SQL语句变成: SELECT * FROM user_table WHERE username= '’or 1 = 1 -- and password='’ """ --分析SQL语句: --条件后面username=”or 1=1 用户名等于 ” 或1=1 那么这个条件一定会成功; --然后后面加两个-,这意味着注释,它将后面的语句注释,让他们不起作用,这样语句永远都--能正确执行,用户轻易骗过系统,获取合法身份。 --这还是比较温柔的,如果是执行 SELECT * FROM user_table WHERE username='' ;DROP DATABASE (DB

php mySql常用的函数

喜你入骨 提交于 2020-02-16 21:21:17
1 1、mysql_connect()-建立数据库连接 2 格式: 3 resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 4 例: 5 $conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server"); 6 说明:使用该连接必须显示的关闭连接 7 8 2、mysql_pconnect()-建立数据库连接 9 格式: 10 resource mysql_pconnect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 11 例: 12 $conn = @mysql_pconnect("localhost", "username", "password") or dir("不能连接到Mysql Server"); 13 说明:使用该连接函数不需要显示的关闭连接,它相当于使用了连接池 14 15 3、mysql_close()-关闭数据库连接 16 例: 17 $conn = @mysql

mysql 常见语法

眉间皱痕 提交于 2020-02-16 19:01:53
一、数据库简单介绍 1、 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为广泛。面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005、Oracle10g等都开始增加面向对象的特性。 二、常用基本SQL语句/语法 Ø SQL 语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作然后关系型数据库。 标准的 SQL 语句通常划分为以下类型: 查询语句: 主要由于select关键字完成,查询语句是SQL语句中最复杂,功能最丰富的语句。 DML (Data Munipulation Language,数据操作语言)语句,这组DML语句修改后数据将保持较好的一致性;操作表的语句,如插入、修改、删除等; DDL (Data Definition Language,数据定义语言)语句,操作数据对象的语言,有create、alter、drop。 DCL (Data Control Language,数据控制语言)语句,主要有grant、revoke语句。 事务控制语句: 主要有commit、rollback和savepoint三个关键字完成 DDL 语句 DDL语句是操作数据库对象的语句

Innodb核心特性——事务

拟墨画扇 提交于 2020-02-16 18:18:49
Innodb核心特性——事务 一、什么是事务? 主要针对DML语句(update,delete,insert) 一组数据操作执行步骤,这些步骤被视为一个工作单元: 1)用于对多个语句进行分组 2)可以在多个客户机并发访问同一个表中的数据时使用 所有步骤都成功或都失败 1)如果所有步骤正常,则执行 2)如果步骤出现错误或不完整,则取消 二、事务通俗的理解 伴随着“交易”出现的数据库概念。 我们理解的“交易”是什么? 1)物与物的交换(古代) 2)货币现金与实物的交换(现代1) 3)虚拟货币与实物的交换(现代2) 4)虚拟货币与虚拟实物交换(现代3) 数据库中的“交易”是什么? 1)事务又是如何保证“交易”的“和谐”? 2)ACID # 10.0.0.51的第一个窗口 # 1.创建一个转账表 mysql> use test mysql> create table jiaoyi; mysql> insert into jiaoyi values('msy',1000), mysql> select * from jiaoyi; +------+-------+ | name | money | +------+-------+ | msy | 1000 | | hjm | 1000 | +------+-------+ # 2.开始事务 mysql> begin; # 3.更改数据

MySQL学习笔记

丶灬走出姿态 提交于 2020-02-16 14:21:50
MySQL学习笔记 1.1 数据库的基本概念 数据库的英文单词: DataBase 简称 : DB 什么数据库? 用于存储和管理数据的仓库。 数据库的特点: 持久化存储数据的。其实数据库就是一个文件系统 方便存储和管理数据 使用了统一的方式操作数据库 – SQL 常见的数据库软件 关系型数据库:SQLite、Oracle、Mysql 非关系型数据库:MongoDb、redis、HBase 1.2 MySQL启动和退出 MySQL服务启动 1. 手动。 2. cmd–> services.msc 打开服务的窗口 3. 使用管理员打开cmd * net start mysql : 启动mysql的服务 * net stop mysql : 关闭mysql服务 MySQL登录 mysql -uroot -p密码 mysql -hip -uroot -p连接目标的密码 mysql --host=ip --user=root --password=连接目标的密码 MySQL退出 exit quit MySQL目录结构 MySQL安装目录:basedir=“D:/Program Files/MySQL/” 配置文件 my.ini MySQL数据目录:datadir=“C:/ProgramData/MySQL/MySQL Server 5.5/Data/” 几个概念 数据库:文件夹 表:文件

MySQL 中的事务

浪尽此生 提交于 2020-02-16 04:32:22
事务的应用场景说明 什么是事务: 在实际的开发过程中,一个业务操作如:转账,往往是要多次访问数据库才能完成的。转 账是一个用户扣钱,另一个用户加钱。如果其中有一条 SQL 语句出现异常,这条 SQL 就可能执行失败。 事务执行是一个整体,所有的 SQL 语句都必须执行成功。如果其中有 1 条 SQL 语句出现异常,则所有的 SQL 语句都要回滚,整个业务执行失败。 案例说明 转账的操作 -- 创建数据表 CREATE TABLE account ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10), balance DOUBLE ); -- 添加数据 INSERT INTO account (NAME, balance) VALUES ('LeeHua', 1000), ('Tom', 1000); 模拟LeeHua给Tom转 500 元钱,一个转账的业务操作最少要执行下面的 2 条语句: -- LeeHua账号-500 UPDATE account SET balance = balance - 500 WHERE name='LeeHua'; -- Tom账号+500 UPDATE account SET balance = balance + 500 WHERE name='Tom'; 假设当LeeHua账号上 -500

6、数据库常见管理应用

心已入冬 提交于 2020-02-16 01:20:23
mysql建库的字符集为latin1,客户端的字符集为utf8; 6.1、创建数据库: 1、命令语法: create database <数据库名称>; #注意数据库名不能以数字开头; 2、命令: mysql> create database lc; Query OK, 1 row affected (0.11 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | lc | | mysql | | performance_schema | | wordpress | +--------------------+ 5 rows in set (0.19 sec) 6.2、显示数据库: 1、显示所有数据库: mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | lc | | lc1 | | lc2 | | mysql | | performance_schema | | wordpress | +--------------------+ 7 rows in