mysql update语句

MySQL灵魂五十问

给你一囗甜甜゛ 提交于 2020-01-06 17:14:36
1、MySQL 中有哪几种锁? 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 2、MySQL 中有哪些不同的表格? 共有 5 种类型的表格: MyISAM Heap Merge INNODB ISAM 3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别 MyISAM: 不支持事务,但是每次查询都是原子的; 支持表级锁,即每次操作是对整个表加锁; 存储表的总行数; 一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件; 采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引 基本一致,但是辅索引不用保证唯一性。 InnoDb: 支持 ACID 的事务,支持事务的四种隔离级别; 支持行级锁及外键约束:因此可以支持写并发; 不存储总行数: 一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制, 一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为 2G),受操作系统文件大小的限制; 主键索引采用聚集索引(索引的数据域存储数据文件本身)

Mysql语句大全

三世轮回 提交于 2020-01-06 16:11:10
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中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明

Mysql中的锁

柔情痞子 提交于 2020-01-05 23:51:28
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

关于使用MySQL语法ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql

爷,独闯天下 提交于 2020-01-05 03:02:29
应用场景: 在实际应用中,经常碰到导入数据的功能,当导入的数据不存在时则进行添加,有修改时则进行更新, 在刚碰到的时候,第一反应是将其实现分为两块,分别是判断增加,判断更新,后来发现在mysql中有ON DUPLICATE KEY UPDATE一步就可以完成,感觉实在是太方便了, 该语句是基于唯一索引或主键使用,比如一个字段a被加上了unique index,并且表中已经存在了一条记录值为1。 比如: 下面两个语句会有相同的效果: INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; UPDATE table SET c=c+1 WHERE a=1; ON DUPLICATE KEY UPDATE后面可以放多个字段,用英文逗号分割。 再现一个例子: INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); 表中将更改(增加或修改)两条记录。 在mybatis中进行单个增加或修改sql的写法为: <insert id="insertOrUpdateCameraInfoByOne" paramerType="com.pojo.AreaInfo"> insert

mysql 详解

懵懂的女人 提交于 2020-01-05 00:11:21
1、简介 MySQL的历史可以追溯到1979年,一个名为Monty Widenius的程序员在为TcX的小公司打工,并且用BASIC设计了一个报表工具,使其可以在4MHz主频和16KB内存的计算机上运行。当时,这只是一个很底层的且仅面向报表的存储引擎,名叫Unireg。【MySQL早期叫Unireg】早期轻量级,后来发展到巨无霸(淘宝、faceboock)MySQL AB是由MySQL创始人和主要开发人创办的公司。MySQL AB最初是由David Axmark、Allan Larsson和Michael“Monty”Widenius在瑞典创办的。 SQL标准:ANSI SQL SQL-86, SQL-89, SQL-92, SQL-99, SQL-03 SQL四种语言:DDL,DML,DCL,TCL DDL(Data Definition Language)数据定义语言 DML(Data Manipulation Language)数据操纵语言 DCL(Data Control Language)数据库控制语言 授权,角色控制等 TCL(Transaction Control Language)事务控制语言 SAVEPOINT 设置保存点 ROLLBACK 回滚 SET TRANSACTION SQL主要分成四部分: (1)数据定义。(SQL DDL)用于定义SQL模式、基本表

MySQL数据库优化(1)

情到浓时终转凉″ 提交于 2020-01-04 03:36:02
前言 不管对于哪种服务,对于其优化,无非是从两个方面着手,第一个是对于硬件方面的优化,第二个是对系统以及服务本身的优化。 1、查询连接MySQL服务器的次数 mysql> show status like 'connections'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Connections | 3 | +---------------+-------+ 1 row in set (0.01 sec) 2、查询MySQL服务器的运行时间 mysql> show status like 'uptime'; //单位为“秒” +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Uptime | 127 | +---------------+-------+ 1 row in set (0.00 sec) 3、查询操作的次数 mysql> show status like 'com_select'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ |

MySQL 基础常用命令

南楼画角 提交于 2020-01-04 00:48:54
MySQL 基础常用命令 一、启动与关闭 1.1 Linux下启动mysql 的命令: a. rpm包安装:service mysqld start b. 源码包安装:/usr/local/mysql/bin/mysqld_safe --user=mysql & 1.2 Linux下重启mysql 的命令: a. rpm包安装:service mysqld restart b. 源码包安装: 先关闭mysql /usr/local/mysql/bin/mysqladmin -uroot -p shutdown 再启动mysql /usr/local/mysql/bin/mysqld_safe --user=mysql & 1.3 Linux下关闭mysql 的命令: a. rpm包安装:service mysqld stop b. 源码包安装: 方法1、/usr/local/mysql/bin/mysqladmin -uroot -p shutdown 方法2、killall mysqld //强行终止MySQL数据库服务,有可能导致表损坏,不建议使用 二、数据库连接 2.1 连接MySQL 格式: $mysql_dir/bin/mysql [-h主机地址] -u用户名 -p用户密码,回车后提示输入密码。 2.2 退出MySQL 格式: exit/quit 三、修改密码 3.1

MySQL 基础常用命令

感情迁移 提交于 2020-01-04 00:48:40
一、启动与关闭 1.1 Linux下启动mysql 的命令: a. rpm包安装:service mysqld start b. 源码包安装:/usr/local/mysql/bin/mysqld_safe --user=mysql & 1.2 Linux下重启mysql 的命令: a. rpm包安装:service mysqld restart b. 源码包安装: 先关闭mysql /usr/local/mysql/bin/mysqladmin -uroot -p shutdown 再启动mysql /usr/local/mysql/bin/mysqld_safe --user=mysql & 1.3 Linux下关闭mysql 的命令: a. rpm包安装:service mysqld stop b. 源码包安装: 方法1、/usr/local/mysql/bin/mysqladmin -uroot -p shutdown 方法2、killall mysqld //强行终止MySQL数据库服务,有可能导致表损坏,不建议使用 二、数据库连接 2.1 连接MySQL 格式: $mysql_dir/bin/mysql [-h主机地址] -u用户名 -p用户密码,回车后提示输入密码。 2.2 退出MySQL 格式: exit/quit 三、修改密码 3.1 mysqladmin 命令

DBA学习参考绝佳资料

爱⌒轻易说出口 提交于 2020-01-04 00:14:52
原文来自: pursuer.chen 原文地址:https://www.cnblogs.com/chenmh/default.aspx?page=1 [置顶]MongoDB 文章目录 2018-02-09 10:27 by pursuer.chen, 144 阅读, 收藏 , 编辑 基础: MongoDB入门系列(一):基础概念和安装 MongoDB入门系列(二):Insert、Update、Delete、Drop MongoDB入门系列(三):查询(SELECT) MongoDB入门系列(四):权限管理 MongoDB入门系列(五):聚合操作 MongoDB 错误汇总 MongoDB 启动配置参数 集群: MongoDB 复制机制 MongoDB 搭建可复制群集 MongoDB 副本集管理 MongoDB 搭建分片集群 MongoDB 分片管理 MongoDB 分片键的选择与案例 OPS: 0 Comment [置顶]SQL Server 文章目录 2017-06-02 17:27 by pursuer.chen, 335 阅读, 收藏 , 编辑 SQL Server系列: 高可用方案: 搭建域服务器和DNS 搭建Windows故障转移群集 SQL Server Alwayson概念总结 SQL Server AlwaysOn搭建 SQL Server

Mysql基本异常以及基本操作

半世苍凉 提交于 2020-01-02 11:24:31
MySQLIntegrityConstraintViolationException: Duplicate entry ‘admin-2’ for key ‘idx_unq_usercode_usertype’ 原因就是插入数据时,具有唯一约束条件的列的值有重复。 违反唯一约束条件 务必确认插入数据主键或者具有唯一性约束的列不要有重复数据!!! MysqlDataTruncation: Data truncation: Incorrect date value 格式问题 错误的格式 输入正确格式 查看数据库数据类型及格式 alter table sys_zj_compe_awards modify column compe_name varchar(50); 修改字段长度 alter table <表名> change <字段名> <字段新名称> <字段的类型>。 修改字段的名称 alter table sys_zj_mooc modify column year date; 修改字段类型 1.添加字段 ALTER TABLE 表明 add 字段名称 类型(int,char,VARCHAR...) DEFAULT 默认值 位置(FIRST, AFTER+字段名称); 2.删除 ALTER TABLE 表名 DROP字段名称 3.更改字段 (1) 更改字段长度 alter table