
数据库
文章平均质量分 86
趣学数据库
一宿君
专注于Java基础、进阶、面试以及计算机基础知识分享。偶尔认知思考、日常水文。
展开
-
【InnoDB数据存储结构】第3章节:区、段、碎片区和表空间
InnoDB 存储引擎的区、段、碎片区和表空间。原创 2024-01-05 12:28:33 · 1152 阅读 · 0 评论 -
【InnoDB数据存储结构】第2章节:InnoDB行格式
InnoDB行格式。原创 2024-01-04 10:00:00 · 1387 阅读 · 0 评论 -
【InnoDB数据存储结构】第1章节:数据页存储结构
InnoDB数据页存储结构。原创 2024-01-03 10:00:00 · 1542 阅读 · 4 评论 -
【索引的数据结构】第3章节:MySQL数据结构选择的合理性
MySQL 数据结构选择的合理性。原创 2024-01-02 15:02:15 · 1083 阅读 · 2 评论 -
【索引的数据结构】第2章节:InnoDB和MyISAM索引结构对比
InnoDB 和 MyISAM 索引结构对比。原创 2024-01-02 10:00:00 · 2162 阅读 · 4 评论 -
【索引的数据结构】第1章节:B+Tree存储结构
可以简单理解为索引好比一本书的目录,通过目录我们可以快速定位到我们要查看的章节。MySQL 中的数据同样也是根据索引分类,通过索引可以快速高效的查询到我们想要的数据。原创 2024-01-01 22:46:44 · 1246 阅读 · 4 评论 -
【实力踩坑】ORDER BY 不生效
组内自定义了动态表头,支持表头字段的排序(表头字段列名是什么,排序查询传进来的就是什么),那列表查询的时候只好把 sql 写成一个嵌套子查询,在最后进行动态。看着没毛病哈,但是实际查询 order by 后面的字段就是不生效,我尝试了好几种方式就 TM 不生效,我很气啊,就这个小破玩意耽误了我好长时间,咋整呢?从安全性角度看,使用#{}不存在安全问题,而使用存在安全问题。会把字段值完全拼接在 SQL 中,也就是是啥就是啥,当然这种方式会有注入的风险,但是对此处的实际场景来说也没啥风险,果断换成。原创 2023-12-28 09:38:11 · 1523 阅读 · 0 评论 -
【实力踩坑】Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter
乍一看没啥问题,运行就是报错,无用代码也已经注释了,最后找了各种方法才发现,注释的格式不对,在 if 语句中切忌不能使用。这样就可以了,xml 的坑,又踩了一遍。原创 2023-12-27 22:23:27 · 2087 阅读 · 0 评论 -
MySQL 清除表碎片空间
MySQL 清除碎片空间原创 2023-03-07 12:45:04 · 2099 阅读 · 4 评论 -
Linux系统下命令行安装MySQL5.7+详细步骤
Linux系统命令行安装MySQL5.7+详细步骤原创 2023-02-25 21:34:32 · 3393 阅读 · 6 评论 -
使用insert into和insert overwrite插入数据的区别【Hive or Odps】
使用insert into和insert overwrite插入数据的区别【Hive or Odps】原创 2022-07-18 13:37:17 · 5615 阅读 · 0 评论 -
在Linux中安装Redis
1、下载Linux版本的Redis安装包Redis官网下载地址:https://redis.io/download也可以在此处下载,包含各种版本(推荐):http://download.redis.io/releases/2、在Linux系统中安装Redis在上述下载redis的链接,找到合适的版本右键复制链接地址此时打开虚拟机终端窗口,默认是在主目录home文件夹下,然后利用命令wget后跟下载链接地址直接回车,直接就可以将安装包下载到linux中的主目录home中当然也可以使用Xf原创 2021-05-13 09:03:00 · 187 阅读 · 0 评论 -
MongoDB数据库系列(二)、MongoDB高级
第二章、MongoDB高级学习目标MongoDB分页&排序MongoDB聚合查询MongoDB优化索引MongoDB权限机制MongoDB备份还原实战可视化管理工具2.1、MongoDB排序&分页插入五条记录实现以年龄降序或升序排列语法:db.集合名.find().sort({条件字段:1/-1})Limit与Skip方法语法:db.集合名.find().sort().skip(数字).limit(数字)说明:skip跳过指定数原创 2021-05-24 11:23:32 · 349 阅读 · 0 评论 -
Oracle系列(一)、Oracle基础
第一章、Oracle基础一、 Oracle简介二 、安装Oracle1.1、推荐博主Oracle安装教程11.2、推荐博主Oracle安装教程22、推荐博主Oracle Client客户端安装教程3、推荐博主PLSQL可视化界面工具安装教程注意三者要按顺序安装!!!三、Oracle基础操作要求使用Oracle创建数据库和用户使用Oracle创建表并插入数据掌握Oracle安装掌握连接到Oracle掌握数据库的创建掌握用户的创建和权限授予掌握数据库表的创建掌握序列的创原创 2021-04-10 18:35:15 · 1380 阅读 · 5 评论 -
Redis数据库系列(六)、Redis哨兵模式
第六章、Redis哨兵模式学习哨兵模式前可以先了解下上章节主从复制学习目标 哨兵简介 启用哨兵模式 哨兵工作原理6.1、哨兵简介思考如下问题: 关闭master和所有slave 关闭期间的数据服务谁来承接? 找一个从机slave作为主机master 找一个主机?怎么个找法? 修改其他从机slave的配置,连接新的主机master 修改配置后,原始的主机恢复了怎么办? 启动新的master与slave 全量复制N+部分复制N哨兵哨兵(sentinel原创 2021-05-16 12:21:29 · 391 阅读 · 5 评论 -
Redis数据库系列(二)、Redis数据类型
第二章、Redis数据类型Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)、有序集合(sorted sets)等五中常用类型。2.1、Redis数据存储格式redis自身是一个Map结构,其中所有的数据都是采用key:value的形式存储数据类型指的是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串2.2、String类型及基本操作存储的数据:单个数据,最简单的原创 2021-05-09 11:09:48 · 270 阅读 · 6 评论 -
Oracle数据系列(三)、高级查询1
第三章、高级查询1学习目标3.1、查询3.1.1、什么是查询3.1.2、怎么查的3.1.3、条件查询实例查询全部行和列select * from students;查询部分行#查询地址是山东菏泽的学生信息select * from students where saddress = "山东菏泽";#查询地址不是山东菏泽的学生信息select * from students where saddress <> "山东菏泽";select * from stude原创 2021-04-14 15:42:18 · 355 阅读 · 2 评论 -
Redis数据库系列(七)、在windows上搭建redis集群(redis-cluster)
第七章、在windows上搭建redis集群(redis-cluster)7.1、所需软件Redis、Ruby语言运行环境、Redis的Ruby驱动redis-xxxx.gem。7.2、规划集群集群规划有三分节点的集群,每个节点有一主一从,需要六台redis服务器。我们用Redis-x64-5.0.10.zip版本做演示,redis解压后,再复制出5份,配置三主三从的集群。由于redis默认的端口号是6379,所以另外五台redis服务器的端口一次改为6380、6381、6382、6383、6原创 2021-05-18 09:13:26 · 667 阅读 · 6 评论 -
MySql数据库系列(二)、添加、更新和删除数据
第二章、添加、更新和删除数据学习目标2.1、添加数据为表中所有字段插入信息 指定所有字段名insert into 表名(字段1,字段2,字段3,……) values(值1,值2,值3,……); 指定所有字段名insert into 表名 values(值1,值2,值3,……); set语法格式insert into 表名 set 字段1 = 值1,字段2 = 值2,…… 同时添加多条记录insert into 表名(字段1,字段2,字段3,……) value原创 2021-04-11 13:17:39 · 297 阅读 · 0 评论 -
Redis数据库系列(三)、Redis持久化
第三章、Redis持久化学习目标 持久化简介 RDB AOF RDB与AOF区别 持久化应用场景3.1、持久化简介什么是持久化?利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。为什么要进行持久化?防止数据的意外丢失,保证数据的安全性。Redis持久化通常Redis将数据存储在内存中。实现数据持久化的方式有两种:1.RDB:全量持久化,使用快照的方式,保存某个时间点的全量数据,将内存中的数据不断写入磁盘。2.AOF:原创 2021-05-17 18:00:09 · 289 阅读 · 6 评论 -
Oracle数据库系列(六)、Oracle数据库对象
第六章、Oracle数据库对象学习目标使用函数实现数据处理使用过程实现数据处理使用包实现程序代码的组织学会在Oracle中使用过程学会在Oracle中使用函数学会在Oracle中使用视图学会在Oracle中使用序列6.1、过程创建存储过程练习1-------------创建存储过程(根据性别查询员工信息)create or replace procedure proc_emp_search_sex( ---此处参数的数据类型要和查询的表中字段类型保持一致(切记不可带指原创 2021-04-23 08:59:32 · 288 阅读 · 0 评论 -
Redis数据库系列(一)、Redis 入门
第一章、Redis 入门1.1、Redis简介问题现象海量用户高并发(无法同时处理海量请求)罪魁祸首——关系型数据库性能瓶颈:磁盘IO性能低下扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群解决思路(引用Nosql型数据库)降低磁盘IO次数,越低越好 —— 内存存储去除数据间关系,越简单越好 —— 不存储关系,仅存储数据1.2、Nosql型数据库 NoSQL:即Not-Only SQLF(f泛指非关系型的数据库),作为关系型数据库的补充。 作用:应对基于海量用户和海原创 2021-05-08 22:14:11 · 1237 阅读 · 2 评论 -
Redis数据库系列(四)、Redis事务、乐观锁和分布式锁
第四章、Redis事务4.1、事务机制开启事务multi提交事务exec回滚事务discard事务过程中所包含的命令语法出现错误,在exec提交事务时,整个事务将会自动回滚;而如果是命令赋值错误,在exec提交事务时,在这行赋值命令前面的正确命令都会事务提交成功,只有赋值错误这行代码会自动事务回滚。监视(锁)watch客户端1:127.0.0.1:6379> set nums 1000OK127.0.0.1:6379> watch numsO原创 2021-05-14 15:50:56 · 383 阅读 · 1 评论 -
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
这里写目录标题1、错误代码2、解决方法2.1、重置密码2.2、重新启动MySQL2.3、进入mysql中2.4、重新编辑`my.cnf`去除刚才的跳过密码校验段1、错误代码[root@iZuf6el9zfn76jfyw0aoi9Z /]# mysql -uroot -pEnter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)一般这个错误是由密码错误引起的原创 2021-11-16 14:00:13 · 7817 阅读 · 2 评论 -
Oracle系列(二)、SQL和操作符
第二章、SQL和操作符2.1 掌握须知理解SQL及其作用了解数据定义语言和数据操作语言了解事务控制语言和数据控制语言掌握 SQL 操作符WHAT(SQL是什么?)——Structured Query Language,结构化查询语言WHY(为何要使用SQL**?****)**——难道仅仅使用,PL/SQL Developer操作数据库?——应用程序如何与数据库打交道WHEN(何时使用?)——对Oracle执行所有的操作都可以——程序中的增删改查HO原创 2021-04-11 09:18:57 · 177 阅读 · 0 评论 -
Oracle数据系列(四)、高级查询2
第四章、Oracle高级查询2学习目标模糊查询LIKE查询时,字段内容并不一定与查询内容完全匹配,只要字段含有这些内容就行。#查询以李姓开头的员工信息select * from emp where ename like '李%';模糊查询BETWEEN-AND把某一字段中内容在特定范围内的记录查询出来。#查询年龄在18到20之间的员工信息(包括18和20)select * from emp where age between 18 and 20; 例如查询学生成绩在60到80之间的原创 2021-04-16 18:02:13 · 270 阅读 · 0 评论 -
Oracle数据库系列(八)、Oracle修改表结构中常用sql操作语句
创建表(复制表)为了不破坏原来emp表和dept表的结构,我们快速创建两张副表emp5(员工表)和dept5(部门表):首先创建表结构(和原表结构保持一致):--创建EMP5员工表create table EMP5( empno NUMBER(4) not null, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,原创 2021-07-17 12:22:03 · 818 阅读 · 0 评论 -
MySql数据库系列(三)、单表查询
第三章、单表查询学习目标3.1、简单查询select语句select [distinct] * | 字段1,字段2,字段3,…… from 表名[where 条件表达式1][group by 字段名 [having 条件表达式]][order by 字段名 [asc | desc]][limit [offset] 记录数] 字段1,字段2是表中指定查询的字段;星号‘*’是通配符表示查询所有字段;distinct表示剔除查询字段中重复的字段;group by 字段名表示查询原创 2021-04-11 17:19:00 · 1168 阅读 · 0 评论 -
Redis数据库系列(五)、Redis主从复制
第五章、主从复制学习目标 主从复制简介 主从复制工作流程 主从复制常见问题5.1、主从复制简介互联网“三高”架构 高并发 高性能 高可用原创 2021-05-15 22:23:47 · 252 阅读 · 8 评论 -
Oracle数据库系列(五)、PL/SQL
第五章、PL/SQL(难重点)学习目标什么是对象查询?如何使用Example查询已有实体对象的类似对象?如何使用Order对Criteria查询结果进行排序?如何使用Criteria限定查询返回的数据行数?什么是PL/SQL?PL/SQL语法结构?PL/SQL如何实现异常处理?游标的使用分为哪几个步骤?编写PL/SQL实现流程控制?使用PL/SQL编写动态SQL?使用PL/SQL实现异常处理?使用PL/SQL实现对游标的控制?了解PL/SQL的特点?掌握Pl/SQL的语法?原创 2021-04-22 17:36:29 · 176 阅读 · 0 评论 -
Oracle数据库系列(七)、在java中如何将日期字符串保存到Oracle数据库中对应的Date类型字段中
前言我们知道利用JDBC操作数据库时,插入SQL字段是个繁琐的过程,操作起来实际上并不是很复杂,但是在java中总有些字段类型与SQL中的字段类型不匹配,直接导致很烦!!!本文着重讲解如何将日期字符串插入到Orale中对应的Date类型字段中。注意Oracle中的Date字段ResultSet.getDate()PreparedStatement.setDate()都是java.sql.Date类型的,所以我们无论怎样转化,最终目标都是要将字符串或者java.util.Date类型转化成java原创 2021-06-20 12:40:24 · 2824 阅读 · 0 评论 -
Windows下安装Redis
1、下载Windows版本的Redis安装包下载安装包地址:https://github.com/MicrosoftArchive/redis/releases,如下图:2、解压Redis安装包redis压缩包非常小,只有几MB,下载好后,我们将安装包复制到D:\Program Files (x86)目录下进行解压3、开启redis.server服务启动后如下图所示:4、启动客户端连接redis服务器另外上述启动的服务是默认的服务,想要设置密码可以在redis.windows.原创 2021-05-13 15:50:33 · 718 阅读 · 5 评论 -
MySQL索引详解
MySQL索引1、什么是MySQL索引?1.1、索引原理1、什么是MySQL索引?索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。一种能帮助mysql提高了查询效率的数据结构:索引数据结构。1.1、索引原理索引一般是是以文件形式存储在磁盘中(也可以存于内存中),存储索引的原理大致可以概括为以空间换时间。数据库在未添加索引进行查询的时候默认是进行全文搜索,也就是说有多少数据就进行多少次查询,然后找到相应的数据就把它们放到结果集中,直到全文扫描完毕,原创 2021-11-12 14:53:07 · 1991 阅读 · 5 评论 -
MySql数据库系列(一)、数据库和表的基本操作
第一章、数据库和表的基本操作学习目标知识架构数据库基础知识数据类型数据表的基本操作表的约束设置表的字段值自动增加索引1.1、数据库基础知识-创建数据库create database 数据库名称;查看所以数据库show databases;查看数据库信息show create database 数据库名; 删除数据库drop database 数据库名;注意:删除数据库后,数据库中的所有数据都将被清除,原来分配的空间也将被收回!!!查看当前原创 2021-04-11 12:04:36 · 945 阅读 · 0 评论 -
MongoDB数据库系列(一)、MongoDB基础
第一章、MongoDB基础学习目标数据库种类MongoDB简介MongoDB安装MongoDB基本操作MongoDB文档增删修查(CURD)MongoDB实战教学管理系统数据库设计数据库种类关系型:Oracle、MySQL、SQLite 、SQL Server等非关系型(Not Only SQL):MongoDB(文档)、Redis/Memcache(内存)关系型和非关系型数据库软件区别相同点:都是数据库软件,用来存放项目数据不同点:关系型:1.遵循SQL标准,换句话说原创 2021-05-19 15:47:42 · 1148 阅读 · 11 评论 -
简述MySql中联表查询及(on和where条件的区别)
1、多表连接查询可分为:内连接(inner join)左外连接(left join)又外连接(right join)交叉连接(cross join)- 笛卡尔积全连接(full join)先假设有两张表tab1和tab2:tab1idage110220330tab2agename10张三20李四30王五1.1 内连接#内连接(取两表交集)SELECT * FROM tab1 a inn原创 2021-07-29 22:53:01 · 4571 阅读 · 0 评论 -
MySql数据库系列(四)、多表查询
第四章、多表查询学习目标4.1、外键什么是外键 外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束。 外键用于建立和加强两个表数据之间的链接。我们知道建立外键是为了保证数据的完整和统一性,即主表和从表中对应的数据保持统一,可以在建立外键时添加ON DELETE或ON UPDATE子句。在已存在的表上添加外键约束的语法格式如下:alter table 表名 add constraint 外键名(不能带引号) foreign key(外键字段名) refer原创 2021-04-12 10:12:25 · 289 阅读 · 2 评论