![](https://img-blog.csdnimg.cn/20190829144511165.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Database - MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (关系数据库管理系统) 应用软件之一。
Roger_CoderLife
项目开发的六个阶段:1.充满热情2.醒悟3.痛苦4.找出罪魁祸首5.惩罚无辜6.褒奖闲人
展开
-
插入数据库中的数据乱码
今天在做spring-boot项目测试时,发现插入到数据库中的数据乱码:于是开始了地毯式的搜查问题原因:(1)首先看看后台接收数据有出现乱码没有,结果发现编码OK,没问题。(2)接着看了下,是不是数据库的编码问题,OK,两个都是utf8,没问题。(3)那咱们再看看是不是Hibernate自动创建的表有问题?是不是把String类型的字段到数据库中设置编码不对呢?还是没问题!优秀!varchar类型的字段都是utf8编码。(4)都没问题!怎么办?老办法,试试链接地址后面转载 2020-09-12 19:39:12 · 2136 阅读 · 0 评论 -
SQL中Group By的使用
SQL中Group By的使用1、概述“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。2、原始表3、简单Group By示例1select 类别, sum(数量) as 数量之和from Agroup by 类别返回结果如下表,实际上就是分类汇总。4、Group By 和 Order By示例2select 类别,...转载 2020-09-02 15:48:17 · 224 阅读 · 0 评论 -
sql语句大全(详细)
数据库操作1.查看所有数据库show databases;2.查看当前使用的数据库select database();3.创建数据库create databases 数据库名 charset=utf8;5.删除数据库drop database 数据库名6 .使用数据句库use database 数据库名7.查看数据库中所有表show tables;表的操作1.查看表结构desc 表名...转载 2020-08-28 15:35:06 · 5260 阅读 · 0 评论 -
MySql(二十三)变量之系统变量
文章目录变量 系统变量 全局变量 会话变量变量概括图如下:变量系统变量:分为全局变量和会话变量 自定义变量:分为用户变量和局部变量系统变量系统变量:分为全局变量和会话变量定义:即系统变量是由系统提供的,属于服务器层面的(即当服务器启动的时候,它会提供这样的一组系统变量并且赋予默认值供我们来使用)注;由于系统变量是有系统提供...转载 2019-07-09 09:55:08 · 200 阅读 · 0 评论 -
MySql(十九)数据类型的介绍
文章目录数据类型 常见的数据类型 整型 小数 字符型 日期型数据类型常见的数据类型数值型:整型、小数(定点数、浮点数) 字符型:较短的文本:char、varchar;较长的文本:text、blob(较长的二进制数据) 日期型整型整型类型 字节 范围 tinyint 1 有符号:-128127;无符号:02...转载 2019-07-02 13:08:32 · 159 阅读 · 0 评论 -
MySql(十五)分页查询
分页查询应用场景:当要显示的数据,一页显示不全,此时需要分页提交sql请求实现:语法:SELECT 查询列表FROM 表[join type] JOIN 表2ON 连接条件WHERE 筛选条件GROUP BY 分组条件HAVING 分组后筛选条件ORDER BY 排序字段LIMIT offset,size;注:offset:要显示条目的起始索...转载 2019-06-26 10:41:47 · 261 阅读 · 0 评论 -
MySql(十一)Sql99之连接查询
文章目录Sql99 内连接 外连接 全外连接 交叉连接Sql99支持: 1.内连接(inner) 2.外连接:左外(left[outer])、右外(right[outer]),全外(full[outer])mysql中不支持全外 3.交叉连接(cross[outer])语法: SELECT 查询列表 FRO...转载 2019-06-18 09:15:29 · 133 阅读 · 0 评论 -
MySql(七)常见分组函数
分组函数作用:用作统计使用,又称作聚合函数或组函数常见分组函数如下:1. sum()求和2. avg()平均值3. min()最小值4.max()最大值5.count():计算非空的数据个数注:sum() 和avg()一般只适用于处理数值型的数据;min()、max()和count()适用于数值型、字符型和日期型的数据。 以上五种常见的分组函数都忽略null...转载 2019-06-12 10:15:12 · 412 阅读 · 0 评论 -
MySql(十)Sql92之内连接查询
文章目录连接查询的分类Sql92 等值连接查询 非等值连接查询 自连接查询连接查询的分类1.按照年代进行分类Sql92标准:仅仅支持内连接 Sql99标准(推荐):支持内连接和外连接(左外和右外)以及交叉连接2.按照功能进行分类内连接:等值连接、非等值连接、自连接 外连接:左外连接、右外连接、全外连接 交叉连接Sql92Sq...转载 2019-06-17 09:13:39 · 242 阅读 · 0 评论 -
MySql(十四)子查询之进阶练习
文章目录 进阶练习进阶练习案例1:查询和Zlotkey相同部门的员工姓名和工资分析:①查询Zlotkey的部门编号;②:在①的基础上进行查找姓名和工资SELECT last_name,salaryFROM employeesWHERE department_id = ( SELECT department_id FROM employees...转载 2019-06-21 09:37:19 · 641 阅读 · 0 评论 -
MySql (三) Select的基础查询
文章目录Select语句基本语法:查询表中的字段查询常量值和字符值表达式及函数Select其他用法Select语句基本语法:SELECT 查询列表 FROM 表名;1.这里的select相当于Java中的 System.out.println(“要打印的东西”);2.查询列表可以是:表中的字段、常量值、表达式、函数3.查询的结果是一个虚拟的表格举个栗子查询表...转载 2019-06-05 08:54:03 · 146 阅读 · 0 评论 -
MySql(六)常见单行函数
文章目录单行函数 字符函数 数学函数 日期函数 其他函数 流程控制函数常见函数分类:1.单行函数:(主要做数据的处理):concat、length、ifnull…2.分组函数:(做统计使用;因此又称为统计函数)单行函数字符函数1. LENGTH(‘字符’);作用:返回字符的字节长度;一个英文字符为一个字节;一个汉字按照不同...转载 2019-06-11 10:27:17 · 218 阅读 · 0 评论 -
MySq(十六)经典案例
经典案例一:查询平均工资最低的部门信息分析:查询department_id根据每个部门的最低平均工资进行升序排序 利用limit显示第一条信息的department_id 通过department_id查询该部门的所有信息/**1.按照部门进行分组,查询出每个部门的平均工资**/SELECT AVG(salary) 平均工资FROM employeesGROUP BY ...转载 2019-06-27 10:37:47 · 138 阅读 · 0 评论 -
MySql(二十二)视图
文章目录视图 视图的创建 视图的修改 删除视图 查看视图 视图的更新视图含义:视图是一个虚拟表但是可以和普通的表一样使用。 它是my5.1出现的新特性,是通过表动态生成的数据 视图行和列的数据来自于定义视图的查询中使用到的表,并且是在使用视图中动态生成的,只保存了sql逻辑,不保存查询结果.应用场景:多个地方用到相同的查询结...转载 2019-07-08 16:58:51 · 246 阅读 · 0 评论 -
MySql(二十六)函数
文章目录函数 函数的创建 函数的调用 函数的查看 函数的删除函数函数定义:是一组预先编译好的sql语句的集合,理解成批处理语句 (和存储过程的定义相同)好处:提高了代码的重用性 简化操作 减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率存储过程和函数的区别:存储过程可以有0个返回;也可以有多个返回。(适合做批量的插入...转载 2019-07-12 08:25:01 · 121 阅读 · 0 评论 -
MySql(十八)DDL语言
文章目录DDL 库的管理 表的管理 表的复制 案例练习DDLDDL:数据定义语言(库和表的管理)库的管理:创建、修改、删除表的管理:创建、修改、删除使用到的关键字:创建:create修改(修改库或表的结构):alter删除(删除库或表的结构):drop注:前面的修改(update)和删除(delete)均指的是对表中的数据的修改和...转载 2019-06-30 22:18:11 · 113 阅读 · 0 评论 -
MySql(二十五)存储过程
文章目录 存储过程 创建语法 调用语法 存储过程的删除 存储过程的信息查看存储过程引入:存储过程和函数类似于java中的方法Java中方法的好处:提高了代码的重用性 简化操作存储过程定义:是一组预先编译好的sql语句的集合,理解成批处理语句存储过程的好处:提高了代码的重用性 简化操作 ...转载 2019-07-11 09:03:37 · 190 阅读 · 0 评论 -
MySql(二十七)流程控制结构
文章目录流程控制结构 分支结构 循环结构 while loop repeat 循环结构的总结 循环经典案例流程控制结构流程控制结构的分类:顺序结构:程序从上往下顺序执行 分支结构:程序从两条或多条路径中选择一条执行 循环结构:程序在满足一定条件的基础上,重复执行一段代码。分支结构1. i...转载 2019-07-15 10:11:31 · 128 阅读 · 0 评论 -
MySql(二十一)TCL(事务控制语言)
文章目录TCL 基本概念 事务的ACID特性 事务的创建TCL基本概念1.TCL:事务控制语言2.事务:事务由单独单元的一个或多个SQL语句组成,在这个单元总每条SQL语句都是相互依赖的。而整个单独的单元作为一个不可分割的整体。如果单元中的某一条sql语句执行失败或产生错误,那么整个单元将进行回滚。所有受到影响的数据将返回事务开始以前的状态;如果单元中的...转载 2019-07-05 10:26:04 · 141 阅读 · 0 评论 -
MySql(二十四)变量之自定义变量
文章目录 自定义变量 局部变量 用户变量变量概括图如下:自定义变量自定义变量:分为局部变量和用户变量定义:见名知意即是用户自定义的变量注:有自定义变量是由用户自定的变量,因此在使用之前需要用用户声明赋值才可以使用。使用步骤:声明—>赋值 —> 使用(查看、比较、运算等)局部变量作用域:仅仅在它定义的begin...转载 2019-07-10 09:57:43 · 495 阅读 · 0 评论 -
MySql(十七)联合查询和DML语言
文章目录联合查询DML语言 插入语句 修改语句 修改单表的记录 修改多表的记录 删除 单表的删除 多表删除联合查询union 联合,合并:将多条查询语句的结果合成一个结果语法:查询语句1UNION查询语句2…UNION查询语句n;/**查询部门编号>30或邮箱中...转载 2019-06-28 11:12:33 · 180 阅读 · 0 评论 -
MySql(二十)常见约束和标识列
文章目录 常见约束 约束含义 约束分类 约束的添加分类 添加约束的时机 标识列常见约束约束含义用于显示表中的数据,从而保证表中数据的准确性和可靠性约束分类not null、default、primary key、unique、check、foreign key1. not null...转载 2019-07-03 15:28:54 · 596 阅读 · 0 评论 -
MySql(十三)子查询
文章目录子查询where或having后面的子查询select后面的子查询from后面的子查询exists后面的子查询子查询定义:出现在其他语句中内部的select语句,称为子查询或内查询外面的语句可以是insert、update、delete、select等;一般select作为外面语句较多。外面的语句如果是select语句,则此语句称为外查询或主查询分类:...转载 2019-06-20 11:47:40 · 127 阅读 · 0 评论 -
MySql (二)入门语句和基本操作
文章目录MySQL的基本操作增删改查mysql的入门语句:1.查看服务器下的库show databases;2.创建库(数据库被创建后它的名字是不可以更改的)create database 数据库名;2.1.插看当前所在的库select database();3.删除库drop database 数据库名;drop database if e...转载 2019-06-04 13:18:37 · 101 阅读 · 0 评论 -
[MySQL高级](四) 索引优化之索引失效
1. 前言 索引的建立是为了让我们更加高效快速的查询出结果,但是,要想充分利用起索引,我们首先要解决的最大问题就是要避免索引失效,下面我们来一起通过实例来探讨造成索引失效的情况,并通过优化SQL查询语句来避免索引失效。 ➤ 准备工作:、创建数据表SQLCREATE TABLE `staffs` ( `id` int(11) NOT NULL AUTO_INCREMENT ...转载 2019-05-21 11:48:33 · 193 阅读 · 0 评论 -
[MySQL高级](三) 索引分析
1. 单表1.1 建表SQLCREATE TABLE `article` ( `id` int(10) NOT NULL, `author_id` int(10) DEFAULT NULL, `category_id` int(10) DEFAULT NULL, `views` int(10) DEFAULT NULL, `comments` int(10) DEFA...转载 2019-05-20 22:26:08 · 110 阅读 · 0 评论 -
[MySQL高级](二) 索引简介
1. 概述 数据库除了数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。简而言之,索引是帮助MySQL高效获取数据的数据结构,是“排好序的快速查找数据结构”。 一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。我们平常所说的索引,...转载 2019-05-20 08:30:29 · 113 阅读 · 0 评论 -
MySql常用存储引擎介绍和选择
在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题,使用什么存储引擎。等下,存储引擎?什么是存储引擎呢?存储引擎关系数据库表用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单有的表复杂,有的表根本不用存储任何长期的数据,有的表读取非常快,但是插入数据时却很差;...原创 2019-04-01 14:11:00 · 268 阅读 · 0 评论 -
Navicat for Mysql连接mysql数据库时出现 2003-Can't connect to MySql server on 'localhost'(10061)
打开Navicat for Mysql,新建连接--测试连接出现以下情况:问题出现原因: 由报错语句可知,‘不能连接到mysql服务器’。即可能是MySQL数据库服务没有启动,启动mysqld.exe即可,已多次亲测。也可能是其他原因,但是这种原因最常见。解决方法: 1.打开 ' 计算机 '-->点击左边‘ 计算机 ’--&g...转载 2019-02-20 13:07:41 · 1138 阅读 · 1 评论 -
谈谈mongodb,mysql的区别和具体应用场景
引导最近对数据库比较感兴趣,于是就去研究了下部分相关热门的数据库。 MySQL关系型数据库。在不同的引擎上有不同 的存储方式。查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。开源数据库的份额在不断增加,mysql的份额页在持续增长。缺点就是在海量数据处理的时候效率会显著变慢。 Mongodb非关系型数据库(nosql ),属于文档型数据库...转载 2019-02-13 10:59:02 · 245 阅读 · 0 评论 -
Mysql的几种分布方式及应用场景
方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N。---适应场景: 适用于数据量较少的情况(元组百/千级)。---原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3)。Limit限制的是从结果集的M位置处取出N条输出,其余抛弃。...转载 2019-02-13 10:35:43 · 831 阅读 · 0 评论 -
高并发解决方案-mysql篇
1、mysql篇高并发大多的瓶颈在后台,在存储,mysql的正常的优化方案如下:1)代码中sql语句优化2)数据库字段优化,索引优化3)加缓存,redis/memcache等4)主从,读写分离5)分区表6)垂直拆分,解耦模块7)水平切分点评:1、1&2是最简单,也是提升效率最快的方式。也许有人说这两点你已经做的很好了,你的每条语句都命中了索引,是最高...转载 2019-02-18 10:10:30 · 739 阅读 · 1 评论 -
简单讲一下数据库的触发器的使用场景?
触发器,需要触发条件,当条件满足后做什么操作。触发器用处:比如校内网、开心网、Facebook,你发一个日志,自动通知好友,其实就是在增加日志时做一个后触发,再向通知表中写入条目。其是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是通过事件(增、删、改)进行触发而被执行的。其在表中数据发生变化时自动强制执行。常见的触发器有两种:after(for)、instead of...转载 2019-02-12 09:13:50 · 1322 阅读 · 0 评论 -
[MySQL高级](五) 查询截取分析
1. 查询优化1.1 永远小表驱动大表小表驱动大表的理解我们可以通过下面的java代码来理解一下:// 第一种循环的方式for(int i = 0;i < 5;i++){ for(int j = 0;j<1000;j++){ }}// 第二种循环的方式for(int i = 0;i < 1000;i++){ for(int j =...转载 2019-05-22 09:22:12 · 155 阅读 · 0 评论 -
[MySQL高级](一) EXPLAIN用法和结果分析
1. EXPLAIN简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。➤ 通过EXPLAIN,我们可以分析出以下结果:表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询➤ 使用方式如下:EXPLAIN +SQL语...转载 2019-05-17 08:59:59 · 167 阅读 · 0 评论 -
10分钟梳理MySQL知识点:揭秘亿级高并发数据库调优与最佳实践法则
做业务,要懂基本的SQL语句;做性能优化,要懂索引,懂引擎;做分库分表,要懂主从,懂读写分离...数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多。今天我们用10分钟,重点梳理一遍以下几方面:数据库知识点汇总; 数据库事务特性和隔离级别; 详解关系型数据库、索引与锁机制; 数据库调优与最佳实践; 面试考察点及加分项。...原创 2019-05-13 10:56:56 · 320 阅读 · 0 评论 -
MySql(五)select排序查询
基本语法:SELECT 查询列表FROM 表名WHERE 查询条件ORDER BY 排序列表(asc或desc)特点: 1.order by 子句可以支持单个字段、多个字段、表达式、函数、别名的查询 2.order by 一般位置查询语句的最后面(limit子句除外)举个栗子/**查询员工信息,要求工资按照从低到高进行排序(默认升序)**/SELECT * ...转载 2019-06-10 09:28:27 · 141 阅读 · 0 评论 -
MySql(九)连接查询
文章目录连接查询的分类 1. 按照年代进行分类 2. 按照功能进行分类注:在连接查询中有可能会出现笛卡尔乘积现象笛卡尔乘积现象:表1有m行;表2有n行;结果=m*n行发生:在多表查询时没有添加有效的连接条件解决:添加有效的连接条件Beauty表Id Name sex Boyfriend_id 1 柳岩 女 ...转载 2019-06-14 15:17:49 · 110 阅读 · 0 评论 -
MySql(十二)Sql92和Sql99的区别
sql92和sql99比较1.功能方面:sql99支持的较多2.可读性:sql99实现了连接条件和筛选条件的分离,因此可读性较高进阶练习:/**查询编号大于3的女神的男朋友信息,如果有则列出详细信息,如果没有则用null补充**/SELECT bea.id,bea.name,b.*FROM beauty beaLEFT OUTER JOI...转载 2019-06-19 09:33:48 · 2485 阅读 · 2 评论 -
MySql(八)分组查询
分组查询1. 简单分组查询/**案例1:查询每个部门的平均工资**/SELECT MAX(salary), job_idFROM employeesGROUP BY job_id;/**案例2:查询每个位置上的部门数**/SELECT count(*), location_idFROM departmentsGROUP BY location_id;2.具有筛选...转载 2019-06-13 10:00:02 · 430 阅读 · 0 评论