您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

MySQL从入门到进阶,看这一篇文章就够了

时间:2019-08-07 09:41:47  来源:  作者:

 

现在JAVA开发人员一般都需要会主流数据库。开发人员需要对MySQL、Oracle、SqlServer这三个常用的熟悉了解。本次着重分享Mysql数据库的知识点,感兴趣的同学可以先收藏,再观看!

如果需要Oracle、SqlServer数据库知识点的分享,可以在文章底部留言告诉我。

文章目录:

  1. 请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
  2. 在 MySQL 中 ENUM 的用法是什么?
  3. CHAR 和 VARCHAR 的区别?
  4. 列的字符串类型可以是什么?
  5. MySQL 中使用什么存储引擎?
  6. TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?
  7. 主键和候选键有什么区别?
  8. MySQL 数据库服务器性能分析的方法命令有哪些?
  9. LIKE 和 REGEXP 操作有什么区别?
  10. BLOB 和 TEXT 有什么区别?
  11. 数据库的三范式?
  12. MySQL 表中允许有多少个 TRIGGERS?
  13. 什么是通用 SQL 函数?
  14. MySQL 中有哪几种锁?
  15. MySQL 数据优化。

1. 请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

SQL 标准定义的四个隔离级别为: read uncommited :读到未提交数据 read committed:脏读,不可重复读 repeatable read:可重读 serializable :串行事物

2. 在 MySQL 中 ENUM 的用法是什么?

ENUM 是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。 SQL 语法如下: Create table size(name ENUM('Smail,'Medium','Large');

3. CHAR 和 VARCHAR 的区别?

CHAR 和 VARCHAR 类型在存储和检索方面有所不同。 CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255。 当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随 空格。

4. 列的字符串类型可以是什么?

字符串类型是: SET BLOB ENUM CHAR TEXT VARCHAR

5. MySQL 中使用什么存储引擎?

存储引擎称为表类型,数据使用各种技术存储在文件中。 技术涉及: Storage mechanism Locking levels Indexing Capabilities and functions.

6. TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?

创建表时 TIMESTAMP 列用 Zero 更新。只要表中的其他字段发生更改,UPDATE CURRENT_TIMESTAMP 修饰符就将时间戳字段更新为当前时间。

7. 主键和候选键有什么区别?

表格的每一行都由主键唯一标识, 一个表只有一个主键。 主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引 用。

8. MySQL 数据库服务器性能分析的方法命令有哪些?

Show status 一些值得监控的变量值: Bytesreceived 和 Bytessent 和服务器之间 来往的流量。 Com 服务器正在执行的命令。 Created 在查询执行期限间创建的临时 表和文件。 Handler 存储引擎操作。 Select 不同类型的联接执行计划。 Sort_* 几 种排序信息。 Show session status like ‘Select’; Show profiles SET profiling=1; Show profilesG Show profile;

9. LIKE 和 REGEXP 操作有什么区别?

LIKE 和 REGEXP 运算符用于表示 ^ 和%。 SELECT * FROM WHERE * REGEXP "^b"; SELECT * FROM WHERE * LIKE "%b";

10. BLOB 和 TEXT 有什么区别?

BLOB

BLOB 是一个二进制对象,可以容纳可变数量的数据。有四种类型的 BLOB:

  • TINYBLOB
  • BLOB
  • MEDIUMBLOB
  • LONGBLOB

它们只能在所能容纳价值的最大长度上有所不同。

TEXT

TEXT 是一个不区分大小写的 BLOB。四种 TEXT 类型:

  • TINYTEXT
  • TEXT
  • MEDIUMTEXT
  • LONGTEXT

它们对应于四种 BLOB 类型,并具有相同的最大长度和存储要求。 BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小 写,对 TEXT 值不区分大小写。

11. 数据库的三范式?

第一范式:数据库表的每一个字段都是不可分割的。

第二范式:数据库表中的非主属性只依赖于主键。

第三范式:不存在非主属性对关键字的传递函数依赖关系。

12. MySQL 表中允许有多少个 TRIGGERS?

在 MySQL 表中允许有六个触发器,如下:

  • BEFORE INSERT
  • AFTER INSERT
  • BEFORE UPDATE
  • AFTER UPDATE
  • BEFORE DELETE
  • AFTER DELETE

13. 什么是通用 SQL 函数?

数学函数

  • Abs(num)求绝对值
  • floor(num)向下取整
  • ceil(num)向上取整

字符串函数

  • insert (s1,index,length,s2) 替换函数
  1. S1 表示被替换的字符串
  2. S2 表示将要替换的字符串
  3. Index 表示被替换的位置, 从 1 开始
  4. Lebgth 表示被替换的长度
  • upper(str),ucase(str)将字母改为大写
  • lower(str),lcase(str)将字母改为小写
  • left(str,length)返回 str 字符串的前 length 个字符
  • right(str,length)返回 str 字符串的后 length 个字符
  • substring(str,index,length)返回 str 字符串从 index 位开始长度为 length 个字符(index 从 1 开始)
  • reverse(str)将 str 字符串倒序输出

日期函数

  • curdate()、current_date( ) 获取当前日期
  • curtime()、current_time( ) 获取当前日期
  • now()获取当前日期和时间
  • datediff(d1、d2)d1 和 d2 之间的天数差
  • adddate(date,num)返回 date 日期开始,之后 num 天的日期
  • subdate(date,num)返回 date 日期开始,之前 num 天的日期

聚合函数

  • Count(字段)根据某个字段统计总记录数(当前数据库保存到多少条数据)
  • sum(字段)计算某个字段的数值总和
  • avg(字段)计算某个字段的数值的平均值
  • Max(字段)、min(字段)求某个字段最大或最小值

14. MySQL 中有哪几种锁?

MyISAM 支持表锁,InnoDB 支持表锁和行锁,默认为行锁。

表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并 发量最低。

行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最 高。

15. MySQL 数据优化。

  • 优化数据类型
  1. 避免使用 NULL,NULL 需要特殊处理, 大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。
  2. 仅可能使用更小的字段,MySQL 从磁盘读取数据后是存储到内存中 的,然后使用 cpu 周期和磁盘 I/O 读取它,这意味着越小的数据类 型占用的空间越小.
  • 小心字符集转换
  1. 客户端或应用程序使用的字符集可能和表本身的字符集不一样,这需要 MySQL 在运行过程中隐含地进行转换,此外,要确定字符集如 UTF8 是否支持多字节字符,因此它们需要更多的存储空间。
  • _优化 count(mycol) 和 count()*
  • 优化子查询
  1. 遇到子查询时,MySQL 查询优化引擎并不是总是最有效的,这就是为 什么经常将子查询转换为连接查询的原因了,优化器已经能够正确处理 连接查询了,当然要注意的一点是,确保连接表 (第二个表) 的连接列 是有索引的,在第一个表上 MySQL 通常会相对于第二个表的查询子 集进行一次全表扫描,这是嵌套循环算法的一部分。
  • 优化 UNION
  1. 在跨多个不同的数据库时使用 UNION 是一个有趣的优化方法, UNION 从两个互不关联的表中返回数据,这就意味着不会出现重复的 行,同时也必须对数据进行排序,我们知道排序是非常耗费资源的,特 别是对大表的排序。
  2. UNION ALL 可以大大加快速度,如果你已经知道你的数据不会包括重 复行,或者你不在乎是否会出现重复的行,在这两种情况下使用 UNION ALL 更适合。此外,还可以在应用程序逻辑中采用某些方法避 免出现重复的行,这样 UNION ALL 和 UNION 返回的结果都是一样 的,但 UNION ALL 不会进行排序。


Tags:MySQL   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  Tags: MySQL  点击:(7)  评论:(0)  加入收藏
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  Tags: MySQL  点击:(12)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  Tags: MySQL  点击:(18)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  Tags: MySQL  点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  Tags: MySQL  点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  Tags: MySQL  点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  Tags: MySQL  点击:(17)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  Tags: MySQL  点击:(21)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  Tags: MySQL  点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Tags: MySQL  点击:(31)  评论:(0)  加入收藏
▌简易百科推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  爱可生    Tags:MySQL   点击:(7)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  python数据分析    Tags:MySQL记录锁   点击:(18)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  linux上的码农    Tags:mysql   点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  元宇宙iwemeta    Tags:mysql   点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  吴彬的分享    Tags:Mysql数据库   点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  秃头码哥    Tags:MySQL数据库   点击:(17)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  笨鸟学数据分析    Tags:MySQL   点击:(21)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  笨鸟学数据分析    Tags:SQL语句   点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Java云海    Tags:分布式锁   点击:(31)  评论:(0)  加入收藏
MySQL的进阶查询 一、 按关键字排序 使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的...【详细内容】
2021-11-05  Java热点    Tags:SQL语句   点击:(28)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条