
oracle
文章平均质量分 51
本人日常oracle学习笔记,希望对大家有所帮助
-你真好看-
这个作者很懒,什么都没留下…
展开
-
ora-04091 表发生变化,触发器/函数不能读他
如标题,我在对一个表进行插入的时候,需要对该记录的某一字段进行修改,通过触发器进行修改。原触发器如下CREATE OR REPLACE TRIGGER t_bingrsj_shijms_updateAFTER INSERT ON bingrsjFOR EACH ROW BEGIN UPDATE bingrsj SET shijms = '' WHERE zhuyh = :new....原创 2020-03-06 17:19:35 · 788 阅读 · 0 评论 -
ora-01407 无法更新 值 为null
在做一次批量更新时候,我预想的应该是一条正常没有错误的语句,但是却提示了一个错误ora-01407 错误,很疑惑,正常来说这条语句是没问题的UPDATE chuyjzd jzd SET jzd.fenl = (SELECT sf.fenl FROM sfxm sf WHERE sf.bianh = jzd.bianh)将一个表中的某一列值更新成另个表的字段,通过 bianh关联而且查询...原创 2020-02-28 14:17:50 · 14243 阅读 · 0 评论 -
Exists 用法解释
exists的实例解析现有两个表a:b:现有sql语句如下select * from a where exists (select 1 from b where b.b_id = a.id);执行结果如下:含义解析:exists 的意思是用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或FalseEXISTS(包括 NOT EXISTS )...原创 2019-12-10 09:27:39 · 14773 阅读 · 4 评论 -
数据库的逻辑结构:表空间,段,区和块
数据库的逻辑结构:表空间,段,区和块数据库由表空间组成,而表空间由段构成,而段又是右区构成,而区又是由oracle块组成的一种结构。 这样可以提高数据库的效率。表空间:表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或是多个数据文件组成;如果说这样理解起来很难的话,可以举一个生活中的案例:比如,我们描述一个人在哪...原创 2019-04-02 21:04:42 · 2904 阅读 · 1 评论 -
oracle强制关闭用户连接
我在删除用户的时候,提示我无法删除当前已连接的用户,特此Google一下,整理了几种方法,来杀掉用户连接:第一种方法:1、通过管理员登录2、使用视图:v$session 查询当前连接的用户select * from v$session where username ='kfhjyyhis'3、通过sid,serial#这两个字段,杀掉连接;alter system kill ses...原创 2019-04-17 12:00:01 · 12165 阅读 · 0 评论 -
数据字典与动态性能视图
数据字典:是oracle中的重要组成部分,他提供了数据库的一些系统信息,在oracle中,为了记录下所有对象的信息,提供了数据字典的概念,他是只读表和视图的集合,在数据库中一共提供了三个级别的数据字典1、用户级别:user_开头,指一个用户可以使用的字典例:查询一个用户下的所有表:select from user_tables;这个时候就列出了数据库表对象的全部信息,包括名称,存储情况等,,...原创 2019-03-30 16:42:02 · 459 阅读 · 0 评论 -
oracle初始化参数
初始化参数:用于设置实例或是数据库的特征,oracle提供了很多初始化参数,并且每个参数都有默认值显示初始化参数:show parameter;原创 2019-03-27 19:46:47 · 894 阅读 · 0 评论 -
数据库的相关知识,以及oracle的认识
目前主流的数据库:微软:SqlServer,access瑞典MySQL:MySQLIBM公司:db2,informix美国sybase公司:sybase美国oracle公司(甲骨文):oracle我们在项目实施之前一定要选择正确的数据库来使我们的程序性能更加的流畅。根据项目数据的大小,安全性,成本等来选择:小型数据库:access,foxbase负载量:一百左右,成本在千元内...原创 2019-03-20 20:18:51 · 6828 阅读 · 0 评论 -
数据库设计范式
对于一个软件开发而言,一定经历这几个步骤:获取需求;需求分析与业务设计;数据库设计;程序开发与业务实现;程序测试;程序运维;对于数据库的分析方法,常见的就是数据库的范式设计所有的设计范式,都是作为一种参考,在初期可以根据范式进行设计,但之后几乎所有的范式都被打破我们在数据库设计的时候,根据业务的需要尽可能的减少多表复杂查询;第一范式:数据表中的每个字段都不可在分;某一个字段:...原创 2019-03-16 10:19:14 · 251 阅读 · 0 评论 -
oracle --DCL语言
DCL数据库的控制语言主要实现用户权限的控制要实现用户的管理操作,必须要提供管理员权限(既用sys/system来操作)1、首先用管理员创建一个用户dog/wangwangcreate user dog inentified by wangwang;然后创建完成的时候,用户还不能登录,因为创建缺少session 的权限2、为用户授予创建session 的权限grant create...原创 2019-03-13 13:18:45 · 1107 阅读 · 0 评论 -
oracle 对索引的理解
以一个查询的例子来理解什么是索引:select * from emp where sal>2000;我们来看这个查询做了什么事情切换到sys用户,打开跟踪器:conn sys/change_on_install as sysdba set autotrace on;然后执行:select * from scott.emp where sal>2000;...原创 2019-03-12 21:02:53 · 643 阅读 · 0 评论 -
oracle视图
视图在SQL语句之中,查询是非常麻烦的一件事情,有的查询语句非常长,在开发之中不方便进行程序的维护,那么在标准开发环境下,往往由数据库设计人员在数据库的业务中进行视图的定义以简化查询操作,所谓的视图就是包装了复杂查询的SQL语句对象语法:create or replace view 视图名 as 子查询 【with check option】 【with read only】;注:or...原创 2019-03-11 19:58:37 · 232 阅读 · 0 评论 -
oracle的同义词含义
我们知道,我们在查询伪列,或者做测试的时候会用到一个dual的表但是,dual这个表是属于sys用户里面的。我们一般在调用其他用户的表的时候,都是加上用户名.表名。但是在这里为什么可以不加呢?实际上,这里用到了同义词这个概念:dual严格来讲就是sys.dual的别名而已我们将他定义为dual,以后再其他用户上就可以直接使用dual来查询定义同义词的语法:create 【public...原创 2019-03-11 18:43:28 · 452 阅读 · 0 评论 -
oracle序列操作
序列的主要作用:在很多数据库里都存在自动增长列的数据类型,几乎所有的关系型数据库都支持自动增长列的操作,但是只有oracle特殊,只有oracle 12c版本之后才提供自动增长列,在此之前都是用序列的方式来处理。序列的创建语法:create sequence 序列名[increment_by 步长][start with 开始值][maxvalue 最大值|nomaxvalue][mi...原创 2019-03-09 21:29:50 · 831 阅读 · 0 评论 -
oracle综合实战--DDL&DML
综合实战,熟练oracle操作:建立三张表(商品信息表,人员信息表,购买表),并插入数据,脚本执行如下:--删除数据drop table purcase purge;drop table product purge;drop table customer purge;--创建表create table product ( prodectid ...原创 2019-03-06 22:44:01 · 300 阅读 · 0 评论 -
表的约束
所有的数据库设计人员,设计完表之后,一定要为其设置约束,以保证表中的数据是合法有效的数据约束分六种:数据类型非空约束not null某一列不能为空。如果在设置了不能为空的列上插入了空值,则会报错唯一约束 unique某一列的数据不允许重复(null值例外)如果插入了重复数据,则会提示错误,但此错误会以 (用户名…)的形式出现,这就是返回的错误信息,并且返回的错误内容。在oracl...原创 2019-03-04 22:19:04 · 306 阅读 · 0 评论 -
delete truncate drop 区别
在我学习的过程中,我依次学到了这三个内容:delete,truncate ,drop 都是跟删除有关的,为了增强记忆,来写一写他们的区别:delete 删除数据语法:delete from table where …如果不加where就是将表中的数据全部删除,delete是DML语言,执行过后需要commit一下,才会生效。没有commit之前可以用rollback恢复数据;delete只...原创 2019-03-02 10:42:57 · 319 阅读 · 0 评论 -
oracle-DDL对表的操作
在对表操作之前,一定要先了解基本数据类型:常用的数据类型:Varchar2():表示字符串,一般保存长度比较小的内容(200以内建议使用,oracle独有,其他数据库为varchar)number(n):整数,长度不能超过n**number(n,m)**小数占m位,整数占n-m个 如果不想细分,写个number就可以,既可以表示整数,也可以表示小数date:保存日期时间数据,日期加时间,...原创 2019-02-28 22:01:13 · 842 阅读 · 0 评论 -
数据伪列(重点)
数据伪列伪列:不是自己创建的列,但是存在在每一个表中在我们的oracle中,提供了很多伪列,例如:rownum(行号,与开发有关),rowid(与分析数据有关),sysdate(提供当前系统日期) ,systimestamp首先,我们先了解一下rownum:行号:rownum作用:针对查询到的每一行记录,进行一个编号,不是固定的,自动生成我们在数据查询的时候,默认情况下数据库会显示数据...原创 2019-02-26 22:56:16 · 702 阅读 · 0 评论 -
事务与死锁
**事务**事务是针对于数据更新使用的,只有DML的更新操作才能存在事务处理session 会话,以此概念表示唯一的一个用户,在oracle中每一个登录到数据库的用户,都会自动分配一个sessionsession 会话,以此概念表示唯一的一个用户,在oracle中每一个登录到数据库的用户,都会自动分配一个sessioncommit:事务提交。 执行更新操作后,只有执行了comm...原创 2019-02-26 21:20:11 · 1202 阅读 · 0 评论 -
DML数据更新部分
DDL数据操作语言分为两大部分:一个是查询,一个是更新,现在整理更新部分:数据增加:语法:insert into 表名{ (列名1,列名2,,,,)} values (值1,值2,)当插入日期的时候:当前日期(sysdate) to_date()转换,按照日期格式编写字符串自动转换例:insert into mycaozy(caozydm,caozyxm,mim,qiy,pinym)...原创 2019-02-25 21:52:48 · 481 阅读 · 0 评论 -
复杂查询的分析思路整理
复杂查询,我们说复杂查询就是简单查询,限定查询,排序,分组,多表,子查询合计起来的查询对于复杂查询,我们一点要先分析,按照思路来一步一步解决以下是我总结的分析思路:首先,确定两个表deptemp问题1:列出工资高于部门为30的所有员工的工资的员工姓名,工资,部门名称,部门人数?1、确定要使用的数据表emp表:姓名ename,工资saldept表:部门名称dnameemp表...原创 2019-02-23 16:28:35 · 853 阅读 · 0 评论 -
oracle子查询
子查询简单来说就是在一个查询里面继续嵌套其他查询语句根据子查询出现的地方总结:where子句后面:子查询一般会返回单行单列,单行多列,多行单列的数据单行单列:select * from ryxx where bianm< (select avg(caozydm) from caozyxx)单行多列:select * from ryxx where (xingb,zhic) =(se...原创 2019-02-23 10:25:20 · 241 阅读 · 0 评论 -
oracle分组查询
本小白日常oracle学习总结,若有错误望海涵,并希望大神能指点迷津**分组查询**基础统计函数count (*/distinct(列))统计表中的数据量count(*),统计表中所有数据量count(列),不统计null值count(distinct(列)) 消除重复项后的个数max(日期数字字段)最大min (日期数字字段)最小sum(数字字段)求和avg(数字字段...原创 2019-02-22 09:00:13 · 2711 阅读 · 0 评论 -
DML-多表查询
笛卡尔积:多表查询,性能一定是很差的,程序中应该尽量避免,,要根据程序的数据量来选择是否使用多表查询,如果多表查询出来的数据不完整,使用外连接补充,建议不需要在意是否是左外连接还是右外连接,一切以数据查询的结果为准。没有关联字段或者没有关联条件的表是不能实现多表关联的,除非例如:a和b表有关系,a和c表有关系,但b和c表没关系,可以关联对多表查询的理解:关联条件,就是根据这个关联的条件进...原创 2019-02-20 12:54:16 · 301 阅读 · 0 评论 -
oracle单行函数
本小白日常oracle学习总结,若有错误望海涵,并希望大神能指点迷津单行函数:完成某一具体功能的操作函数分为以下几种:字符串函数、数值函数、日期函数、转换函数、通用函数字符串函数:主要处理字符串数据(数据可能从列上或者直接设置的常量)upper (列|字符串)-------将传入的字符串变为大写用法:select upper (pinym) from ryxx&表示输入...原创 2019-02-16 15:10:46 · 361 阅读 · 0 评论 -
oracle安装与卸载
安装完成后管理员用户经典密码:超级管理员 sys/change_on_install普通管理员 system/manager普通用户 scott/tiger 需要解锁 //在安装弹出的详细信息那,进入口令管理,进行解锁,或设置密码大数据用户(样本数据库才有) sh/sh 需要解锁 //勾选带创建样本数据库的选项才有安装完成后,oracle的相关服务都会设置为...原创 2019-02-15 16:13:12 · 235 阅读 · 0 评论 -
DML-数据操作语言
增加表中的一个字段:在 JIANYXMXX 表中增加paixxh 字段,number类型,默认为1ALTER TABLE JIANYXMXX ADD paixxh number Default 1;GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。...原创 2019-02-13 15:23:57 · 789 阅读 · 0 评论 -
update之后的数据恢复
用于使用update语句提交之后,恢复使用1、select r.FIRST_LOAD_TIME,r.* from v$sqlarea r where SQL_TEXT like ‘update caozyxx%’ --查询执行误操作的时间,找到错误操作的记录2、create table t_table_recove --创建新表asselect * f...原创 2019-02-13 15:14:13 · 1107 阅读 · 0 评论 -
浅谈对oracle函数的理解
仅供自己理解使用例:函数如下create function aa(i number) return number is j number;begin select jinb into j from students where xueh = i; return j; exception when no_data_found then dbms_output...原创 2019-02-13 15:09:59 · 689 阅读 · 0 评论 -
oracle 备份
备份前需要创建数据库备份的路径创建Create directory dump_dir as ‘D:/dump/’;grant read,write on directory dump_dir to public;//给权限泵导(oracle 11g 以上支持泵导)expdp system/panku@orcl directory = dump_dir dumpfile = hisem...原创 2019-02-13 14:46:05 · 367 阅读 · 0 评论 -
oracle导入
数据库导入注:导入之前需要先创建表空间(表空间和用户要和导入的数据的表空间名称一样)和用户(泵导入时自动创建用户)。导入之前准备(1)创建表空间(表空间名要和导入数据的表空间名一致)CREATE TABLESPACE Smart_Table(表空间名) DATAFILE ‘Ftable.dat’(表空间物理文件名) SIZE 4000M REUSE(大小为4000m) AUTOEXTE...原创 2019-02-13 14:38:50 · 639 阅读 · 0 评论 -
Oracle--体系结构基础
什么是Oracle数据库Oracle database 是一款关系型数据库管理系统,我们笼统的把承载我们核心数据的系统称为数据库服务器Oracle database 严格来讲由两部分组成 Oracle database = 实例 + 数据库实例是指数据库启动时初始化的一组进程和内存结构数据库则指的是用户存储数据的一些物理文件关闭和启动实例,加载卸载数据库,就是这个道理。从实例和数据库...原创 2019-07-05 12:06:19 · 293 阅读 · 0 评论 -
体系结构---实例
实例**我们来看一下单实例进程的交互流程:**用户进程:**可以是一般的客户端软件,像Oracle的sqlplus,sql developer,或者是一些驱动程序等等都属于用户进程**服务器进程:**服务器进程有时会称为前台进程,当然是相对于后台进程(后面会提到的数据库写入器,日志写入器等)来说的,服务器进程的主要作用就是处理连接到当前实例的用户进程的请求,对客户端发来的sql进行执行并返...原创 2019-09-30 14:47:02 · 882 阅读 · 0 评论