
MySQL
Soinice
还记得99 年的那个春天,我把握住了机会,赶上了互联网的开头,我就是那只会飞的猪~
展开
-
MySQL - SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?
left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。inner join :内连接,又叫等值连接,只返回两个表中连接字段相等的行。full join :外连接,返回两个表中的行:left join + right joincross join :结果是笛卡尔积,就是第一个表的行数乘以第...原创 2018-05-24 16:13:12 · 298 阅读 · 0 评论 -
MySQL最佳入门 - 数据库分类
数据库的分类早期比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。关系型数据库关系型数据库是创建在关系模型基础上的数据库,由一个或多个二维关系数据表组成,通过建立表之间的关系来定义数据库的结构。在关系数据库中最重要的是数据表,数据表把相关联的数据按行和列排列到一起来描述一个实物。...原创 2019-07-14 13:58:42 · 350 阅读 · 0 评论 -
MySQL最佳入门 - 简单的SQL语句CRUD
以下是一些简单的CRUD目录创建和删除数据库CREATEDROPSHOWERROR创建和删除表CREATE TABLEDROP TABLESHOW TABLESUSE查看数据表结构DESC 或者DESCRIBESHOW插入数据INSERT INTO TABLE总结创建和删除数据库CREATE创建数据库:...原创 2019-07-14 20:57:16 · 308 阅读 · 0 评论 -
MySQL最佳入门 - MySQL架构
了解MySQL的逻辑架构,可以帮助我们更好理解MySQL是如何工作的,以及在MySQL工作中需要注意的地方,并且理解有关于数据库的基本概念与知识。目录MySQL的逻辑架构服务层、核心层和存储引擎层客户端服务层核心层存储引擎层可插式存储引擎文件系统总图支持接口连接池SQL接口、解析器、优化、缓存和缓冲池可插式存储引擎MySQL的...原创 2019-07-14 21:22:23 · 251 阅读 · 0 评论 -
MySQL最佳入门 - MySQL的并发控制
目录MySQL事务处理什么是事务事务的四大特性原子性(Atomicity)一致性(Consistent)隔离性(Isolation)持久性(Durable)事务举例多事务执行方式串行执行特点交叉并发执行特点同时并发执行特点并发执行导致的问题什么是数据不一致丢失修改(lost update)不可重复读(non-repe...原创 2019-07-14 22:06:38 · 392 阅读 · 0 评论 -
MySQL最佳入门 - MySQL锁(读锁、写锁、悲观锁、乐观锁)
什么是锁为什么要有锁因为为了避免多事务并发处理导致数据不一致,所以多事务之间要隔离。事务对某个数据操作前,先向系统发出请求,对其加锁,加锁后,事务则对此数据对象具有一定的控制。在释放锁之前,其他事务不能更新此对象。锁的基本类型读锁读锁,又称共享锁。当事务1对某个数据对象加读锁,则其他事务只能对此数据对象加读锁,不能加写锁。直到事务1释放这个锁。写锁写锁,又称排它锁。...原创 2019-07-14 23:05:02 · 1119 阅读 · 0 评论 -
MySQL最佳入门 - MySQL存储引擎
目录存储引擎分类MYISAMInnoDBMEMORYNDB存储引擎比较存储引擎分类MYISAMMySQL 5.5.5之前的默认存储引擎。支持大文件,通常认为是256TB,一般来讲没有限制,但是受操作系统的影响; 适合读多写少的应用场景; 每个MYISAM表的最大索引数是64,可以通过编译改变; BLOB和TEXT类型可以被索引; 支持全文索引; 仅...原创 2019-07-14 23:30:15 · 205 阅读 · 0 评论 -
MySQL最佳入门 - MySQL数据类型之整型
目录数据类型定义数据类型的本质数据分类的意义整数类型有符号(默认)无符号指定最大显示长度最大长度无影响填充(zerofill)整型类型的选择数据类型定义数据类型的本质定义数据类型本质上是在定义列数据分类的意义分配合适的存储空间; 采用不同的操作方法; 对应不同的需求。整数类型MySQL中提供多种对于数值的数据类型; 不...原创 2019-07-16 00:15:30 · 345 阅读 · 0 评论 -
MySQL最佳入门 - MySQL数据类型之存储带小数的类型
存储带小数的类型浮点数和定点数类型来存储带小数的数值;使用(M,D)的方式设定M的精度(或显示的总位数)和D标度(小数的位数)。原创 2019-07-16 12:03:09 · 10730 阅读 · 0 评论 -
MySQL最佳入门 - MySQL数据类型之日期和时间类型
本篇文章MySQL版本:+-----------+| version() |+-----------+| 5.5.53 |+-----------+目录日期和时间类型YEAR(M)创建表正常操作插入0操作插入‘0’操作TIME创建表正常操作不带:操作空格操作DATE创建表正常操作DATETIME创建表...原创 2019-07-16 23:33:33 · 208 阅读 · 0 评论 -
MySQL最佳入门 - MySQL数据类型之字符串类型以及TEXT类型
本篇文章MySQL版本:+-----------+| version() |+-----------+| 5.5.53 |+-----------+字符串类型字符串类型是一个统称,包含多种不同的数据类型; 分为文本字符串类型和二进制字符串类型; 不仅可以存储字符串,还可以存储其他类型; 字符串可以区分或不区分大小写的串比较; 支持进行模式匹配查找;CHA...原创 2019-07-18 00:19:01 · 2175 阅读 · 0 评论 -
MySQL - 如何优化模糊查询(like 模糊查询)
在MySQL中,模糊查询肯定要使用like关键字,然后在加 %%,是代表前模糊还是后模糊。数据量小的情况下,不容易看出查询的效率,但是数据量达到百万级,千万级甚至更高的时候,查询的效率就很容易显现出来了,此时,查询效率就显得很重要了,接下来,就要看你如何优化了。前面讲过MySQL - 如何提高SQL的查询效率(where条件优化)全局检索建立索引的情况下一般情况下like模...原创 2019-08-04 23:15:50 · 27569 阅读 · 26 评论 -
MySQL - Navicat连接不上问题排查步骤 1130 - Host '888' is not allowed to connect to this MySQL server)
今天用宝塔搭了个LNMP,mdzz,Navicat死活连接不上MySQL,只能一步步排查。1130 - Host '888' is not allowed to connect to this MySQL server这个问题可能是因为在数据库服务器中的mysql数据库中的user的表中没有权限(也可以说没有用户),下面将记录我遇到问题的过程及解决的方法。Navicat连接不上...原创 2019-08-15 17:22:10 · 608 阅读 · 0 评论 -
MySQL - Linux下查看MySQL启动状态
很多情况下,需要确定MySQL是否启动正常。netstat -ntlp查看端口是否已经存在(可以验证是否启动)[root@iZ2zefmhn4kcl3t3dg4me7Z ~]# netstat -ntlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address F...原创 2019-08-29 22:03:10 · 17411 阅读 · 0 评论 -
MySQL最佳入门 - MySQL数据库概述
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。第一款关系型数据库,大概是在80年代所产生的的,数据库是一个非常年轻的技术。数据库的基本概念什么是数据库数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可...原创 2019-07-14 13:40:21 · 569 阅读 · 0 评论 -
MySQL - Linux安装MySql 5.5.45 操作步骤【亲测】
你踩过的坑,终究会成为你进步的动力。记录一下熬夜安装MySQL的相关步骤下载自行百度,版本选择:MySQL-server-5.5.45-1.linux2.6.x86_64MySQL-client-5.5.45-1.linux2.6.x86_64任意一款 ftp工具。检查环境查看是否已经安装相关MySQL:rpm -qa | grep -i mysql...原创 2019-06-21 02:16:30 · 2317 阅读 · 0 评论 -
MySQL - 查询今天、昨天、本周、上周、本月、上月、本季度、上季度、今年、去年的数据
建表语句如下:123456CREATE TABLE `order` ( `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `order_name` VARCHAR(45) NOT NULL, `order_time` DATETIME NOT NULL, PRIMARY KEY (`id`))下面根据 order_time 字段来查询各个时间段内...转载 2018-07-16 14:13:20 · 718 阅读 · 0 评论 -
MySQL - 关于建表的一些建议
MySQL作为关系型数据库,被用来存储持久化的数据,避免不了需要创建表。如果没有利用ORM(对象关系模型)来自动创建表,则需要开发者通过图形界面(Navicat)或者手写MySQL语句。由于在生产环境下,我们对MySQL数据库的操作通常是通过命令行进行操作,因此,建议建表的时候也手写MySQL语句(不建议用图形界面建表)。1、添加注释的格式在编写MySQL语句时,我们通常会被要求加上注...原创 2018-07-24 15:49:08 · 401 阅读 · 0 评论 -
MySQL - CASE WHEN THEN ELSE END简单用法
UPDATE t_customerSET risk_level = ( CASE WHEN risk_level BETWEEN 1 AND 5 THEN 2 WHEN risk_level BETWEEN 6 AND 8 THEN 1 ELSE 0 END);原创 2018-07-25 11:04:45 · 608 阅读 · 0 评论 -
MySQL - timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP
timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下:1.CURRENT_TIMESTAMP 当要向数据库执行insert操作时,如果有个timestamp字段属性设为CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间 2.ON UPDATE CURRE...转载 2018-07-20 12:10:55 · 1145 阅读 · 0 评论 -
IntelliJ IDEA(编码篇):快速生成实体类
目录说在前面配置数据库连接选择Mysql,连接数据库生成实体类(Entity)原生方式lombok方式总结源码下载说在前面作为一名码字的猴子,除了Ctrl+c 和 Ctrl+v,还应该懂点其他的(非快捷键)。前阵子写了一篇:IntelliJ IDEA(编码篇):集成Junit4插件,快速生成测试类配置数据库连接选择Mysql,连接数据库...原创 2018-09-12 17:12:32 · 3148 阅读 · 0 评论 -
MySQL - 如何提高SQL的查询效率(where条件优化)
目录说在前面35条优化规则总结说在前面整天说SQL优化,SQL优化,到底怎么才算是SQL优化呢,下面从百度总结了一些关于Oracle里常用的一些有效的优化方法。仅供参考,文章内容来源于网络。35条优化规则(1)优先考虑建立索引对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。(2)需要当心的WHERE子句...原创 2018-11-25 22:37:40 · 13463 阅读 · 2 评论 -
MySQL - 常见SQL笔试题整理(长期更新)
1)有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条SQL语句查询出这三条记录并按以下条件显示出来: 大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。select(case when 语文 >= 80 then '优秀' when 语文 >= 60 and 语文 < 80 then ...原创 2018-11-25 23:56:34 · 1856 阅读 · 1 评论 -
MySQL - 生成32位无"-"UUID
如果是主从即“M-S模式”,最好是不使用MySQL自带函数UUID()来生成唯一主键,因为主表生成的UUID要再关联从表时,需要再去数据库查询这个UUID,需要多进行一次数据库交互,而且在这个时间差里面主表很有可能还有数据生成,这样就很容易导致关联的UUID出错。如果真要使用UUID,可以在Java中生成后,直接存储到DB里,这时主从的UUID就是一样的了。生成UUID这里只是为了演示...原创 2018-12-02 22:49:20 · 2482 阅读 · 0 评论 -
MySQL - 当LIMIT 进行分页时,为什么出现了重复数据
哦,这时写的一个破SQL,遗留了个问题,没有去注意,所以造成了,有重复数据。因为引用了 PageHelper 插件,期初还以为是 插件有问题。后来想想,毕竟整个框架都是用的这个插件,就算有问题早应该会出现了。所以,第一时间想到了SQL,的确,去了排序就没有问题。说在前面数据库分页是后台经常要使用的技术手段,有时候进行数据库查询会根据业务需要对某一字段排序,那么当待排序字段值相同时,我们...原创 2018-12-03 16:51:45 · 5433 阅读 · 1 评论 -
MySQL - 数据库的热备份和冷备份的优缺点
文章转自:http://www.linuxidc.com/Linux/2014-03/98710.htm冷备份(off, 慢, 时间点上恢复)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份数据库信息而言,冷备份是最快和最安全的方法。冷备份的优点: 1.是非常快速的备份方法(只需拷贝文件) 2....原创 2018-12-05 15:28:57 · 1316 阅读 · 0 评论 -
写入到SQL语句时数据包含单引号(')的处理方法
工作中遇到一个需求,就是需要把mysql里的一些表数据生成db文件,给客户端使用,客户端使用sqlite数据库;所以就写了个Utils,可惜 遇到了一个 bug,浪费了我一下午时间。用SQL语句往数据库某字段(字符型)中插入字符串,但是当该字符串中带有单引号(’)时就会出错!因为插入的字符串被从单引号处截断,造成SQL语句的语法错误。很恶心,比如西安的拼音,数据库里居然是 xi'an...原创 2018-12-24 18:19:32 · 14222 阅读 · 2 评论 -
MySQL - SELECT LAST_INSERT_ID() 使用总结
当一个页面中包含了多个表存储的时候,这时候需要有个主键进行更新其他表。比如:新增用户信息,但是 用户信息包含的一部分信息在其它表中,这时候你需要通过用户id来进行add,这时候你如果用普通的insert,只会返回0和1,这时候就需要用到这个函数了。目录函数介绍举个例子官方文档LAST_INSERT_ID()LAST_INSERT_ID(expr)函数介绍SEL...原创 2019-03-27 16:22:36 · 37117 阅读 · 4 评论 -
MySQL - Linux下开启、关闭、重启MySQL服务
启动使用 service 启动:service mysql start 使用 mysqld 脚本启动:/etc/inint.d/mysql start 使用 safe_mysqld 启动:safe_mysql&停止使用 service 启动:service mysql stop 使用 mysqld 脚本启动:/etc/inint.d/mysql stop mysqladm...原创 2019-08-29 22:11:15 · 311 阅读 · 0 评论