mysql update语句

MySQL必知必会——第20章 更新和删除数据 读书笔记

眉间皱痕 提交于 2020-01-23 14:23:06
本章介绍如何利用update和delete进一步操纵表数据。 1 更新数据 为了更新(修改)表中数据,可使用update语句。可采用两种方式使用update: ①更新表中特定行; ②更新表中所有行。 基本的update语句由三部分组成: ①要更新的表; ②列名和它们的新值; ③确定要更新行的过滤条件。 举例:客户10005现在有了电子邮件地址,因此它的记录需要更新 update customers set cust_email='elmer@fudd.com' where cust_id =10005; update语句总是以要更新的表的名字开始。set命令用来将新值赋给被更新的列。update语句以where子句结束,它告诉MySQL更新哪一行。没有where子句,MySQL会更新表中的所有行。 更新多个列: update customers set cust_name='Cindy' cust_email=‘111@qq.com’ where cust_id =10005; 在更新多个列时,只需要使用单个SET命令,每个“列=值”对之间用逗号分隔(最后一个不需要逗号)。 update语句中可以使用子查询,使得能用select语句检索出的数据更新列数据。 如果用update语句更新多行,并且在更新这些行中的一行或者多行时出现一个错误,则整个update操作被取消

转 How to Find Out Who Is Locking a Table in MySQL

╄→尐↘猪︶ㄣ 提交于 2020-01-23 07:51:46
MySQL is adding more tools to monitor its internals with every new release, but one thing it still lacks is a way to find out who is locking what, and therefore which transactions block which other ones. This is such a vital feature that I’m considering writing my own patch to the source! Still, it is possible, to a limited extent, to find out who’s locking resources. In this article I’ll explain how you can do that. This article is the second in a series on how to use the innotop MySQL and InnoDB monitor. Introduction Here’s the situation: you are trying to update a table and every time you

mysql sql语句大全

自作多情 提交于 2020-01-23 00:56:08
1、说明:创建数据库 CREATE DATABASE database - name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk' , 'testBack' , 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [ not null ] [ primary key ],col2 type2 [ not null ],..) 根据已有的表创建新表: A: create table tab_new like tab_old (使用旧表创建新表) B: create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加

My SQL 学习打卡 60天搞定mysql

最后都变了- 提交于 2020-01-22 15:34:03
Day01--查询语句执行流程   mysql 基础架构:        MySQL 5.5.5 版本开始InnoDB成为了默认存储引擎   连接器:   链接器超时断开参数 wait_timeout 默认 8小时   缓存   mysql 缓存提供按需使用的方式 将参数 query_cache_type 设置成 DEMAND,这样对于默认的 SQL 语句都不使用查询缓存。而对于你确定要使用查询缓存的语句,可以用 SQL_CACHE 显式指定   MySQL 8.0 版本直接将查询缓存的整块功能删掉了 mysql> select SQL_CACHE * from T where ID=10;   分析器:   分析器先会做“词法分析”。再做“语法分析”    优化器:   优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。   执行器:   首先判读用户对表有没有查询权限。如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。   数据库的慢查询日志中看到一个 rows_examined 的字段,表示这个语句执行过程中扫描了多少行。这个值就是在执行器每次调用引擎获取数据行的时候累加的 Day02--更新语句执行流程   更新比查询多涉及两个日志模块 redo log 和

mysql 1055 - Expression #1..... this is incompatible with sql_mode=only_full_group_by

白昼怎懂夜的黑 提交于 2020-01-22 12:49:38
昨天安装完数据库后,在执行任何语句时,都会出现1055的错,但是数据正常显示了,我很纳闷; 错误原因: 错误信息中包含sql_mode=only_full_group_by; only_full_group_by:在mysql 5.7之后的版本中,only_full_group_by是默认开启的,对于group by 聚合操作,若select语句中的列没有在group by中出现,那么这个sql是不合法的;所以出现1055的原因是sql语句未通过only_full_group_by语义检查; 解决办法: 1. 执行 select @@sql_mode; 结果: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 2. 检查sql结果是否包含ONLY_FULL_GROUP_BY,如果包含删除即可,如果不包含需要另找原因; 3. 修改sql_mode (1) 命令修改 使用sql修改后,在当前会话下会不出现1055错误,但是其他会话或者新建会话还是会出现1055 set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO

mysql的基本操作命令

半城伤御伤魂 提交于 2020-01-22 12:29:13
数据库模式定义语言并非 程序设计语言 ,DDL数据库模式定义语言是 SQL 语言(结构化查询语言)的组成部分。 SQL语言包括:四种主要程序设计语言类别的语句: 数据定义语言 (DDL,Data Definition Language), 数据操作语言 (Data Manipulation Language, DML), 数据控制语言 (DCL)和事务控制语言(TCL)。 这里主要介绍DDL和DML语言 常见的DDL和DML有: DDL{ CREATE DATABASE 创建数据库,CREATE TABLE 创建数据库表格,ALTER TABLE 修改数据库表格,DROP TABLE删除数据库表格,CREATE VIEW 创建查询命令,ALTER VIEW 修改查询命令,DROP VIEW删除查询命令} DML{ SELECT , INSERT , UPDATE , DELETE } 1.登录数据库:mysql -u root -p 例如: sue@suepc:~/abc$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.7.19 MySQL

Go Web 编程之 数据库

痞子三分冷 提交于 2020-01-22 11:14:35
概述 数据库用来存储数据。只要不是玩具项目,每个项目都需要用到数据库。现在用的最多的还是 MySQL, PostgreSQL 的使用也在快速增长中。在 Web 开发中,数据库也是必须的。本文将介绍如何在 Go 语言中操作数据库,基于 MySQL。本文假定大家已经掌握了数据库和 MySQL 的基础知识。关于 MySQL 有一个非常详细的免费教程我放在 参考 中了,需要的自取。 Go 语言标准库 database/sql 只是提供了一组查询和操作数据库的接口,没有提供任何实现。在 Go 中操作数据库只能使用第三方库。各种类型的数据库都有对应的第三方库。Go 中支持 MySQL 的驱动中最常见的是 go-sql-driver/mysql 。该库支持 database/sql ,全部采用 go 实现。 数据库操作 准备工作 创建一个数据库 department ,表示公司中的某个部门。在该库中创建两张表 employees 和 teams 。 employees 记录员工信息, teams 记录小组信息。每个员工都属于一个小组,每个小组都有若干名员工。 SET NAMES utf8mb4; CREATE DATABASE IF NOT EXISTS `department` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE

Mysql-5.7 rpm安装(linux环境)

我的未来我决定 提交于 2020-01-22 09:31:45
本章节阐述为在指定版本环境下示例安装,其它环境可根据实际情况参考安装 一. 下载mysql 软件 版本 centos环境 下载地址 提取码 mysql 5.7.19.el7.x86_64 el7 百度云下载 6s86 mysql 5.7.20.el6.x86_64 el6 百度云下载 de6m mysql 官网定制下载 官网定制下载 官网下载 – 官网下载较慢,上面第一二个可从百度云快速提取 二. 环境准备 使用Centos7环境 使用 5.7.19.el7.x86_64 mysql包 三. 卸载旧版本 检查是否存在旧mysql rpm - qa | grep - i mysql 依次卸载 rpm - e –nodeps 包名 #如果提示错误,尝试用下列命令执行 rpm - ev 包名 -- nodeps rpm - e -- noscripts 包名 查找之前老版本mysql的目录、并且删除老版本mysql的文件和库 # 查询 find / - name mysql # 显示下列结果 / var / lib / mysql / var / lib / mysql / mysql / usr / lib64 / mysql # 依次删除 rm - rf / var / lib / mysql rm - rf / var / lib / mysql / mysql rm - rf /

python D40 pymsql和navicat

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-22 06:34:22
一 IDE工具介绍(Navicat)   生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具,我们使用Navicat工具,这个工具本质上就是一个socket客户端,可视化的连接mysql服务端的一个工具,并且他是图形界面版的。我们使用它和直接使用命令行的区别就类似linux和windows系统操作起来的一个区别。 二 MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。 #2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 #3. 导出表: 将表导入到文本文件中。   一、使用mysqldump实现逻辑备份 #语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql #示例: #单库备份 mysqldump -uroot -p123 db1 > db1.sql mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql #多库备份 mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql #备份所有库 mysqldump -uroot

python使用MySQLdb模块连接MySQL

百般思念 提交于 2020-01-22 02:19:39
1.安装驱动 目前有两个MySQL的驱动,我们可以选择其中一个进行安装: MySQL-python:是封装了MySQL C驱动的Python驱动;mysql-connector-python:是MySQL官方的纯Python驱动。 MySQL-python: 安装教程: http://www.cnblogs.com/jfl-xx/p/7299221.html mysql-connector-python: 安装教程: http://www.cnblogs.com/Bgod/p/6995601.html 2.测试连接 这里使用MySQL-python驱动,即MySQLdb模块。 test_connect.py 1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 import MySQLdb 5 6 # 打开数据库连接 7 db = MySQLdb.connect("localhost", "root", "123456", "test") 8 9 # 使用cursor()方法获取操作游标 10 cursor = db.cursor() 11 12 # 使用execute方法执行SQL语句 13 cursor.execute("SELECT VERSION()") 14 15 # 使用 fetchone() 方法获取一条数据库。 16