mysql update语句

python操作mysql数据库

只谈情不闲聊 提交于 2020-02-02 04:23:49
http://www.runoob.com/python/python-mysql.html Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问 Python数据库接口及API 查看详细的支持数据库列表。 不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。 Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。 Python DB-API使用流程: 引入 API 模块。 获取与数据库的连接。 执行SQL语句和存储过程。 关闭数据库连接。 什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库

python操作mysql数据库

喜夏-厌秋 提交于 2020-02-02 04:22:27
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问 Python数据库接口及API 查看详细的支持数据库列表。 不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。 Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。 Python DB-API使用流程: 引入 API 模块。 获取与数据库的连接。 执行SQL语句和存储过程。 关闭数据库连接。 什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。 如何安装MySQLdb?

Python3 MySQL 数据库连接

杀马特。学长 韩版系。学妹 提交于 2020-02-02 04:15:31
什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 PyMySQL 安装 在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。 PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。 如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL: $ pip install PyMySQL 如果你的系统不支持 pip 命令,可以使用以下方式安装: 1、使用 git 命令下载安装包安装(你也可以手动下载): $ git clone https://github.com/PyMySQL/PyMySQL $ cd PyMySQL/ $ python3 setup.py install 2、如果需要制定版本号,可以使用 curl 命令来安装: $ # X.X 为 PyMySQL 的版本号 $ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz $ cd PyMySQL* $ python3 setup.py

mysql数据库使用总结

北城余情 提交于 2020-02-01 12:44:47
本文主要记录一些mysql日常使用的命令,供以后查询。 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆mysql服务器 mysql -uroot -p -h192.168.137.10 -P3306 3.查询数据库 show databases; 4.进入某个数据库 use databasename; 5.列出数据库中的表 show tables; 6.查看某个表全部字段 desc slow_log; show create table slow_log\G; (不仅可以显示表信息,还可以显示建表语句) 7.查看当前用户 select user(); 8.查看当前所在数据库 select database(); 9.创建新数据库(可以指定字符集) create database db1 charset utf8; 10.创建新表 create table t1 ( id int(4), name char(40)); 11.查看数据库版本 select version(); 12.查看数据库状态 show status; 当前会话状态 show global status; 全局数据库状态 show slave status\G; 查看主从数据库状态信息 13.查询数据库参数 show variables;

Mysql锁

痴心易碎 提交于 2020-02-01 11:38:49
Mysql有三种锁:表锁(偏读)、行锁(偏写)、页锁 1. 查看锁命令 1.1 查看锁 show open tables ; In_use为0表示没有被锁 1.2 分析表锁定 show status like '%table%' Table_locks_immediate:产生表级锁定的次数(锁的查询次数)。 Table_locks_waited:出现表级锁定争用而发生等待的次数,此值高说明存在严重表级锁争用情况。 2. 表锁 2.1 读锁(共享锁) Session 1 为Table增加 读锁 之后: Session 1 只能读锁定表,不能读其他表,写锁定表 报错 。 Session 2 可以读任何表,写锁定表 阻塞 。 2.2 写锁(独占锁) Session 1 为Table增加 写锁 之后: Session 1 可以做锁定表进行任何操作 Session 2 无法对锁定表进行任何操作 2.3 相关命令 加读锁 lock table 表名 1 read , 表名 2 read ; 加写锁 lock table 表名 1 read , 表名 2 read ; 解锁 unlock tables ; 3. 行锁 3.1 开启事务即开启了行锁 提交事务之前,其它会话查询到的都是未提交的数据,如果更新了同一行,会被阻塞,直到这个事务被提交。 set autocommit = 0 ;

如何书写高效的MySQL查询?

纵饮孤独 提交于 2020-02-01 10:22:20
How to write efficient MySQL query statements WHERE子句中的书写注意事项 模糊查询(like)时需要注意的事项 索引 字段类型 表连接时的注意事项 其他注意事项 WHERE 子句中的书写注意事项 首先应考虑在 where 及 order by 涉及的列上建立索引。 下列操作会导致引擎放弃使用索引而进行全表扫描,是应尽量避免的。 1).在 where 子句中使用 != 或 <> 操作符 2).在 where 子句中对字段进行 null 值判断 如: select id from t where num is null; 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0; 3).在 where 子句中使用 or 来连接条件 如: select id from t where num=10 or num=20; 可以这样查询: select id from t where num=10 union all select id from t where num=20; 4).in 和 not in 也要慎用 如: select id from t where num in(1,2,3); 对于连续的数值,能用 between 就不要用 in 如:

mysql触发器trigger 实例详解

房东的猫 提交于 2020-02-01 08:59:53
mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html) MySQL好像从5.0.2版本就开始支持触发器的功能了,本次博客就来介绍一下触发器,首先还是谈下概念性的东西吧: 什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 举个例子,比如你现在有两个表【用户表】和【日志表】,当一个用户被创建的时候,就需要在日志表中插入创建的log日志,如果在不使用触发器的情况下,你需要编写程序语言逻辑才能实现,但是如果你定义了一个触发器,触发器的作用就是当你在用户表中插入一条数据的之后帮你在日志表中插入一条日志信息。当然触发器并不是只能进行插入操作,还能执行修改,删除。 创建触发器 创建触发器的语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_stmt trigger_name:触发器的名称 tirgger_time:触发时机,为BEFORE或者AFTER trigger_event:触发事件,为INSERT、DELETE或者UPDATE tb_name:表示建立触发器的表明

mysql触发器trigger 实例详解

一世执手 提交于 2020-02-01 08:58:31
mysql触发器trigger 实例详解 MySQL好像从5.0.2版本就开始支持触发器的功能了,本次博客就来介绍一下触发器,首先还是谈下概念性的东西吧: 什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 举个例子,比如你现在有两个表【用户表】和【日志表】,当一个用户被创建的时候,就需要在日志表中插入创建的log日志,如果在不使用触发器的情况下,你需要编写程序语言逻辑才能实现,但是如果你定义了一个触发器,触发器的作用就是当你在用户表中插入一条数据的之后帮你在日志表中插入一条日志信息。当然触发器并不是只能进行插入操作,还能执行修改,删除。 创建触发器 创建触发器的语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_stmt trigger_name:触发器的名称 tirgger_time:触发时机,为BEFORE或者AFTER trigger_event:触发事件,为INSERT、DELETE或者UPDATE tb_name:表示建立触发器的表明,就是在哪张表上建立触发器 trigger_stmt:触发器的程序体

mysql触发器trigger

非 Y 不嫁゛ 提交于 2020-02-01 08:57:27
2018年8月15日,今天由于之前的失误(因为刚来公司不太懂业务导致的)使一个不应该赋值的字段给赋值了,神奇的是居然上生产了,后来就是一系列数据错误,为了及时抑制事态的严重,只能写触发器了,因为改代码已经不现实了,大致情况是这样的,有一张表里面一个订单号和一个订单状态,由于当时是excel导入的数据,excel并没有这两个字段,当时来的时间不长,看到这个表有个订单号,感觉一个是个重要的字段,就问了一组长,他说用UUID赋值就行,后来就赋值了,赋值以后会不断的调取华泰那边的接口,因为这个订单号是我们生成的,华泰并没有,然后就是各种错,后来组长说谁让你赋值的,你见过那个业务字段可以随机赋值的,心里一万个MMP,当时不是你说的吗,后来就洗个触发器止损吧!!! 原文地址转载:https://www.cnblogs.com/phpper/p/7587031.html 通过这问大神的指点才写出来 先上我写的触发器: DROP TRIGGER if EXISTS upd_che; CREATE TRIGGER upd_che BEFORE INSERT ON wl_ser_info FOR EACH ROW BEGIN IF ( NEW.SERVICE_ORDER_STATUS = '' OR NEW.SERVICE_ORDER_STATUS IS NULL ) THEN SET NEW

MySQL学习笔记15:触发器

戏子无情 提交于 2020-02-01 08:29:15
触发器是由事件来触发某个操作,这些事件包括INSERT语句,UPDATE语句和DELETE语句 创建触发器 创建只有一个执行语句的触发器 CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW 执行语句 其中,触发器名参数指要创建的触发器的名字 BEFORE和AFTER参数指定了触发执行的时间,在事件之前或是之后 FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器 mysql> CREATE TRIGGER trig1 AFTER INSERT -> ON work FOR EACH ROW -> INSERT INTO time VALUES(NOW()); Query OK, 0 rows affected (0.09 sec) 上面创建了一个名为trig1的触发器,一旦在work中有插入动作,就会自动往time表里插入当前时间 创建有多个执行语句的触发器 CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW BEGIN 执行语句列表 END 其中,BEGIN与END之间的执行语句列表参数表示需要执行的多个语句,不同语句用分号隔开 tips: 一般情况下,mysql默认是以 ; 作为结束执行语句,与触发器中需要的分行起冲突