
数据库
文章平均质量分 62
在这个专栏中,我们将从基础到高级,全面探索数据库技术的奥秘。无论你是数据库技术的初学者,还是希望在现有基础上进一步提升,这个专栏都将为你提供丰富的学习资源和实践指导。
笑锝没心没肺
时间宝贵,要看就看有用的,
解决问题,要看就看标红的,
研究学习,就去看全部的吧。
展开
-
SQL语言的DDL,DML,DQL,DCL介绍
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、 索引、同义词、聚簇等如: CREATE TABLE/VIEW/INDEX/SYN/CLUSTER | | | | | 表 视图 索引 同义词 簇DDL操作是隐性提交的,不能rollback。原创 2025-02-27 09:30:59 · 476 阅读 · 0 评论 -
Oracle数据库账户解锁
在多次输入system错误密码之后,会被提示,当前用户被锁定。甚至于更囧的是,连sys等其他用户的密码也记不得了。(1)以sysdba身份登录,不需要提供用户名和密码,更改之后的用户名/密码是:system/xxx.先解锁,再为用户重新设定密码。(3)重新设定密码。原创 2025-02-27 09:15:08 · 134 阅读 · 0 评论 -
MySQL 性能优化
博主曾经操作过超过 4 亿行数据的单表,分页查询最新的 20 条记录耗时 0.6 秒,SQL 语句大致是select field_1,field_2 from table where id < #{prePageMinId} order by id desc limit 20,prePageMinId 是上一页数据记录的最小 ID。作为一名后端开发人员,务必精通作为存储核心的 MySQL 或 SQL Server,也要积极关注 NoSQL 数据库,他们已经足够成熟并被广泛采用,能解决特定场景下的性能瓶颈。原创 2025-02-26 13:46:25 · 1011 阅读 · 0 评论 -
oracle数据库备份
当备份一个RMAN备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。4. RMAN可以进行增量备份(增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件)1.RMAN是 ORACLE提供的一个备份与恢复的工具,可以用来执行完全或不完全的数据库恢复。1. 步骤:shutdown数据库---> copy文件---> start数据库。1. 说明:前提条件是数据库运行在归档模式(oracle数据库安装默认运行在非归档模式)原创 2025-02-20 11:17:44 · 655 阅读 · 0 评论 -
Oracle ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段,已解决
ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段。原创 2025-01-22 09:56:11 · 1247 阅读 · 0 评论 -
事务的四大特性及隔离级别
幻读是事务非独立执行时发生的一种现象。例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。原创 2025-01-14 10:20:03 · 904 阅读 · 0 评论 -
数据库中drop、truncate、delete三种删除的区别
4.truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发trigger。与truncate类似,delete也只删除内容、释放空间但不删除定义;1.delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行回滚操作。truncate不能删除行数据,虽然只删除数据,但是比delete彻底,它只删除表数据。执行drop语句,将使此表的结构一起删除。原创 2025-01-14 10:10:41 · 801 阅读 · 0 评论 -
SQL 语法速成
数据定义语言(Data Definition Language,DDL)是 SQL 语言集中负责数据结构定义与数据库对象定义的语言。DDL 的主要功能是定义数据库对象。DDL 的核心指令是 CREATE、ALTER、DROP。DDL 的主要功能是定义数据库对象(如:数据库、数据表、视图、索引等)。视图是基于 SQL 语句的结果集的可视化的表。视图是虚拟的表,本身不包含数据,也就不能对其进行索引操作。对视图的操作和对普通表的操作一样。原创 2025-01-14 10:07:46 · 750 阅读 · 0 评论 -
Explain查看MySql执行计划
对于需要优化的SQL,我们可以用Explain来查看其执行计划。在执行计划中,重点关注type取值,它最能反应出SQL目前的执行效率级别。同时可以结合其他的字段,或者分解每个环节语句,来做更细致的分析。原创 2025-01-13 11:47:33 · 337 阅读 · 0 评论 -
insert into 语句的三种写法
由于可以指定插入到talbe2中的列,以及可以通过相对较复杂的查询语句进行数据源获取,可能使用起来会更加的灵活一些。SELECT后面的列的顺序 必须和目标表中的列的定义顺序完全一致 才能完成正确的数据插入。我们在指定目标表的列时,一定要将所有非空列都填上,否则将无法进行数据插入。此时,我们如果略掉了目标表的列的话,则默认会对目标表的全部列进行数据插入。在插入批量数据时方式2优于方式1.原创 2025-01-13 11:41:09 · 1319 阅读 · 0 评论 -
[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.
将URL中内容更改成如下形式:?前面的部分替换成你自己的。原创 2025-01-13 11:37:28 · 382 阅读 · 0 评论 -
SQL 性能优化技巧
对于支持事务的InnoDB类型的表来说,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动提交,严重影响了速度。在重新启动的MySQL,记得来温暖你的数据库,以确保您的数据在内存和查询速度快,考虑持久连接,而不是多个连接,以减少开销,基准查询,包括使用服务器上的负载,有时一个简单的查询可以影响其他查询,当负载增加您的服务器上,使用SHOW PROCESSLIST查看慢的和有问题的查询,在开发环境中产生的镜像数据中 测试的所有可疑的查询。原创 2025-01-13 11:33:28 · 729 阅读 · 0 评论 -
mysql安装完成初始化【问题整理】
我本机安装的mysql版本是5.7的,那么IDEA要连接mysql也应该匹配下驱动版本。进入命令窗口(Win + R),连接数据库 mysql -hlocalhost -uroot -p,回车,输入密码,回车,如图。我的问题出在两块,第一,设置mysql的时区。第二,mysql驱动的版本。如果没有,就继续往下走!配置完环境变量,就可以在命令窗口直接执行下面的命令啦!报错原因:此时的MySQL配置不支持远程连接。解决:修改配置,使之支持远程连接。已成功修改,这个时候就可以连接了。第一,设置mysql时区。原创 2025-01-13 11:15:21 · 542 阅读 · 0 评论 -
MySQL5.5安装教程(Windows)
(1) 打开下载的mysql-5.5.53-winx64.msi。(13) 选择多功能数据库,next。(16) 选中add复选框,next。注意,安装之前,请关闭杀毒软件。(11) 选择详细配置,next。(12) 选择开发机,next。(3) 选中复选框,下一步。(21) 完成finish。(9) 点击finish。(4) 选择自定义安装。(10) 点击next。(17) 自定义编码集。(5) 安装路径更改。原创 2025-01-13 11:06:54 · 615 阅读 · 0 评论 -
MySQL8.0安装和配置
MySQL 8.1和MySQL 8.0.34于2023年7月18日正式发布。这一次发布标志着MySQL进入了创新版和稳定版同时发行的阶段。同时,MySQL 8.1是MySQL的首个创新版,除为用户带来了若干新增功能外,还对部分内容做了调整,这部分调整的内容基本上与MySQL 8.0.34一致。此外,MySQL 8.1及MySQL 8.0.34版本做了大量的错误修复,这也使MySQL 8.0进入一个稳定的状态。本文针对MySQL8.0版本安装过程进行介绍。原创 2025-01-13 10:53:51 · 905 阅读 · 0 评论 -
删除表的语句(drop、truncate、delete)对比
**数据保留**:`DROP TABLE`会删除整个表及其数据,而`TRUNCATE TABLE`和`DELETE`只删除数据,保留表结构。- **触发器**:`TRUNCATE TABLE`和`DROP TABLE`通常不会触发删除行的触发器,而`DELETE`会触发。- **日志记录**:`DELETE`操作会记录每一行的删除操作,而`TRUNCATE TABLE`通常不记录每一行的删除。- **速度**:`TRUNCATE TABLE`通常比`DELETE`快,因为它不记录每一行的删除操作。原创 2025-01-10 11:47:47 · 568 阅读 · 0 评论 -
ORACLE 查看RMAN的备份信息总结
【代码】ORACLE 查看RMAN的备份信息总结。原创 2025-01-10 11:42:11 · 589 阅读 · 0 评论 -
oracle数据库打补丁
打补丁使用opatch工具,具体操作方法以补丁包中的readme.txt为准。原创 2025-01-10 11:11:21 · 1112 阅读 · 0 评论 -
oracle常用监控SQL语句
【代码】oracle常用监控SQL语句。原创 2025-01-10 10:58:00 · 193 阅读 · 0 评论 -
Oracle: ORA-00904 WM_CONCAT invalid identifier 解决方案
由于技术架构的调整,数据库需要进行迁移,将表和存储过程从Oracle数据库迁移到另外一个Oracle数据库,在存储过程迁移过程中,遇到个问题,使用WM_CONCAT的存储过程编译不会通过,并且报 ORA-00904: "WM_CONCAT": invalid identifier 错误。在查一些资料后,发现11gr2之后的版本中WM_CONCAT函数已经弃用,而应用在程序中确使用了该函数,导致程序出现错误。原创 2025-01-10 10:24:07 · 548 阅读 · 0 评论 -
在Oracle中配置查看客户端连接的IP信息 (两种方式)
大家都知道在v$session 中记录着客户端的机器名称,但是没有IP , 如果记录clinet ip 呢?原创 2025-01-10 10:14:50 · 565 阅读 · 0 评论 -
oracle 数据库归档模式的打开与关闭
在实际应用中,我们需要实现对数据的备份,其实现方式主要有冷备份和热备份两种。现在我们主要讨论热备份的具体操作。热备份也称为联机备份,在数据库的存档模式下进行备份。oracel数据库默认存档模式为关闭状态,要实现数据的热备份,需要改变数据库的存档模式,将其打开。并且需要注意的是数据库的存档模式的操作需要在MOUNT实例中进行,且数据库不能处于OPEN状态。原创 2025-01-10 10:06:04 · 287 阅读 · 0 评论 -
oracle基础命令,开启关闭登录登出
sqlplus "登录名"/"密码"@"实例名" as sysdba //引号内是需要根据自己的情况变化。force模式---->强制启动,如果其他三种方式无法启动,可尝试此模式。open模式----->默认startup时的开始模式,正常打开数据库。终止关闭:shutdown abort,这是属于强制关闭,会丢失数据。Monut模式------>加载数据库实例不打开。开启有:NoMount模式----->不加载数据库实例。关闭有:正常关闭:shutdown nomal。原创 2025-01-10 10:00:10 · 400 阅读 · 0 评论 -
Oracle启动监听报错:The listener supports no services解决【ORA-12514】
提示没有监听的服务;之前都不会出现这样的问题,难道是Hosts文件写错了;注:里面的orcl根据你安装的数据库实例名确定,我用此法解决了这个报错。在listener.ora里面添加了一行。原创 2025-01-09 11:58:30 · 963 阅读 · 0 评论 -
Oracle 数据库归档日志删除方法
【代码】Oracle 数据库归档日志删除方法。原创 2025-01-09 11:50:39 · 674 阅读 · 0 评论 -
Linux 设置oracle的sid,Oracle修改实例名SID
这个时候虽然实例名字已经改成linux,但是数据库名(dbname)仍然为orcl,因此在客户端仍旧无法连接,如需要连接,则需修改dbname。当忘记sys口令的时候,可以使用orapwd命令重建口令文件。但是在Oracle 18c中却会报OPW-00029的错误。这是因为Oracle 增强了密码验证函数:ora12c_verify_function。将所有文件名中包含原来的sid的修改为对应的新sid的。因为口令文件改名后不能在新实例中使用,所以重建。6、重建口令文件(高版本会报错,解决见后面)原创 2025-01-09 11:46:59 · 893 阅读 · 0 评论 -
Oracle中强行断开用户连接的方法
alter system disconnect session有两个选项,一个是post_transaction,另外一个是immediate。使用此语句会返回一个进程列表,每行有两个数字,然后用数字替代下面的sid和serial。不会等待当前进程完成,类似于alter system kill session。会等待session做完当前的transaction后再杀死session。通过select 语句可能返回多行记录,所以要多次执行alter语句。原创 2025-01-09 11:35:33 · 231 阅读 · 0 评论 -
ORACLE 12C EM 端口5500关闭及如何修改默认端口
大家都知道,ORACLE 12C EM的默认启动端口是5500,为防止异常攻击,建议将此端口对应的服务进行关闭,规避受攻击风险。使用lsnrctl status,查看监听状态。原创 2025-01-09 11:32:20 · 359 阅读 · 0 评论 -
Oracle查询表空间使用情况速度很慢
这个视图记录了表空间中空闲的区,如果一个表空间里的free状态的extent不连续,那么在dba_free_space中会有多条记录对应同一个表空间,当然也会有extent连续但是没有合并起来的情况出现。当用户drop对象时,可以从dba_free_space视图里看到相关对象extent信息。被drop掉的对象都存放在recyclebin中,如果recyclebin里有大量被drop的对象,并且这些对象都曾被分配了大量的extent,就会出现查询dba_free_space缓慢的问题。原创 2025-01-09 11:25:36 · 518 阅读 · 0 评论 -
ORACLE:ORA-00020 maximum number of processes (1000) exceeded
并报错ORA-00020: maximumnumber of processes (300) exceeded。生产系统,不能重启数据库,好在系统过了一会儿恢复正常了。可以看到默认的processes设置的是300. 太小了,稍后我们得改一改。在系统空闲时,修改系统processes参数为1000,重启数据库。【processes参数是静态参数,修改后需要启动数据库。根据报错信息是由于processes进程数达到了最大值。可以看到现在processes 参数被改成1000了。--此时已经登录不进库。原创 2025-01-09 11:15:21 · 585 阅读 · 0 评论 -
set define off 在数据库脚本中的作用
在SQL*Plus中默认的"&"表示替代变量,也就是说,只要在命令中出现该符号,SQL*Plus就会要你输入替代值。这就意味着你无法将一个含有该符号的字符串输入数据库或赋给变量,如字符串“SQL&Plus”系统会理解为以“SQL”打头的字符串,它会提示你输入替代变量Plus的值,如果你输入ABC,则最终字符串转化为“SQLABC”。原创 2025-01-09 11:05:08 · 173 阅读 · 0 评论 -
Oracle创建dblink(实现跨数据库查询)纯干货
创建dblink实现跨库查询,创建本地数据库对远端数据库的dblink后,就可以像操作本地数据库一样操作远端数据库,这是Oracle给我们提供一个功能,让我们的跨库查询变得非常简单便捷。原创 2025-01-09 10:56:41 · 1448 阅读 · 0 评论 -
oracle序列(sequence)
话说序列很少人知道,因为Mysql和sql server都有自动增长字段(如ID主键自动增长的整数),而Oracle却没有提供该用法,那么Oracle提供了更加灵活方便的策略-建立对象序列。序列创建之后也是真真实实存在的,存在我们的磁盘上,并可以适用场合调用,序列总是从指定的长度开始,创建了之后可以按照指定步长进行累加,获得新的整数。原创 2025-01-08 11:43:11 · 1062 阅读 · 0 评论 -
Delete,Update,Drop操作后如何恢复数据
如果我们delete/update表中的数据或drop表后,又后悔了,那该如何进行恢复数据呢?我们知道如果DML操作没有提交事务前,是可以通过rollback进行回退,但是DDL操作是自动提交事务的,在进行相关知识点查询以及进行实验操作后,接下来就对delete,drop操作后如何进行恢复数据进行实验。第一步:查询执行更新操作的时间 select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc;原创 2025-01-08 11:05:15 · 551 阅读 · 0 评论 -
Oracle登录操作审计配置
Oracle的审计功能(Audit)用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在SYSTEM表空间中的sys.aud$表中,可通过视图dba_audit_trail查看)或操作系统审计记录中(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/),默认情况下审计是不开启。注意:审计表默认安装在SYSTEM表空间,所以要确保SYSTEM表空间充足。DB:审计的结果只有连接信息,记录在数据库的审计表aud$。和审计相关的两个参数说明,原创 2025-01-08 10:51:42 · 1226 阅读 · 0 评论 -
Oracle:左连接、右连接、全外连接、(+)号详解
运算符是一个特殊的连接运算符,它用于外连接(Outer Join)中的旧式语法。它通常用于实现左外连接(LEFT OUTER JOIN)或右外连接(RIGHT OUTER JOIN),但在现代的SQL标准中,推荐使用。在左连接和右连接时都会以一张表为基础表,另一张表为补充表,基础表的内容会全部显示,然后再加上两张表匹配的内容。运算符在Oracle中是有效的,但它不是SQL标准的一部分,并且可能在其他数据库系统中不被支持。左外连接,右外连接,全外连接。中没有匹配的行,相关列将返回 NULL。原创 2025-01-08 10:50:46 · 1048 阅读 · 0 评论 -
ORA-02266 表中的唯一主键被启用的外键引用,问题处理
5)POREIGN KEY (外部键):在表之间建立一种父子(parent-child)或主从表关系,在表上定义的外部键(定义在从表上)可以指向主键或者其他表的唯一键,要求外键列数据必须在主表的主键列存在。4)PRIMARY KEY (主键):用来唯一的标识出表的每一行数据,主键列不能重复且不能为NULL值,一个表只能有一个主键约束,但是可以由多个UNIQUE 唯一约束。3)UNIQUE (唯一):保证在指定的列中没有重复值,在该表中每一个值或者每一组值都将是唯一的。原创 2025-01-07 11:59:30 · 661 阅读 · 0 评论 -
ORCALE创建用户给其查询权限
【代码】ORCALE创建用户给其查询权限。原创 2025-01-07 11:51:10 · 203 阅读 · 0 评论 -
Oracle数据泵(EXPDP和IMPDP)的使用
2、再就是,表空间问题,测试库中的用户下的某个表的索引没有在他的默认表空间里,这样你要在目标端(这里就是生产环境),创建好对应的表空间, 就是说如果你在测试库把a用户的下的某个表的权限授给了b,那么你在把a用户用数据泵倒进生产库时,他会在生产库中检测有没有用户b。导出正常,导入数据时,只成功导入部分记录等数据,另外的部分提数ora 39112错误,经查是因为导出的用户数据中,有部分记录的表用的索引在另一表空间中,该空间还未创建,所以导致该失败。进程的数量,应与导出文件的数量一致。否则在执行时,会产生报错。原创 2025-01-07 11:02:45 · 1319 阅读 · 0 评论 -
超好用的PLSQL设置(Oracle)
选中需要定义的Item,然后按一个快捷键组合即可,如果所按的快捷键已有定义,会有提示,这时候Cancel,另外选择快捷键组合即可;通常情况下,打开PLSQL Developer后,最经常干的事就是打开SQL Window和Command Window,就给这两个操作定义了快捷键, ALT+S 和 ALT + C,这样拿鼠标点三下的事情只需要按一下键。设置方法:菜单Tools->Preferences->User Interface->Key configuration。原创 2025-01-07 09:41:55 · 1347 阅读 · 0 评论