mysql函数

面试必备的10道MySQL题

a 夏天 提交于 2019-12-14 07:23:55
MySQL 事务,是我们去面试中高级开发经常会被问到的问题,很多人虽然经常使用 MySQL,SQL 语句也写得很溜,但是面试的时候,被问到这些问题,总是不知从何说起。下面我们先来了解一下什么是 MySQL事务,再给大家分享10道面试必备的MySQL题。 MySQL事务是数据处理的最小操作单元,是一组不可在分割的操作集合,这个操作单元里的一系列操作要么都成功,要么都失败。 1、MySQL主从复制的原理。 (1)、主库必须开启二进制日志 (2)、当有增删改的语句时,会记录到主库的binlog中 (3)、主库通过IO线程把binlog里面的内容传给从库的relay binlog(中继日志)(这是msyql复制是异步复制的原因) (4)、从库的sql线程负责读取它的relay log里的信息并应用到数据库中 2、Seconds_Behind_Master的原理。 表示sql线程和io线程之间的时间差 具体的计算:从库服务器当前的时间戳与二进制日志中的事件的时间戳相对比得到的,所以只有在执行事件时才能报告延迟。 不足: 一些错误(例如主备的max_allowed_packet不匹配,或者网络不稳定)可能中断复制,由于主从复制是异步操作,Seconds_Behind_Master可能显示为0 3、主从延迟的主要原因有哪些? (1)、慢SQL语句过多 (2)、从库的硬件比主库差 (3)

mySQL数据库(二)

我只是一个虾纸丫 提交于 2019-12-14 05:45:41
1.DQL:查询语句(重点掌握) 1.1 排序查询 语法 SELECT 字段名 FROM 表名 [ WHERE 条件 ] ORDER BY 字段名 [ ASC | DESC ] ; ASC: 升序,默认值 DESC: 降序 注意 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。 例子 查询所有数据,使用年龄降序排序 select * from student order by age desc ; 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩升序排序 select * from student order by age desc , math asc ; 补充案例 计算math 和 english总成绩 并按照总成绩降序排序 SELECT NAME , math + IFNULL ( english , 0 ) score FROM stu ORDER BY score DESC ; order by 总结 order by 子句后可以支持那些内容? 表中的字段 函数 order by 执行顺序? 最后再执行 除了limit语句 1.2 聚合函数 什么是sql函数 当我们学习编程语言的时候,经常会遇到函数。函数的好处是,它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了编写代码的效率,又提高了可维护性

MySQL面试题看这一篇就够了

a 夏天 提交于 2019-12-14 00:05:12
现在mysql相关的面试,面试官总会问一些相关的技术问题。在这里,因此就总结一些常见的mysql面试题,都是自己平时工作的总结以及经验。希望大家看完,能避开”面试坑”。 1、MySQL主从复制的原理。 (1)、主库必须开启二进制日志 (2)、当有增删改的语句时,会记录到主库的binlog中 (3)、主库通过IO线程把binlog里面的内容传给从库的relay binlog(中继日志)(这是msyql复制是异步复制的原因) (4)、从库的sql线程负责读取它的relay log里的信息并应用到数据库中 2、Seconds_Behind_Master的原理。 表示sql线程和io线程之间的时间差 具体的计算:从库服务器当前的时间戳与二进制日志中的事件的时间戳相对比得到的,所以只有在执行事件时才能报告延迟。 不足: 一些错误(例如主备的max_allowed_packet不匹配,或者网络不稳定)可能中断复制,由于主从复制是异步操作,Seconds_Behind_Master可能显示为0 3、主从延迟的主要原因有哪些? (1)、慢SQL语句过多 (2)、从库的硬件比主库差 (3)、同一个主库下有过多的从库 (4)、网络延迟 (5)、表分区过多 (还有一些原因,欢迎补充) 4、MySQL常见存储引擎及各自特点。 (1)、InnoDB 支持事务、行级锁、支持外键约束,主要面向OLTP的应用

MySQL经典面试题

大兔子大兔子 提交于 2019-12-13 23:59:29
提到MySQL 相信很多人都不陌生,MySQL 作为目前最流行的关系型数据库管理系统,在很多的应聘中,都会频繁被面试官问及。于是就自己总结了一些在面试中,经常面试官被提及的一些问题,希望能带给更多人帮助。 接下来就跟着我的步伐来了解一下吧! 1、MySQL主从复制的原理。 (1)、主库必须开启二进制日志 (2)、当有增删改的语句时,会记录到主库的binlog中 (3)、主库通过IO线程把binlog里面的内容传给从库的relay binlog(中继日志)(这是msyql复制是异步复制的原因) (4)、从库的sql线程负责读取它的relay log里的信息并应用到数据库中 2、Seconds_Behind_Master的原理。 表示sql线程和io线程之间的时间差 具体的计算:从库服务器当前的时间戳与二进制日志中的事件的时间戳相对比得到的,所以只有在执行事件时才能报告延迟。 不足: 一些错误(例如主备的max_allowed_packet不匹配,或者网络不稳定)可能中断复制,由于主从复制是异步操作,Seconds_Behind_Master可能显示为0 3、主从延迟的主要原因有哪些? (1)、慢SQL语句过多 (2)、从库的硬件比主库差 (3)、同一个主库下有过多的从库 (4)、网络延迟 (5)、表分区过多 (还有一些原因,欢迎补充) 4、MySQL常见存储引擎及各自特点。 (1)

SqlServer到MySql的转换

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-13 17:31:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近在做将Discuz!NT移植到mono+MySql环境,由于最新版本的Discuz!NT仅支持SqlServer,所以要移植首先是要增加Discuz.Data.MySql这个namespace,实现IDataProvider接口。所以,绝大部分工作就是SqlServer中函数和存储过程的移植。下面随着移植工作的进行,将要点做一些记录,备用。 格式:SqlServer MySql 1、DATEDIFF(n, [lastpost], GETDATE()) TIMESTAMPDIFF(minute, `lastpost`, NOW()) 2、SELECT TOP 1 `{0}` FROM `{1}forumfields` WHERE `fid`={2} SELECT `{0}` FROM `{1}forumfields` WHERE `fid`={2} LIMIT 0,1 3、SELECT ISNULL(MAX([tid]), 0) FROM [{0}] SELECT IFNULL(MAX(`tid`), 0) FROM `{0}` 4、SELECT SCOPE_IDENTITY() SELECT LAST_INSERT_ID() 5、SELECT CHARINDEX(',','aaa,bbb') SELECT

MySQL面试题看这一篇就够了

有些话、适合烂在心里 提交于 2019-12-13 16:43:24
现在mysql相关的面试,面试官总会问一些相关的技术问题。在这里,因此就总结一些常见的mysql面试题,都是自己平时工作的总结以及经验。希望大家看完,能避开”面试坑”。 1、MySQL主从复制的原理。 (1)、主库必须开启二进制日志 (2)、当有增删改的语句时,会记录到主库的binlog中 (3)、主库通过IO线程把binlog里面的内容传给从库的relay binlog(中继日志)(这是msyql复制是异步复制的原因) (4)、从库的sql线程负责读取它的relay log里的信息并应用到数据库中 2、Seconds_Behind_Master的原理。 表示sql线程和io线程之间的时间差 具体的计算:从库服务器当前的时间戳与二进制日志中的事件的时间戳相对比得到的,所以只有在执行事件时才能报告延迟。 不足: 一些错误(例如主备的max_allowed_packet不匹配,或者网络不稳定)可能中断复制,由于主从复制是异步操作,Seconds_Behind_Master可能显示为0 3、主从延迟的主要原因有哪些? (1)、慢SQL语句过多 (2)、从库的硬件比主库差 (3)、同一个主库下有过多的从库 (4)、网络延迟 (5)、表分区过多 (还有一些原因,欢迎补充) 4、MySQL常见存储引擎及各自特点。 (1)、InnoDB 支持事务、行级锁、支持外键约束,主要面向OLTP的应用

MySQL经典面试题

霸气de小男生 提交于 2019-12-13 16:38:14
提到MySQL 相信很多人都不陌生,MySQL 作为目前最流行的关系型数据库管理系统,在很多的应聘中,都会频繁被面试官问及。于是就自己总结了一些在面试中,经常面试官被提及的一些问题,希望能带给更多人帮助。 接下来就跟着我的步伐来了解一下吧! 1、MySQL主从复制的原理。 (1)、主库必须开启二进制日志 (2)、当有增删改的语句时,会记录到主库的binlog中 (3)、主库通过IO线程把binlog里面的内容传给从库的relay binlog(中继日志)(这是msyql复制是异步复制的原因) (4)、从库的sql线程负责读取它的relay log里的信息并应用到数据库中 2、Seconds_Behind_Master的原理。 表示sql线程和io线程之间的时间差 具体的计算:从库服务器当前的时间戳与二进制日志中的事件的时间戳相对比得到的,所以只有在执行事件时才能报告延迟。 不足: 一些错误(例如主备的max_allowed_packet不匹配,或者网络不稳定)可能中断复制,由于主从复制是异步操作,Seconds_Behind_Master可能显示为0 3、主从延迟的主要原因有哪些? (1)、慢SQL语句过多 (2)、从库的硬件比主库差 (3)、同一个主库下有过多的从库 (4)、网络延迟 (5)、表分区过多 (还有一些原因,欢迎补充) 4、MySQL常见存储引擎及各自特点。 (1)

my.ini的配置参数详解,以及binlog的三种模式

一曲冷凌霜 提交于 2019-12-13 15:48:35
先点赞,后观看,伸手才有好习惯 my.ini配置详解 【转载】 #*** client options 相关选项 ***# #以下选项会被MySQL客户端应用读取。注意只有MySQL附带的客户端应用程序保证可以读取这段内容。如果你想你自己的MySQL应用程序获取这些值。需要在MySQL客户端库初始化的时候指定这些选项。 [client] port = 3309 socket = /usr/local/mysql/tmp/mysql.sock [mysqld] !include /usr/local/mysql/etc/mysqld.cnf #包含的配置文件 ,把用户名,密码文件单独存放 port = 3309 bind-address = 0.0.0.0 server-id = 1 #表示是本机的序号为1,唯一 socket = /usr/local/mysql/tmp/mysql.sock pid-file = /usr/local/mysql/var/mysql.pid basedir = /usr/local/mysql/ datadir = /usr/local/mysql/var/ tmpdir = /usr/local/mysql/tmp/ #此目录被 MySQL用来保存临时文件.例如,它被用来处理基于磁盘的大型排序,和内部排序一样,以及简单的临时表

sql 字符串排序

南楼画角 提交于 2019-12-12 17:59:24
在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的。 网上提供了很多方法: 比如字段后" + 0" 或者 " *1", 但是如果是按照首字母排序实际上并没有效果, 顺序依旧让人摸不着头脑, 今天试了下做了个总结 一 按照数字排序 手动转换类型: 用下面的方法就可以了,使server_id+0之后再排序,问题解决了。 select 字段名 from 表名 order by 字段名+0 desc ; select 字段名 from 表名 order by 字段名*1 desc ; 使用MySQL函数CAST/CONVERT: mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过? CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。 这个类型 可以是以下值其中的 一个: BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL SIGNED [INTEGER] TIME UNSIGNED [INTEGER] 所以我们也可以用CAST解决问题: select server_id from cardserver where game_id = 1 order by CAST(server_id as SIGNED) desc

Mysql安装、配置、优化

一笑奈何 提交于 2019-12-11 20:59:11
Mysq安装 一、安装Mysql5.5为例。 1、运行 mysql 安装文件;   2、按 Next,然后选择安装方式,有 "Typical(默认)"、"Complete(完全)"、"Custom(用户自定义)",选择第二个选项 "Custom",下一步, MySQL Server (mysql服务器), Developer Components (开发者部分), Debug Symbols (调试符号), Server data files (服务器数据文件) 默认;   3、改变安装路径;原路径是"C:\Program Files\MySQL\MySQL Server 5.5\",也可以修改为:"E:\Program Files\MySQL Server 5.5\"。下一步,安装,会弹出窗口,点下一步,再点下一步,选择"Launch the MySql instance Configuration Wizard",意思是启动MySQL实例配置向导,再点击Finish,再点下一步,Detailed Configuration(详细配置)和Standard Configuration(标准配置),选择详细配置,下一步;   4、选择服务器类型,"Developer Machine(开发测试类,mysql占用很少资源)"、"Server Machine(服务器类型