数据库复习及Oracle学习

解决pd.read_json报错ValueError: Trailing data问题 首先,我们使用open函数打开JSON文件,然后使用json.load函数将JSON文件数据解码为Python对象。在使用Python进行数据处理中,我们经常需要将JSON格式的数据读入到DataFrame中进行处理。而使用pandas库的read_json函数,就可以方便地将JSON数据读入到DataFrame中。但是有时候在读取JSON数据时,会遇到一个非常常见的错误:ValueError: Trailing data。这个错误的解决方案并不难,只需要在read_json中添加一个参数即可。 阅读详情
 
一.基础知识
为显示方便,可以直接在字段后加上标签(别名)
sum(decode())用来统计
order by desc/asc 排序
distinct,不显示重复的。
 
分组:
group by 字段 ,与select前边的字段匹配。
聚集函数(max,min,sum,avg)不能出现在where中,这时用having
 
模糊查询
like a%,以a开头的。
 
表的连接
from * join * on
内连接
左,右外连接(非完全匹配)(+)
 
无关子查询 IN NOT IN
相关子查询
子查询中不能用*
 
EXISTS ,可以用*
 
表合并
UNION,只是显示合并
 
INTERSECT返回两个表中都出现的行
 
插入多条记录:INSERT INTO * SELECT结果集
INSERT INTO VALUES,只能插入一条记录
根据已有的表来创建表。
CREATE TABLE ttt AS (SELECT * FROM *)
 
二.PL/SQL
补充:前后台参数传递。PL/SQL:
 
DECLARE
...
BEGIN
....
EXCEPTION
...
END
 
输出:DBMS_OUTPUT.PUT_LINE('');
|| 连接字符,与其他语言的 + 类似,不需要转换类型
 
SET SERVEROUTPUT ON SIZE 10000设置缓冲区大小用于输出到屏幕
--行注释
/**/块注释
 
IF分支
IF...THEN
...
ELSIF...THEN
...
ELSE
...
END IF
 
CASE分支
WHEN ..THEN..
WHEN ..THEN..
ELSE
ENDCASE
 
LOOP循环
LOOP
...
END LOOP
 
WIHLE循环
WHILE expression LOOP
...
END LOOP
 
FOR循环
 
GOTO循环
 
记录:
TYPE * IS RECORD,定义记录,(表的一行)
DELCARE
TYPE myrecord IS RECORD(
id varchar2(10),
name varchar2(10)),
real_record myrecord;
 
与表字段的类型,结构相同
DECLARE
myrec 表A%ROWTYPE   如果只有其中一个字段相同,跟上面的一样,改一处,id A.eid%TYPE
BEGIN
SELECT * INTO myrec FROM A WHERE...
 
游标
游标CURSOR:一种PL/SQL控制结构,可以对SQL语句的处理进行显示控制,便于对表的行数据逐条进行处理。
 
游标的属性:%FOUND,%ISOPEN,%NOTFOUND,%ROWCOUNT
 
显式
DELCARE
CURSOR mycur IS
SELECT * FROM books;
myrecord books%ROWTYPE;
BEGIN
OPEN mycur;
FETCH mycur INTO myrecord;
WHILE mycur%FOUND LOOP
DBMS_OUT.PUT_LINE(myrecord.books_id);
FETCH mycur INTO myrecord;
END LOOP
CLOSE mycur;
END;
/
游标参数1
DELCARE
CURSOR mycur_para(id varchar2) IS
SELECT books_name FROM books WHERE books_id=id;
t_name books.books_name%TYPE;
BEGIN
OPEN mycur_para('001');
LOOP
FETCH mycur_para INTO t_name;
EXIT WHEN mycur_para%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(t_name);
END LOOP
CLOSE mycur_para;
END;
/
游标参数2
DELCARE
CURSOR mycur_para(id varchar2) IS
SELECT books_name FROM books WHERE books_id=id;
BEGIN
DBMS_OUTPUT.PUT_LINE('****结果集是:****');
FOR cur IN mycur_para('001') LOOP   ——for循环不需要打开关闭
DBMS_OUTPUT.PUT_LINE(cur.books_name);
END LOOP;
END;
/
游标 ISOPEN
DECLARE
t_name books.books_name%TYPE;
CURSOR mycur(id varchar2) IS
SELECT books_name FROM books WHERE books_id=id;
BEGIN
IF mycur%ISOPEN THE
DBMS_OUTPUT.PUT_LINE('游标已经被打开');
ELSE
OPEN mycur('003')
END IF
FETCH mycur INTO t_name;
CLOSE mycur;
DBMS_OUTPUT.PUT_LINE(t_name);
END;
/
 
利用游标修改数据 必须在SELECT语句后加上 FOR UPDATE
UPDATE deptment SET name=name||'_fujia' WHERE CURRENT OF mycur
 
隐式:没有声明,打开,关闭
BEGIN
FOR mycur IN (SECLECT name FROM *) LOOP
打印输出
END LOOP;
END;
 
三.存储过程
定义:
 
      将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。
 
那么存储过程与一般的SQL语句有什么区别呢?
 
存储过程的优点:
 
                       1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
 
                        2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
 
                       3.存储过程可以重复使用,可减少数据库开发人员的工作量
 
                       4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
 
存储过程的种类:
 
    1.系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作,
 
                               如 sp_help就是取得指定对象的相关信息
 
   2.扩展存储过程   以XP_开头,用来调用操作系统提供的功能
 
                              exec master..xp_cmdshell 'ping 10.8.16.1'
 
   3.用户自定义的存储过程,这是我们所指的存储过程
 
   常用格式
 
   Create procedure procedue_name
 
   [@parameter data_type][output]
 
   [with]{recompile|encryption}
 
   as
 
        sql_statement
 
解释: 
 
output:表示此参数是可传回的
 
with {recompile|encryption}
 
recompile:表示每次执行此存储过程时都重新编译一次
 
encryption:所创建的存储过程的内容会被加密
 
存储过程的3种传回值:
   1.以Return传回整数
   2.以output格式传回参数
   3.Recordset
传回值的区别:
       output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中
CREATE OR REPLACE PROCEDURE myproc(id IN varchar2(10))
IS
name varchar2(10);
BEGIN
 
四.视图、同义词、序列
视图(安全,方便,一致性,虚表):实际上是一条查询语句,是数据的显现方式
CREATE OR REPLACE VIEW myview
AS
SELECT * FROM books;
 
通过视图更新两个基表,不可行。(触发器)
带group by,sum avg等聚合函数,或者distinct,视图不可更新。
WITH READ ONLY
 
同义词:缩写代码。可以方便地操纵不同用户模式下的对象
CREATE SYNONYM dept FOR scott.dept;
当前用户的专有的私有的。
DROP SYNONYM dept
删除
CREATE PUBLIC SYNONYM dept FOR scott.dept;
创建公共的。
 
序列:??
CREATE SEQUENCE myseq
START WITH 1
INCREMENT BY 1
ORDER
NOCYCLE;
 
五.触发器、表空间、索引
触发器:自动执行,不接受参数。
事务:用于确保数据完整性和并发处理的能力,将一条、一组SQL语句当作一个逻辑上的单元,用于保证这些语句都成功/失败
事务的特性:
A(Atomicity):原子性,不可分割
C(Consistency):一致性,操作前后一致。
I(Isolation):隔离性,与并发性紧密结合,不会自己提交(如果没提交,在当前用户下好像更新,其实没有更新,必须提交),COMMIT;ROLLBACK;设置用户FOR UPDATE,别的用户只能等,不能操作,只有等那个用户提交后才能操作。(类似“锁”)
D(Duralibility):永久性,COMMIT和ROLLBACK,不能一起操作
 
行级触发器:实现多表的完整性,实现原子性
CREATE OR REPLACE TRIGGER del_deptid
AFTER DELETE ON deptment
FOR EACH ROW
BEGIN
DELETE FROM emp WHERE id=:old.id;
END del_deptid;
/
在触发器中不允许的操作: IF:old.books_id='0001' THEN RAISE_APPLICATION_ERROR(-20000,'不允许删除')
 
语句级触发器:不涉及数据完整性
CREATE OR REPLACE TRIGGER dml_aa
AFTER INSERT OR DELETE OR UPDATE ON mytable
BEGIN
IF INSERTING THEN
INSERT INTO mytable VALUES('''');
ELSIF DELETING THEN
...
ELSE
...
END IF;
END;
 
替换触发器(此触发器只能建立在视图上,可用于视图多表更新)
 
 
表空间
创建表空间
CREATE TABLESPACE tabs
DATAFILE '实例的路径/tabs.dbf' SIZE 10M
 
授权
GRANT UNLIMITED TABLESPACE
 
索引:提高速度
位图索引(bitmap INDEX),(数据多,比如性别,只有很少的几种)
 
 
SQL*Loader
事先有数据文件和控制文件
控制文件可能是这样的形式:
load data
infile 'c:/loader.txt'
append
into table 表名(
m1 position(1:3) char, --长度知道,并相同时,否则可以用 terminated by "," --以逗号分割
m2 position(5:8) char
)
 
》sqlldr control 控制文件路径 data 数据文件路径
 
 
OEM:企业管理工具,在浏览器中
 
六.数据库的备份和恢复
 
逻辑备份
exp test/test123@test
后缀名.dmp
逻辑恢复
imp test/test123
 
冷(脱机)、热(联机)物理备份
冷:shutdown immediate之后,把相关内容拷走。
 
热:
日志归档方式
查看 archive log list;
alter system set log_archive start=true scope=spfile;
 
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
 
例子:
alter tablespace 表 begin backup;
把东西拷走
alter tablespace 表 end backup;
alter system archive log current;
alter system switch logfile;
shutdown immediate;
 
重新打开后查看错误
select * from v$recover_file;
alter database datafile ? offline drop;
alter database open;
 
最后 recover datafile ?;
 
alter database datafile ? online;
恢复完毕
 
 
备份控制文件
alter database backup controlfile to trace; --在admin下的实例下的udump下
 
日志文件丢失
重新生产日志文件
alter database open resetlogs;
 
beegfs读取文件完整流程分析 读取小于512KB文件数据,小于1s 读取15MB文件数据,花费7秒。 阅读详情

相关推荐

LightTools中VBA宏的编写入门

LightTools和VBA联动

bestgamer的博客 2348

Oracle数据库学习复习提纲

Oracle数据库概述 https://blog.youkuaiyun.com/Newbie___/article/details/103889449

qq_40588579的博客 235

直流电动机的建模仿真(1)他励,串励和并励电动机建模仿真

本文根据不同励磁方式的直流电动机的接线原理图,建立了相应的数学模型,然后根据与数学模型对应的等效电路以及模拟机械运动方程的等效电路,用Matlab/simulink中的SpecializedPower system库中的电路元件,建立了他励,并励和串励直流电动机的全等效电路仿真模型,经过与Matlab自带的直流电动机仿真模型比较以及仿真实例验证,所建立的仿真模型时完全正确的。

weixin_45670943的博客 7521

ocm学习总结

道生一,一生二,二生三,三生万物..从简到繁,再从繁到简.由浅入深,再由深入浅.     从简到简,既相同,又不同. 更高的层次,更深的内涵.     oracle的学习,从sql开始,再到sql 结束.中间走过了一系列的过程.现列出如下:         sql,      SQL语句的书写,语法         dm1    数据库管理一         dm2,   数据库管理二

900

EB TRESOS 29.0.0安装教程用于MCAL配置开发

本文介绍的搭建基于NXP官网提供EB软件,进行基于标准AUTOSAR软件底层驱动配置的开发

qq_53260940的博客 1882

OPNET卫星节点仿真避坑指南:为什么你的STK轨道文件导入后位置不对?

本文深入解析OPNET卫星节点仿真中STK轨道文件导入后位置异常的常见问题,揭示坐标系差异(ECI与ECF)、时间基准不匹配等关键因素。通过修改.SA文件头标识、统一时间基准等解决方案,帮助工程师避免仿真失真,提升卫星通信系统仿真的准确性。特别适用于STK与OPNET协同工作的卫星网络仿真场景。

weixin_30335575的博客 602

oracle数据库实践周总结,「Oracle实践数据库」总结

关于老师这个老师的讲课节奏其实挺快的,后边听课的时候我也在想,大概东西/知识掌握的很熟练的人,对于这样的讲解基本上就是这样子快了,不过苦了我们学生。。大概认真听课到跟上老师节奏花费了我两三周的时间,而这已经意味着十多个课时过去了。另外,关于老师更想提的是,课程老师虽然很皮,满嘴骚话的样子,但是对于数据库甚至操作系统,计算机的理解定然是一个老司机,所以从后边的边学边实践的课来说,确实是教会了我们很多...

weixin_39892309的博客 398

博图编写温度程序_s7 smart200的CRC-16校验程序

最近做一个小项目,项目中采用485自由口通讯方式,使用一台西门子S7 smart200对一台冷水机做多个状态和温度做监控,并能对冷水机进行启停控制,和参数设置,因为冷水机的协议不是标准modbus格式,所以要自己编写通信协议。其中要用到CRC校验,在网上找了些别人写的程序,基本上用不了。只能自力更生了。首先,找到CRC校验的算法,并理解。 下面就是我找的算法(这个网上很多),1....

weixin_39539761的博客 3062

oracle 数据库体系结构图解

工作之后,一直忙着搞前端开发;基本忘却了,oracle的所有东西;回想当初的“DBA”梦想;想想现在的境况,一言难尽,感慨万千;为了捡起数据库的知识,一直在看大牛们的博客;为了加深记忆,便与复习;后面将不断摘抄大牛的博客内容;拾人牙慧;下面是一张oracle体系结构:参考地址:http://blog.chinaunix.net/uid-7589639-id-29746...

weixin_33946605的博客 100

手把手教你学simulink(8.2)--simulink的实战案例:信号分析

通过以上步骤,你已经成功使用 Simulink 对信号进行了频谱分析和时域分析,提取了信号的有用信息。这个案例展示了如何创建 Simulink 模型、添加和连接模块、设置仿真参数、运行仿真以及分析结果。希望这个案例能帮助你更好地理解和使用 Simulink 进行信号分析。

MHD0815的博客 1125

10、犹豫双模糊TOPSIS算法:原理与实例解析

本文介绍了犹豫双模糊TOPSIS算法的基本原理与应用步骤,结合中国四家纺织公司的案例,详细解析了从构建犹豫双模糊决策矩阵、归一化处理、专家信息聚合,到确定正负理想解、计算距离与相对贴近度系数的完整决策流程。该方法有效应对决策者在评价过程中的犹豫性,适用于财务评估、项目选择等复杂多属性决策场景,具有较强的实用性和推广价值。

yhn45678901的博客 123

2015年腾讯实习生面试全程录--二面前的复习策略

虽然高度兴奋,可是我还保持着理性。我立马冷静下来,仔细回想一面的整个流程,反思自己在面试的过程中有哪些不足。很明显,这第一面面试官没有问到我数据结构的问题!!哪面试没有数据结构的题目的呢?! ...

cmr20004的博客 136

gurobi最新下载安装教程 2023.11

我下载的最新版gurobi支持python3.7-python3.11,这个序号与计算机硬件捆绑,一旦激活就会失效。运行激活码之后,产生的。如果既放置在了上面的默认搜索目录,又设置了。系统环境变量(不是用户环境变量),指向保存的目录和文件名(例如。高版本产生的许可文件兼容低版本。验证不会成功,学术许可不会激活。之后cmd进入命令行,cd进入gurobi所在的。,实测不到一小时即可审核完毕,获得对应的许可。如果学校的网关没有将本校的。系统环境变量指向不同的目录和文件,原厂无关,是学校网络的设置问题。

Cachel Wood的博客 2万+

数据库复习

数据库技术与应用复习大纲。

weixin_59865114的博客 986

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Oracle复习总结

Oracle复习总结 Oracle操作要点: 在pl\sql中进行增删改查要commit数据才能显示在cmd窗口 显示数据库名称:show parameter db_name; 查表的数据类型:describe 表名;(获取函数的信息:describe 函数名) /=run:再执行一次SQL语句,但是SQL语句块一定要搭配/,以;为执行标志 Edit:可以把刚才出错的代码在笔记本修改后保存再敲/...

qq_43226062的博客 292

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

明天要考ORACLE了,今天赶紧复习下

明天要考ORACLE了~今天来更新BLOG也是为了复习下ORACLE~ORACLE学了不少时间了~昨天上过最后一节课~老师也因为种种原因终于也要走了~不过这东西我也只能说学到了刚刚能够凑合着使用的地步而已~因为ORACLE里面的东西实在是太多了~恐怕再花1年时间也不能完全学完~不过~我将来并没有太想在数据库方面发展~ ^^毕竟比起数据库来~我还是更喜欢写程序~好

小耗子的博客 148

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

oracle 考试资料,Oracle考试复习题

一、题型和题量:选择题10 ×2’ =20’填空题10×2’=20’简答题4* 5’= 20’数据库设计题30’论述题10’平时成绩占20%、考试成绩占80%二、例题:1.oracle数据库具有3种主要类型的文件,它们分别是数据文件、控制文件、日志文件。2.oracle内存结构主要分为系统全局区、程序全局区。3.在SQL SELECT语句查询中,要去掉查询结果中的重复记录,应该使用_Distinc...

weixin_39926394的博客 324

oracle数据库应用习题,Oracle数据库应用 复习题及答案

Oracle数据库应用 复习题(参考答案见P15)一、选择题1、以下( )内存区不属于SGA。 A. PGAB. 日志缓冲区 C. 数据缓冲区 D. 共享池2、一个数据库由若干个( )组成。 A. 段B. 表空间C. 块D. 区3、在Oracle 中创建用户时,若未使用DEFAULT TABLESPACE 关键字,则Oracle就将( )表空间分配给用户作为默认表空间,将( )表空间分配给...

weixin_34231219的博客 1121

再次学习Oracle的收获

       最近跟着磊磊一起重新学了遍Oracle9i 9.2.0.1 ,虽然以前学的时候是从DBA的角度去研究每一个问题,但终究不够牛叉的我们会发现整个Oracle的系统构架不是我们所能及的,所以这次换了一个角度,从实战的角度来进行使用和管理,当然这次将使用放到了首位,第一天下来的时候发现连基本的lsnrctl start命令都不知道,更不知道tnsnames 和 listener 竟然还认为

翱翔天空的专栏 1111

【亲测免费】 SQL(Oracle)教程(PPT版)下载

本仓库提供了一份详细的SQL(Oracle)教程,以PPT格式呈现。该教程涵盖了SQL的基本概念、语法、以及在Oracle数据库中的实际应用。无论你是初学者还是有一定经验的开发者,这份教程都能帮助你更好地理解和掌握SQL语言。 ## 资源特点 - **PPT格式**:内容以幻灯片形式展示,便于学习和复习。 - **零积分下载**:我们坚信知识分享的真理在于免费,因此这份资源无需任何积分即可下载

gitblog_09754的博客 676

oracle数据库

ORACLE数据库

weixin_63719049的博客 1643

放松&调整

近几天一直在看Oracle10g concepts,发现很多概念都无法理解,整的自己都头大了,来随便写写减压一下,呵呵。 通过几天的学习发现自己的基础知识特别贫瘠,还需要多多学习基础类的内容呀,等看完了这个文档,在复习复习数据...

cuimin1905的博客 114

Oracle 试题一

一、选择题  1.当你执行以下查询语句:  SELECT empno,ename  FROM emp  WHERE empno =7782 OR empno =7876;  在WHERE语句中,以下哪个操作符可以取代OR?  A. IN  B. BETWEEN ……  C. LIKE  D.   E. >=  2. 哪个实现 IF..THEN…ELSE 逻辑?  A. INITCAP()  B. REPLACE()  C. DECODE()  D. IFELSE()  3. 以下哪行有错?      1 S

至简 2543

2024年ORACLE进阶(十一)MERGE INTO学习总结_oracle merge into,2024年最新2024最新Web前端面经分享

其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)《前端开发四大模块核心知识笔记》

2401_84447417的博客 763

Oracle的Oracle PL/SQL PPT

因为我们大学的时候数据库学的就是Oracle,所以把大学的Pl/SQL PPT拿出来温习下。(我也知道PPT的内容,肯定是从甲骨文网站上download下来) 20章的PPT拿出来和大家分享下。 转载于:https://blog.51cto.com/yuhaijunll/39937...

weixin_34375054的博客 143

OCP考试

  认证名称:Oracle Database 10g Administrator Certified Associate考试课程号:1Z0-042 Oracle Database 10g: Administration I复习计划:该课程网上流传的10g Administration Workshop I.pdf,共有20章安排连续四周的学习计划,维持每天有2-3小时的专门学习时间

player的专栏 1013
上一篇: 个人论文发表情况
下一篇: Linuxl下C编程系列--基础知识及基本命令
Image_Graphics
博客等级 码龄20年 18粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值