![](https://img-blog.csdnimg.cn/d66eeefef2944190ad0cfb961e8d9207.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 58
数据库相关笔记
极光雨雨
“芝士”与你分享 ———纳西妲
展开
-
【MySQL】将一张表的某一个值赋值到另一张表中
在MySQL中,要将一张表(我们称之为Table_A)的某个字段的值赋给另一张表(Table_B)的对应字段,你可以使用。两张表可以通过某个字段关联起来,并且想要将其中一张表的某个值赋值到另一张表的某个字段中。这里假设Table_A和Table_B有一个共同的字段。用于连接两张表,并且你想把Table_A的。字段的值赋给Table_B的。原创 2024-08-09 15:01:36 · 616 阅读 · 0 评论 -
MySQL 行锁和表锁是什么?区别,作用等学习总结
个人理解,所谓的锁就是为了保证数据库数据操作的一致性而产生的一种机制,即我们可能有很多数据,但是当我们有多个人或者多个线程或会话对同一条数据或同一批数据执行操作时,可能大家都要修改这一部分数据,但为了保证单独一个人的操作在前后都保持一致而不被其他人在自己不知情的情况下中途又修改了数据而导致的与自己预期结果不一致而导致的问题。原创 2024-04-07 11:30:03 · 1663 阅读 · 1 评论 -
MySQL 索引,优化,回表,执行计划等相关总结学习
先通过索引扫描,再通过ID(主键)索引去取索引中未能提供的数据,即为回表假设有表T 三个字段:id k name, 其中对 k 建立了单独索引如果语句是 select * from T where id=200,即主键查询方式(聚集索引),则只需要搜索 ID 这棵 B+ 树,查询一表即可如果语句是 select id, k from T where k=3,即普通索引查询方式,则只要搜索 k 索引树,这样的话查询一表即可。原创 2023-12-01 18:05:30 · 892 阅读 · 0 评论 -
spring RedisTemplate & RedisLockRegistry opsForXxx 基本使用总结以及介绍
为spring 对 redis 操作的高度封装,基本已经满足所有使用场景。若存在其他拓展使用我们可以自行封装工具类对基本操作进行组装。对 redis 锁的一些封装。原创 2023-11-30 18:34:50 · 286 阅读 · 0 评论 -
postgreSQL 查询所有模式的语句
postgre 数据库下携带模式的分组。原创 2023-11-28 13:57:34 · 722 阅读 · 0 评论 -
Mysql 设置表字段自动赋值创建时间,以及自动更新某一个字段的更新时间
一般表设计中记录都有创建时间以及更新时间,而 Mysql 也支持了这种通用的设计需求。(名字无所谓,只要不是关键字都可以),Mysql 同样给予了支持。在 DDL 建表语句中体现为。即,默认给了当前时间为默认值。在 DDL 建表语句中体现为。就是当前时间也就是记录的。时我们要更新当前记录的。原创 2023-08-24 13:37:57 · 2839 阅读 · 0 评论 -
Redis 持久化机制RDB(Redis DataBase)和AOF(Append-Only File) 学习总结
通过某个时间点或者每隔一定时间对当前redis 中的所有数据进行备份。原创 2023-07-14 14:55:00 · 668 阅读 · 0 评论 -
数据库一二三级缓存以及CPU一二三级缓存
是指与数据库的会话绑定的缓存,通过链接数据库查询到的结果将被缓存下载,如果再次查询相同的数据则会直接从缓存中获取返回。如果在一次会话中对数据执行了更新操作,那么将会自动清除缓存保持数据一致性。二级缓存指的是基于整个应用的缓存,会跨多个会话。当多个会话建立并访问同样的数据时会直接从缓存中返回减少与数据库的交互。但由于是跨多个会话的缓存,任意一个会话中如果对数据做了更新,那么必须清除所有会话的缓存来保持一致性。原创 2023-07-14 09:48:40 · 629 阅读 · 0 评论 -
MySQL 使用客户端以及SELECT 方式查看 BLOB 类型字段内容总结
这里CAST为类型转换函数,不仅可以BLOB转CHAR或VARCHAR其他的也可以。如果需要看某一条,则在后面加上where条件即可,这里的大写仅仅是我的习惯,也可以小写。弹出后选择保存为1.txt格式,名称随意自己起一个就可以,不要重复即可。最终直接打开txt文本即可看到内容,txt会自行将内容转为一般的字符。这里存储的是一个JSON串,如果你存的是其他普通内容也可以看得出来。首先选中当前BLOB字段然后右键如下选择。以最常见的navicat为例这里介绍。...原创 2022-07-26 10:11:37 · 8311 阅读 · 0 评论 -
数据库专题 一次性写入大量数据解决方案浅析以及大量数据对数据库性能影响的学习总结
原因以 Mysql 为例插入大量数据导致越来越慢甚至崩溃越来越慢 说明执行当前的操作可能已经占用了你大量的内存,数据库本身执行操作越来越费力,电脑是在被搞得太忙了处理的事情太多,几乎处理不过来了,这个时候显然如果能释放不需要的内存资源,或者提高数据库本身处理数据的性能自然是最有效的提升方式。大批量的数据操作一方面 是我们的代码对数据库数据的操作逻辑有直接的影响,因为我们直接决定了数据库操作数据的方式。一方面 是我们环境本身硬件设备的投入和建设力度。还有一方面 数据库为了应对不同的场景时需要修改原创 2022-01-13 17:30:36 · 4354 阅读 · 0 评论 -
Mysql 建表总长度限制(所有字段)学习总结 以及 所有字段长度计算方式
Mysql是存在表字段总长度限制的:每行允许最多4096字节长度,超过了最大长度是不行的mySQL对列限制比较宽松,好像最多允许1024个列但每行记录字段总长度有限制。当然也可能受到版本和大环境的影响,建议看下官网每个对应的说明...原创 2021-12-24 16:44:49 · 13199 阅读 · 0 评论 -
SQL积累 SQL函数总结及综述(Aggregate & Scalar) UNION 以及 UNION ALL区别
Aggregate 函数(聚合函数)聚合:计算从列中取得的值,返回一个单一的值,故称聚合AVG() — 返回平均值COUNT() — 返回行数FIRST() — 返回第一个记录的值 (MS Access)LAST() — 返回最后一个记录的值MAX() — 返回最大值MIN() — 返回最小值SUM() — 返回总和Scalar 函数(标准的,基本的 函数)基本函数: 基于输入值,返回一个单一的值UCASE() — 将某个字段转换为大写LCASE() — 将某个字段转换为小写MID原创 2021-12-24 16:26:12 · 220 阅读 · 0 评论 -
SQL积累 复制一个表数据到另一个表 SELECT INTO -- INSERT INTO ... SELECT
创建一个新表并复制另一个表的结构和数据到这张表CREATE TABLE 新建的表名ASSELECT * FROM 已经存在的表的表名其中 AS 可以省略,需要复制指定列结构和数据的时候可以将 * 切换为具体的列名,与一般的 SELECT 查询指定字段写法一致。SELECT INTO 复制一个表数据到另一张表(MYSQL 不支持该写法,但支持INSERT INTO … SELECT)语法示例复制所有列数据(可以当作备份操作)SELECT * INTO 新表表名 FROM 源表原创 2021-12-24 14:32:56 · 3689 阅读 · 0 评论 -
mysql报错 unknowError 1118
原因出现以上错误原因是:MYSQL建表有长度限制 MySQL要求每一个行的定义长度不能超过65535字节(1)单个字段如果大于65535,则转换为TEXT 。(2)单行最大限制为65535,这里不包括TEXT、BLOB。所谓单行最大限制指的就是一张表中所有字段的所设置的长度不得超过65535字节,例如一个表中有三个varchar字段长度30000,那么这个表的单行长度为:30000*3=90000,大于65535则报错不能建表,这里乘以3是因为数据库用的utf8编码,3个字节表示一个字符。原创 2021-09-10 18:16:09 · 1079 阅读 · 0 评论 -
SQL积累 计算相除之比+% ,转型,拼接, 多个左联,求和,统计,截取等
计算得出相除之比,将百分比号加入SELECT *, CONCAT(ROUND(CAST( receive_num AS NUMERIC )/count*100, 2), '%') as proportion FROM .....将字符串形式的数值转为数字类型to_number(val)类型转化语句 类似强转CAST ( receive_num AS NUMERIC )一般的拼接函数CONCAT(val1, val2)多个左联查询SELECT (A.*, B.*, C.*, D.*)原创 2021-04-03 19:51:54 · 403 阅读 · 0 评论 -
WEB开发 查询条件 含有特殊字符‘/’ ‘_’ ‘%‘查询失败,又不做限制时的处理方法
首先在 sql中的修改这里使用mybatis做演示,如果环境不同参考思路即可在拼入查询条件的末尾加上 escape ‘/’ 这里的escape 是让后面的字符不做转义处理 不一定非要使用‘/’ 其他也可以例子:<if test="record != null and record != ''">AND record like CONCAT(CONCAT('%',#{record,javaType=String,jdbcType=CHAR}), '%') escape '/'&原创 2021-04-03 19:42:03 · 639 阅读 · 0 评论 -
数据库专题 to_number()函数创建,nvl()函数创建还原
to_number() (psql)使用sql输入并执行创建CREATE OR REPLACE FUNCTION public.to_number(input character varying) RETURNS numeric LANGUAGE plpgsqlAS $function$ BEGIN RETURN CAST(input as NUMERIC);END$function$;nvl() (psql)类似于java 方法重载,注意参数的不同类型以及返回类型C原创 2021-04-03 19:07:52 · 677 阅读 · 0 评论 -
数据库专题 SQL积累--group by学后自己的理解
首先建表如下执行SELECT name FROM test GROUP BY name结果:-----Name-----aabbccddee为了便于理解在上面两个表之间加一个虚拟过度表相当于先对数据做一次分类,然后给出最后结果但是若直接执行select * 反而会报错,因为当个单元格中不允许有多个内内容存在,会导致关系混乱简单来说 group by的最终结果只能从group by后面的字段中选择展示若要累计可以使用count(id)和sum (number)coun原创 2021-04-03 18:58:58 · 135 阅读 · 0 评论 -
数据库专题 神州通用数据库适配基础适配问题
数据库链接spring.datasource.driver-class-name=com.oscar.Driverspring.datasource.url=jdbc:oscar://192.168.***.***:2004/dbnamespring.datasource.username=testspring.datasource.password=testpagehelper.helper-dialect=Oracle数据库类型选择Oracle数据库适配一般会出现的问题原因字段名与数据原创 2021-03-21 20:12:46 · 516 阅读 · 0 评论 -
数据库专题 数据库适配--瀚高数据库4.3-4.5.5适配基本适配问题
数据库链接配置均已springboot配置文件说明,内容基本一致4.3.x 版本spring.datasource.driver-class-name=org.postgresql.Driverspring.datasource.url=jdbc:postgresql://192.168.***.***:5866/dbnamespring.datasource.username=highgospring.datasource.password=highgo#4.5.5highgospring原创 2021-03-21 20:05:05 · 1230 阅读 · 0 评论 -
数据库专题 数据库适配--达梦数据库基本适配问题DM
数据库链接以springBoot的为例,内容类似如下:spring.datasource.driver-class-name=dm.jdbc.driver.DmDriverspring.datasource.url=jdbc:dm://192.168.*.:5236/dbnamespring.datasource.username=TESTspring.datasource.password=TEST2021依赖依赖<dependency> <groupId>c原创 2021-03-21 20:00:06 · 591 阅读 · 0 评论 -
数据库专题 数据库适配问题--人大金仓数据库适配问题总结(kingbase8)
人大金仓数据库链接配置这里以springBoot配置文件演示:spring.datasource.driver-class-name=com.kingbase8.Driverspring.datasource.url=jdbc:kingbase8://192.168.***.***:54321/数据库名spring.datasource.username=SYSTEMspring.datasource.password=SYSTEM指定分页组件数据库方言pagehelper.helper-di原创 2021-03-21 19:52:36 · 7093 阅读 · 0 评论 -
数据库专题 redis非关系型数据库 redis基础数据类型以及 Maven项目链接Redis和基本操作
redis的数据类型A、redis的数类型1、String(常用)单个key-value的存和取set key valueget key多个key-value的存和取mset key value [key value …]mget key [key …]删除keydel key [key …]incr key 对key的结果进行自增incrby key 3 对key的结果一次增加3decr key 对key的结果进行自减decrby key 3 对key原创 2020-09-06 14:51:26 · 183 阅读 · 0 评论 -
Java专题 数据库连接池,手动创建连接池+dbcp+C3P0+Druid+dbUtil
连接池(database connection pool)每一次链接数据库后都会关闭一次链接是相当麻烦和浪费时间和资源的。现在我们可以通过连接池获取数据库链接,用完了再放回去,可以省去不停创建和关闭连接的时间和操作,更加高效,现在普遍连接池都可以自己设置连接池的配置。手动创建连接池import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;i原创 2020-08-22 12:46:19 · 711 阅读 · 0 评论 -
数据库专题 JDBC事务操作和事务的四个特性以及四个隔离级别 + 事务案例
事务事务说白了就是做某一套事情的全部流程,如果其中的某一个环节出现错误了,那么就不能继续进行下去,在这个流程中,发生错误之前的操作也要撤回。要么走完一整个流程,要么就回到最初的状态,不允许不完整的执行。同时在一个流程在被操作的时候,只能有一个操作者。操作前后发生的变化要一致,符合事实。其实和现实生活中的要求是一致的。只不过在这里叫做事务。事物的回滚:只要有一个子模块失败了,就让所有的操作(数据)重新回到最原始的状态事物的提交:所有的子模块全部正确的执行,整个事物完成JDBC事务测试代码Con原创 2020-08-22 12:18:28 · 176 阅读 · 0 评论 -
Java专题 JDBC---SQL注入攻击以及解决,PrepareStatement + 案例
注入攻击通过在条件后面拼接一个 1=1 或者其他一定成立的条件,将所有数据查询出来先看看效果JDBC 注入 @Testpublic void test1() throws SQLException { Connection con=JdbcUtil.getConnection(); Statement sm=con.createStatement(); String username="'1' or 1=1"; String psw="'1' or 1=1"; Strin原创 2020-08-22 11:15:12 · 237 阅读 · 0 评论 -
Java专题 JDBC总结以及工具类制作,properties使用总结+案例
JDBC全称 java database connectivity 通过Java代码来操作数据库。sun公司定义出一套完整的接口,这些接口是有数据库厂商去实现,俗称为驱动JDBC常见接口三个接口,一个类DriverManager 类 管理驱动Connetion 接口 连接对象Statement 接口 执行sql语句ResultSet 接口 获取的结果集 查询JDBC入门这里使用eclipse来说明使用方法步骤:原创 2020-08-22 11:01:23 · 156 阅读 · 0 评论 -
数据库专题 MySQL较全面的多种情况查询语句(45题) + 参考答案
以前做的题,忘记题目保存到哪里了,如果找到了后期补上来,但是问题和自己写的SQL语句还在,可以参考是否有相近的问题来参考。如果能全部做出来的话SQL语句基本上就没有太大问题了。这里多表查询大部分使用的都是隐式链接,习惯了以后感觉这个更好用一些1,查询student表中的所有记录的sname,ssex和class列select sname,ssex,class from students2,查询教师所有的单位即不重复的depart列select distinct depart from teach原创 2020-08-16 16:53:37 · 409 阅读 · 1 评论 -
数据库专题 MySQL练习题,接上篇 + 问题(10题)参考答案
1.取出每个部门薪水最高的员工的名称select ename from emp e,(select MAX(sal)max,deptno from emp group by deptno) zgbu where e.sal=zgbu.max and e.deptno = zgbu.deptno2.哪些人的薪水在各自部门平均薪水之上select ename sal from emp,(select AVG(SAL)avg1,DEPTNO from emp GROUP BY DEPTNO) avbu原创 2020-08-16 16:38:01 · 199 阅读 · 0 评论 -
数据库专题 MySQL SQL练习综合使用,聚合函数 + 完整案例
数据库表创建以及数据准备CREATE TABLE DEPT (DEPTNO INT(2) NOT NULL , DNAME VARCHAR(14) , LOC VARCHAR(13), PRIMARY KEY (DEPTNO) );CREATE TABLE EMP(EMPNO INT(4) NOT NULL , ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT(4), HIREDATE DATE DEFAULT NULL, SAL DOUBL原创 2020-08-16 11:21:28 · 744 阅读 · 0 评论 -
数据库专题 MySQL基础进阶,SQL运算符使用,表关系
笛卡尔积在SQL语句中直接查询两张表的时候出现的是两张表的所有记录可能产生的所有组合。如果一张表有三条记录,另一张表有四条记录,直接查询两张表就会出现十二条记录,也就是 3*4 = 12 ,其中一张表的每一条记录都会和另一张表的所有记录合并一次产生一条新的结果,所以会出现相乘的结果。外键约束通过设置外键让一张表的某一个字段与另一张表的某一个字段产生联系。主表和从表从表:含有外键的表主表:被关联的表举个栗子:这里表示两张表,第一张users(用户)表,和第二张orders(订单表),这原创 2020-08-16 11:06:21 · 155 阅读 · 0 评论 -
数据库专题 MySQL常用指令基础DDL,DML,DQL,DCL,CRUD介绍 +例子
数据操作分类DDL(data definition Language) 数据库操作语言 操作数据库DML(data Manipulation Language) 操作数据表(增删改)DQL(data query language) 查询数据表DCL 数据举的权限操作 (了解)CRUD 增查改删接下来的介绍是在cmd中使用的语句,有可视化工具一般不怎么用到大部分数据库的使用语句是差不了太多的,MySQL我感觉是相对比较简单通用,容易入门的。所以这原创 2020-08-15 20:43:28 · 235 阅读 · 0 评论 -
数据库专题 链接各种数据库的可视化工具,方便操作
可视化工具一直在cmd中操作数据库和软件显然并不合适,可能有些人比较习惯于命令行操作,但是有了可视化工具的话,看起来就更方便一些,同时也不需要看个表都要写SQL语句。目前我所知道的比较常用的数据库可视化工具有如下几种:1.Navicat Premium可以直接搜到官方的下载包,是相当好用的,目前我主要用的也是这个2.Sqlyog有看到一些前辈在用,可视化工具其实界面和使用方法都差不多,只能说是看个人喜欢什么3.Toad这个个人没有用过,但是确实也是在前辈中比较熟知的一种可视化工具4.Py原创 2020-08-15 12:40:21 · 1541 阅读 · 2 评论 -
数据库专题 MySQL忘记密码后重置密码方法
第一种 简单粗暴如果需要的话先将数据备份,然后直接卸载重装,如果不需要备份的话直接重装。但显然有些不严谨,下面介绍重置密码的cmd操作流程第二种 cmd命令行内重新设置密码cmd窗口中 先停止服务 net stop mysql2.跳过密码验证获取数据表mysqld --console --skip-grant-tables3.重新打开新的窗口mysql -uroot -p直接进入数据库输入修改密码use mysql; (回车)update user set pas原创 2020-08-15 12:22:38 · 151 阅读 · 0 评论 -
数据库专题 MySQL服务启动的几种方式
第一种cmd启动首先确保你的mysql的path也就是系统变量添加了,如果没有可以看我数据库专题的mysql安装步骤的内容,或者再搜其他的教程检验是否配置了可以如下操作在cmd 命令行中输入mysql打开方式如下:如果出现说明没有配置环境变量如果没有出现不是内部命令而是链接不上或者直接链接上了,那么就可以如下操作启动MySQL在cmd 中输入net start mysql 回车提示成功那么就成功了 如果提示其他的,可能是没有使用管理员的身份,在进入cmd之前,在上述打开方式原创 2020-08-15 11:25:43 · 384 阅读 · 0 评论 -
数据库专题 Mysql安装(Windows环境)步骤
下载好MySQL安装包之后安装步骤和选择如下,这个版本比较老一点,如果安装比较新的可以参考里面的选项,可能不是完全相同。第一步第一个√要勾上,第一个选项选择第二个,standard 标准版第二步第三步这里选择开发版第四步如果个人开发学习没有特殊用途的话选第一个就可以第五步下面的数量为最大链接数量,如果不是团队开发的话默认15就行第六步第七步两个勾都打上,第二个是自动帮你配置好mysql的环境变量,让你可以再cmd中使用,并且可以让系统可以找到mysql第八步安装完成原创 2020-08-15 11:06:20 · 99 阅读 · 0 评论