mysql update语句

MySQL与python交互

回眸只為那壹抹淺笑 提交于 2020-01-07 11:55:11
1. 准备数据 创建数据表 -- 创建 "京东" 数据库 create database jing_dong charset=utf8; -- 使用 "京东" 数据库 use jing_dong; -- 创建一个商品goods数据表 create table goods( id int unsigned primary key auto_increment not null, name varchar(150) not null, cate_name varchar(40) not null, brand_name varchar(40) not null, price decimal(10,3) not null default 0, is_show bit not null default 1, is_saleoff bit not null default 0 ); 插入数据 -- 向goods表中插入数据 insert into goods values(0,'r510vc 15.6英寸笔记本','笔记本','华硕','3399',default,default); insert into goods values(0,'y400n 14.0英寸笔记本电脑','笔记本','联想','4999',default,default); insert into goods

MySQL索引与事务详解

落花浮王杯 提交于 2020-01-07 11:32:21
MySQL索引与事务详解 一、前言 ​ 上一章我们讲解了MySQL的手工编译安装流程以及相关的数据库操作命令(sql语句),本文将要详细介绍MySQL索引与事务的概念及原理,并初步了解MySQL数据库视图概念,简述数据库的存储过程。 二、索引 2.1索引的概念——什么是索引? ​ 一般来说,一篇论文,或者说一本书,都有其目录,而目录一般是所有章节的概述,或者说是要点核心,而索引的概念其实也与之类似。 ​ 索引,顾名思义,就是一个方便用户搜索所需资源的引导,只不过在数据库中,索引一般被认为是一种特殊的文件,尤其在Linux系统中("一切皆文件")。从专业术语上解释其含义就是“代表记录的引用指针”。 2.2索引的作用 加快查询速度,提高工作效率; 降低i/o成本,提供基础排序; 加快多表之间的连接; 支持唯一性索引(下面会介绍什么是唯一性索引),保证数据表中数据的唯一性性; 2.3索引的分类 2.3.1普通索引 ​ 就是一般的索引,只是为了区别于其他特殊索引的一个统称 2.3.2唯一性索引 ​ 与普通索引基本类同,区别在于,唯一性索引的列中的所有值都不相同,即“唯一”。 ​ 简单举例来说,学生数据表,年龄可以是普通索引,但不可以是唯一性索引,但是详细住址可以是。 2.3.3主键索引 ​ 本质上也是一种唯一性索引,但必须指定为“primary key”,该索引要求主键中的每个值都唯一

MySQL中的共享锁与排他锁

不羁岁月 提交于 2020-01-07 07:59:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在 MySQL中的行级锁,表级锁,页级锁 中介绍过,行级锁是Mysql中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突。行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁及排他锁的概念、使用方式及注意事项等。 共享锁(Share Lock) 共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。 用法 SELECT ... LOCK IN SHARE MODE; 在查询语句后面增加 LOCK IN SHARE MODE ,Mysql会对查询结果中的每行都加共享锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请共享锁,否则会被阻塞。其他线程也可以读取使用了共享锁的表,而且这些线程读取的是同一个版本的数据。 排他锁(eXclusive Lock) 排他锁又称写锁,如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。 用法 SELECT ... FOR UPDATE; 在查询语句后面增加 FOR UPDATE

MySQL中的共享锁与排他锁

爱⌒轻易说出口 提交于 2020-01-07 07:32:32
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在 MySQL中的行级锁,表级锁,页级锁 中介绍过,行级锁是Mysql中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突。行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁及排他锁的概念、使用方式及注意事项等。 共享锁(Share Lock) 共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。 用法 SELECT ... LOCK IN SHARE MODE; 在查询语句后面增加 LOCK IN SHARE MODE ,Mysql会对查询结果中的每行都加共享锁,当没有其他线程对查询结果集中的任何一行使用排他锁时,可以成功申请共享锁,否则会被阻塞。其他线程也可以读取使用了共享锁的表,而且这些线程读取的是同一个版本的数据。 排他锁(eXclusive Lock) 排他锁又称写锁,如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。 用法 SELECT ... FOR UPDATE; 在查询语句后面增加 FOR UPDATE

mysql修改密码的方法

岁酱吖の 提交于 2020-01-07 01:22:59
修改密码: 1.例如你的 root用户现在没有密码,你希望的密码修改为123456,那么命令是: mysqladmin -u root password 123456 2.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是: mysqladmin -u root -p password abcdef 注意,命令回车后会问你旧密码,输入旧密码123456之后命令完成,密码修改成功。 3.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是: mysqladmin -u root -p123456 password abcdef (注意-p 不要和后面的密码分 开写,要写在一起,不然会出错,错误如下所示) 4.使用phpmyadmin,这是最简单的了,修改mysql库的user表, 不过别忘了使用PASSWORD函数。 忘记密码: 下面我们提供了6种不同的修改mysql root用户的密码,与增加mysql用户的方法。 方法一 使用phpmyadmin,这是最简单的了,修改mysql库的user表, 不过别忘了使用PASSWORD函数。 方法二 使用mysqladmin,这是前面声明的一个特例。 mysqladmin -u root -p password mypasswd 输入这个命令后,需要输入root的原密码

MYSQL基础语法

别说谁变了你拦得住时间么 提交于 2020-01-06 21:56:58
DDL 操作数据库: 一,创建数据库 1,CREATE DATABASE 数据库名; – 直接创建数据库 2,CREATE DATABASE IF NOT EXISTS 数据库名; – 判断是否存在,如果不存在则创建数据库 3,CREATE DATABASE 数据库名 CHARACTER SET 字符集; – 创建数据库并指定字符集为 gbk 二,查看数据库 1,show databases; – 查看所有的数据库 2,show create database db3; – 查看某个数据库的定义信息 三,修改数据库 ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集; – 修改数据库默认的字符集 四,删除数据库 DROP DATABASE 数据库名; 五,使用数据库 1,select database(); – 查看正在使用的数据库 2,use db4; – 改变要使用的数据库 ====================== DDL 操作表结构: 一,创建表 create table student ( id int, – 整数 name varchar(20), – 字符串 birthday date – 生日,最后没有逗号 ); 二,查看表 1,SHOW TABLES; – 查看某个数据库中的所有表 2,DESC 表名; – 查看表结构 3

5.7新特性

微笑、不失礼 提交于 2020-01-06 20:56:01
1. 背景 MySQL 5.7在2015-10-21发布了GA版本,即5.7.9,目前小版本已经到了5.7.12。5.7新增了许多新的feature和优化,接下来一个系列,我们就一起来尝尝鲜。首先这次主要是预览feature的变化以及兼容性问题。后面的系列,会针对重要的feature展开来学习。 2 安全相关的特性 2.1 认证插件 mysql.user表中的plugin更改成not null,5.7开始不再支持mysql_old_password的认证插件,推荐全部使用mysql_native_password。从低版本升级到5.7的时候,需要处理两个兼容性问题。 [兼容性] 需要先迁移mysql_old_password的用户,然后进行user表结构的升级: 1. 迁移mysql_old_password用户 MySQL 5.7.2之前的版本,是根据password的hash value来判断使用的认证插件类型,5.7.2以后的版本,plugin字段为not null,就直接根据plugin来判断了。新的密码从password字段中,保存到新的字段authentication_string中,password字段废弃处理。 如果user是隐式的mysql_native_password。直接使用sql进行变更: UPDATE mysql.user SET plugin =

mysql sys库使用功能

房东的猫 提交于 2020-01-06 20:18:14
MySQL5.7新库sys的一些实用功能 sys schema数据主要源自performance_schema。其目标是把查询performance_schema的复杂度降低,让DBA能更好地利用这个库里的数据,更快地了解MySQL的运行情况。sys schema包含了一些视图、函数和存储过程,sys schema用以帮助DBA及开发更方便的分析定位问题。 那么对于我们DBA来说,sys schema的一些主要用途有哪些? 1、哪个用户或者哪个IP的客户端使用了最多的资源? 2、数据库连接来自哪里,以及这些连接对数据库的请求情况是怎样的? 3、数据库中哪些SQL被频繁执行? 4、哪个文件产生了最多的IO,读多还是写多? 5、哪个表上的IO请求最多? 6、哪个表被访问的最多? 7、哪些语句延迟比较严重? 8、哪些SQL执行了全表扫描或执行了排序操作? 9、哪些SQL使用了临时表,又有哪些SQL用到了磁盘临时表? 10、哪个库/表占用了最多的buffer pool? 11、每个连接分配多少内存? 12、自增长字段的最大值和当前已经使用到的值? 13、索引使用情况如何?有哪些冗余索引和无用索引? 14、内部有多个线程在运行? 下面一一举例说明: 1、哪个用户或者哪个IP的客户端使用了最多的资源? mysql> select * from host_summary limit 1\G **

MySQL数据库管理

僤鯓⒐⒋嵵緔 提交于 2020-01-06 20:09:34
数据库的基本操作命令 DDL操作命令 DML操作命令 DQL操作命令 DCL操作命令 MySQL案例 MySQL管理操作 查看数据库结构 创建删除库和表 管理表的记录 基本操作命令 查看数据库列表信息 SQL语句概述 SQL语言 是Structured Query Language 的缩写,即结构化查询语言 是关系型数据库的标准语言 用于维护管理数据库,如数据查询、数据更新、访问控制、对象管理等功能 SQL分类 DDL:数据定义语言 DML:数据操纵语言 DQL:数据查询语言 DCL:数据控制语言 DDL语句操作(创建、删除) DDL语句用于创建数据库对象,如库、表、索引等 创建数据库:CREATE DATABASE 数据库名 创建数据库表:CREATE TABLE 表名 (字段定义…) DML语句操作 DML语句用于对表中的数据进行管理 INSERT:插入新数据 UPDATE:更新原有数据 DELETE:删除不需要的数据 向数据表中插入新的数据记录 INSERT INTO 表名(字段·,字段2,…) VALUES (字段1的值,字段2的值,…) 修改、更新数据表中的数据记录 UPDATE 表名 SET 字段名1=值1[,字段名2=值2] WHERE 条件表达式 在数据表中删除指定的数据记录 DELETE FROM 表名 WHERE 条件表达式

Mysql中的锁

半腔热情 提交于 2020-01-06 18:25:00
1. 2 MySQL InnoDB 锁的基本类型 https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html 官网把锁分成了 8 类。所以我们把前面的两个行级别的锁(Shared and Exclusive Locks),和两个表级别的锁(Intention Locks)称为锁的基本模式。 后面三个 Record Locks、Gap Locks、Next-Key Locks,我们把它们叫做锁的算法, 也就是分别在什么情况下锁定什么范围。 2.1 锁的粒度 我们讲到 InnoDB 里面既有行级别的锁,又有表级别的锁,我们先来分析一下这两 种锁定粒度的一些差异。 表锁,顾名思义,是锁住一张表;行锁就是锁住表里面的一行数据。锁定粒度,表 锁肯定是大于行锁的。 那么加锁效率,表锁应该是大于行锁还是小于行锁呢?大于。为什么?表锁只需要 直接锁住这张表就行了,而行锁,还需要在表里面去检索这一行数据,所以表锁的加锁 效率更高。 第二个冲突的概率?表锁的冲突概率比行锁大,还是小? 大于,因为当我们锁住一张表的时候,其他任何一个事务都不能操作这张表。但是 我们锁住了表里面的一行数据的时候,其他的事务还可以来操作表里面的其他没有被锁 定的行,所以表锁的冲突概率更大。 表锁的冲突概率更大,所以并发性能更低,这里并发性能就是小于。 nnoDB