mysql 开发
文章平均质量分 77
袋鼠mysql
中国分布式数据库领导者
展开
-
sql 修改、更新、替换 某个字段的部分内容(转载)
sql 修改、更新、替换 某个字段的部分内容(转载)1*.需求将表(Ws_FormMain)的字段(order_Number)内容为XSRK201706080001修改为WXSK201706080001update 表名 set 字段 = replace(字段, ‘要修改的内容’ , ‘修改后的内容’);UPDATE Ws_FormMain SET order_Number = REPLA...原创 2019-12-25 19:49:22 · 778 阅读 · 0 评论 -
mysql 游标
who?(游标是什么?)游标(cursor)官方定义:是系统为用户开通的一个数据缓冲区,存放sql执行结果。每个游标区都有一个名字,用户可以通过sql语句逐一从游标中获取记录,并赋值给变量,交由主语言进一步处理;个人理解:感觉游标和指针相似,指定结果集后一行行执行;why?(为什么要学习游标)游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整...原创 2019-12-10 14:19:51 · 510 阅读 · 0 评论 -
FROM子查询
FROM子查询:FROM字句之后跟上的数据来源不只是数据表,还可以是一个查询结果,这就是FROM子查询一般FROM子查询的返回类型的多行多列的结果集查询出平均工资高于2000的职位名称以及该职位的平均工资第一种方式:可以使用HAVING字句实现SELECT job,AVG(sal)FROM empGROUP BY jobHAVING AVG(sal)>2000;第二种方式:...原创 2019-11-25 09:56:02 · 1398 阅读 · 0 评论 -
MySQL的if,case语句
MySQL的if,case语句Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:IF表达式IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串...原创 2019-11-20 10:24:17 · 221 阅读 · 0 评论 -
MySQL-分组查询(GROUP BY)及二次筛选(HAVING)
MySQL-分组查询(GROUP BY)及二次筛选(HAVING)为了测试GROUP BY 语句,我们创建两张表,并往表中添加数据– 创建部门表CREATE TABLE IF NOT EXISTS department(id TINYINT UNSIGNED AUTO_INCREMENT KEY,depName VARCHAR(20) NOT NULL UNIQUE);– 添加部门...原创 2019-11-07 11:28:49 · 742 阅读 · 0 评论 -
mysql sql 根据父级id查询书所有的子孙级数据
mysql sql 根据父级id查询书所有的子孙级数据WITH RECURSIVE result (id,routename,routeurl,typeid,parentid) AS (SELECTid,routename,routeurl,typeid,parentidFROMtableWHEREid = 1UNION ALLSELECTi.id,i.r...原创 2019-10-23 17:50:58 · 1395 阅读 · 0 评论 -
mysql datetime 数据的自动更新(update_time)和初始化(create_time)
–创建测试表CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,last_modify_time datetime NOT NULL DEFAULT CURREN...原创 2019-10-17 12:26:52 · 1804 阅读 · 0 评论 -
IFNULL() 函数
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。IFNULL() 函数语法格式为:IFNULL(expression, alt_value)如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。参数说明:参数 描述expression 必须,要测试的值alt_...原创 2019-10-16 11:59:56 · 50678 阅读 · 0 评论 -
事件
mysql事件开启show events;show variables like ‘event_scheduler’;set global event_scheduler=ON;有时候事件没有开启,需要开启事件语法CREATE[DEFINER = { user | CURRENT_USER }]EVENT[IF NOT EXISTS]event_nameON SCHEDULE...原创 2019-09-21 14:44:39 · 141 阅读 · 0 评论 -
mysql游标
一、游标简介1、游标简介游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。尽管游标能遍历结果中的所有行,但一次只指向一行。游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作。2、游标的特性游标具有三个属性:A、不敏感(Asensitive):数据库可以选择不复制结果集B、只读(Read...原创 2019-08-12 14:26:25 · 119 阅读 · 0 评论 -
MySQL的多表联查
1.内连接 规则:返回两个表的公共记录 语法:– 语法一select * from 表1 inner join 表2 on 表1.公共字段=表2.公共字段– 语法二select * from 表1,表2 where 表1.公共字段=表2.公共字段 补充:– 如何实现三表查询select * from 表1 inner join 表2 on 表1.公共字段=表2...原创 2019-08-15 08:21:04 · 105 阅读 · 0 评论 -
mysql存储过程迁移历史数据
添加链接描述原创 2019-07-11 21:26:16 · 402 阅读 · 0 评论 -
MySQL 表和列的注释深入理解
像代码一样,可以为表以及表中的列添加注释,方便其他人知晓其功能。对于一些字段,在经过一定时间后,创建者未必也能想起其具体的含意,所以注释显得尤为重要。注释的添加注释的添加是通过在定义表或列的时候在末尾加上 COMMENT 关键字来实现的,最长支持 1024 个字符。可以在创建表的时候为表和列添加相应的注释。CREATE TABLE test_comment(id SERIAL PR...原创 2019-05-13 15:06:35 · 299 阅读 · 0 评论 -
SQL语句在MySQL中的执行流程
本篇文章分析SQL语句在MySQL中的执行流程,包括SQL的查询在MySQL内部会怎么流转,SQL语句的更新是怎么完成的。在分析之前我们一起看看MySQL的基础架构,知道了 MySQL由那些组件组成以及这些组件的作用是什么,可以帮助我们理解和解决这些问题。MySQL架构分析下面是MySQL的一个简要架构图:MySQL主要分为Server层和存储引擎层Server层主要包括连接器、查询缓...原创 2019-04-15 16:06:24 · 291 阅读 · 0 评论 -
Mysql Innodb体系结构
Innodb体系结构 Innodb存储引擎主要包括内存池以及后台线程。 内存池:多个内存块组成一个内存池,主要维护进程/线程的内部数据、缓存磁盘数据,修改文件前先修改内存、redo log 后台线程:刷新内存池中的额 内存 缓冲池 Innodb的数据以页的形式存储在磁盘,因此采用内存作为缓存页数据。 读页数据时,先将磁盘上的页数据“FIX”到缓冲池,下次读即可直接从缓冲池中读。 修...原创 2018-06-04 14:23:54 · 804 阅读 · 0 评论 -
MySQL InnoDB 事务实现过程相关内容的概述
MySQL事务的实现涉及到redo和undo以及purge,redo是保证事务的原子性和持久性;undo是保证事务的一致性(一致性读和多版本并发控制);purge清理undo表空间 背景知识,对于Innodb表中的行每一行包括: 6字节的事务ID(DB_TRX_ID)字段: 用来标识最近一次对本行记录做修改(INSERT|UPDATE)的事务的标识符, 即最后一次修改(INSERT|UPDAT...原创 2018-05-31 10:44:18 · 302 阅读 · 0 评论 -
MySQL基础操作之对数据库和表的增删改查
MySQL基础操作之对数据库和表的增删改查一、数据库管理-- 1.登陆数据库1 mysql -u root -p; -- 2.查看数据库服务器所有数据库1 SHOW DATABASES; -- 3.创建数据库CREATE DATABASE MyDATA; -- 4.创建带有设置字符集的数据库CREATE DATABASE MYDATA DEF原创 2017-11-24 16:17:40 · 366 阅读 · 0 评论 -
MySQL基础操作之单表的增删改
MySQL基础操作之单表的增删改一、添加数据。-- 1.创建表,并插入一定的数据。 CREATE TABLE STUDENT(ID INT, USERNAME VARCHAR(20),SERVLET INT,JSP INT, ADDRESS VARCHAR(30) )ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO转载 2017-11-24 18:07:36 · 277 阅读 · 0 评论 -
mysql开发规范
单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加原创 2017-12-14 16:06:17 · 225 阅读 · 0 评论 -
MySQL索引浅谈
本文关于MySQL的讲述是基于MySQL标准版本,不能覆盖分支版本(比如MariaDB, Percona, XtraDB)中的特性,关于索引的所有讲述如果没有在特指的情况下都是基于InnoDB存储引擎的,文中所用的“优化”一词,更多的是一个参考,而非绝对,所有和优化相关的操作都离不开大量的数据样本,对应的性能指标定义,和无数次的调优方案尝试,调整。本文将“优化”定义为工作负载相同的情况下响原创 2017-11-27 14:23:51 · 442 阅读 · 0 评论 -
select 常用语句总结
1、查询数值型数据:SELECT * FROM tb_name WHERE sum > 100;查询谓词:>,=,,!=,!>,!,=2、查询字符串SELECT * FROM tb_stu WHERE sname = ‘Cricode.com’SELECT * FROM tb_stu WHERE sname like ‘Uncle%Too’原创 2017-11-27 14:50:11 · 2848 阅读 · 0 评论 -
mysql 表分区 按天分区
MySQL表分区就是把一张表根据设定好的条件下把表切分成若干个小表相互之间,在MySQL的5.1版本以后就开始支持表分区的功能,在使用表的分区后会使MySQL中大表在平时查询统计时性能提升。使用MySQL的表分区有以下这些优点: 1.与单个磁盘或文件系统分区相比,可以存储更多的数据 2.很容易就能删除不用或者过时的数据 3.一些查询可以得到极大的优化 4.涉及到 S原创 2017-12-14 10:30:57 · 12164 阅读 · 2 评论 -
order by 和 group by 的区别?
order by 排序查询、asc升序、desc降序示例:select * from 学生表 order by 年龄 查询学生表信息、按年龄的升序(默认、可缺省、从低到高)排列显示也可以多条件排序、 比如 order by 年龄,成绩 desc 按年龄升序排列后、再按成绩降序排列group by 分组查询、having 只能用于group b原创 2017-12-26 14:55:33 · 506 阅读 · 0 评论 -
MySQL 多表查询练习
/创建部门表/ CREATE TABLE dept( deptno INT PRIMARY KEY, dname VARCHAR(50), loc VARCHAR(50) );/创建雇员表/ CREATE TABLE emp( empno INT PRIMARY KEY, ename VARCHAR(50), job VARCHAR(50), m转载 2018-02-07 16:40:03 · 870 阅读 · 0 评论 -
MySQL数据库开发规范 (1.0版,2018年)
修订记录修订时间修订后版本发文号修订部门 及修订人修订要点2018-03-221.0版 研发部运维组:唐亚杰创建 引言 1.1 背景及目的 本规范的目的是使本公司开发团队能以标准的、规范的方式设计和编码。通过建立编码规范,以使每个开发人员养成良好...原创 2018-04-10 10:17:02 · 1188 阅读 · 0 评论 -
MySQL触发器案例分析及before与after的区别
触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,例如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器创建语法四要素:1.监视地点(table)2.监视事...原创 2018-05-03 09:47:30 · 3178 阅读 · 0 评论 -
存储过程(带有逻辑的sql语句)
创建存储过程 DELIMITER –声明存储过程的结束符CREATEPROCEDUREprotest()–存储过程名称(参数列表)BEGIN–开始–可以写多个sql语句;–sql语句+流程控制SELECT∗FROMemployee;END–声明存储过程的结束符CREATEPROCEDUREprotest()–存储过程名称(参数列表)BEGIN–开始–可以写多个sql语句;–sql语句+流程控制...原创 2018-05-18 12:05:51 · 852 阅读 · 0 评论 -
阿里的Mysql规范
MySQL库表设计规范表设计1) 表必须定义主键,默认为ID,整型自增,如果不采用默认设计必须咨询DBA进行设计评估 2) ID字段作为自增主键,禁止在非事务内作为上下文作为条件进行数据传递 3) 禁止使用外键 4) 多表中的相同列,必须保证列定义一致 5) 国内表默认使用InnoDB,表字符集默认使用gbk,国际默认使用utf8的表 6) ...原创 2018-05-18 15:23:05 · 1225 阅读 · 0 评论 -
去哪儿MySQL开发规范
1.命名规范 (1)库名、表名、字段名必须使用小写字母,并采用下划线分割。 (2)库名、表名、字段名禁止超过32个字符。 (3)库名、表名、字段名必须见名知意。命名与业务、产品线等相关联。 (4)库名、表名、字段名禁止使用MySQL保留字。(保留字列表见官方网站) (5)临时库、表名必须以tmp为前缀,并以日期为后缀。例如 tmp_test01_20130704。 (6)备份库、表必须...原创 2018-05-18 15:43:49 · 498 阅读 · 0 评论 -
什么是MVCC
什么是MVCC 1.1 基础概念 MVCC,Multi-Version Concurrency Control,多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问;在编程语言中实现事务内存。 如果有人从数据库中读数据的同时,有另外的人写入数据,有可能读数据的人会看到『半写』或者不一致的数据。有很多种方法来解决这个问题,叫做并发控制方法。最简单的方...原创 2018-05-25 16:43:59 · 16079 阅读 · 1 评论 -
MySQL 事务
MySQL 事务 MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务! 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部...原创 2018-05-16 16:40:43 · 145 阅读 · 0 评论 -
关于MySQL InnoDB锁
Innodb中的锁共享锁和排它锁(Shared and Exclusive Locks) 共享锁和排它锁是行级锁,有两种类型的行级锁 共享锁(s lock)允许持有锁的事务对行进行读取操作 排它锁(x lock)允许持有锁的事务对行进行更新和删除操作 事务a在行r上拥有共享锁,则其他事务可以获得r的共享锁,无法获得r的排它锁,即可读不可写 事务a在翻译 2017-12-08 12:21:27 · 212 阅读 · 0 评论