
Oracle
文章平均质量分 76
吴声子夜歌
个人学习记录
展开
-
Oracle--加锁的方法
行共享锁(Row Share ,RS)对数据表定义了行共享锁后,如果被事务A获得,那么其他事务可以进行并发查询、插入、删除及加锁,但不能以排他方式存取该数据表。为Student表添加行共享锁行排他锁(Row Exclusive,RX)当事务A获得行排他锁后,其他事务可以对同一数据表中的其他数据行进行并发查询、插入、修改、删除及加锁,但不能使用行共享锁、行共享排他锁和行排他锁3种方式加锁。...原创 2020-01-07 21:18:22 · 3482 阅读 · 1 评论 -
Oracle--锁(概述、分类)
锁概述加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。Oracle通过使用锁(Lock)机制维护数据的完整性、并发性和一致性。Oracle在两个不同级别上提供读取一致性:语句级读取一致性和事务级读取一致性。语句级读取一致性: Or...原创 2020-01-06 23:28:58 · 343 阅读 · 0 评论 -
Oracle--事务详解
事务事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元。概述事务在数据库中主要用于保证数据的一致性,防止出现错误数据。在事务内部的语句都会被看成一个单元,一旦有一个失败,那么所有的都会失败。在编程过程中也经常用到事务。事务是一组数据库操作的逻辑工作单元,每个事物都是一个原子单位。在一个事务中可以包含一条或多条DML(数据操纵语言)、DDL(数据定义语言)和DCL(数据控制语言)语句,...原创 2020-01-06 22:15:21 · 736 阅读 · 0 评论 -
Oracle--管理触发器(查看、启用/禁用、修改、删除)
查看触发器触发器是一种特殊的存储过程,从被创建之日起,触发器就被存储在数据库中,直到被删除。触发器与一般存储过程或者存储函数的区别在于触发器可以自动执行,而一般的存储过程或者存储函数需要调用才能执行。Oracle提供检索与触发器相关信息的数据字典。与触发器相关的数据字典主要包括以下几种:USER_TRIGGERS: 存储当前用户所拥有的触发器。DBA_TRIGGERS: 存储管理员所拥有...原创 2020-01-05 22:28:08 · 9873 阅读 · 0 评论 -
Oracle--系统事件触发器、用户事件触发器
系统事件触发器系统事件触发器是指由数据库系统事件触发的数据库触发器。数据库系统事件通常包括以下几种:数据库的启动(STARTUP)数据库的关闭(SHUTDOWN)数据库服务器出错(SERVERERROR)创建一个系统事件触发器,数据库启动后记录启动时间创建系统时间触发器测试表:create table DB_Log(op_date timestamp);创建系统事件触发器:...原创 2020-01-05 22:04:45 · 1492 阅读 · 0 评论 -
Oracle--替代触发器(INSTEAD OF)
INSTEAD OF触发器INSTEAD OF触发器主要用来对另一个表或视图进行DML操作。与DML触发器不同,在定义替代触发器后,用户对表的DML操作将不再被执行,而是执行触发器主体中的操作。使用替代触发器的一个常用情况是对视图的操作,如果一个试图由多个基表连接而成,则该视图不允许进行INSERT、UPDATE和DELETE这样的DML操作。当在视图上编写替代触发器后,用户对视图的DML操作就...原创 2020-01-05 21:33:36 · 3412 阅读 · 0 评论 -
Oracle--DML触发器
语句级触发器创建语句级触发器,当添加学生时弹出“用户注册窗口”。create or replace trigger tr_studentbefore insert on studentbegin dbms_output.put_line('欢迎新同学!');end;执行:利用触发器实现日志管理功能。该触发器用来实现当在Student表中删除一条数据时,在stu_log表中添加...原创 2020-01-05 20:53:21 · 855 阅读 · 0 评论 -
Oracle--触发器详解(分类、作用、执行顺序和语法)
触发器概述触发器是一种在发生数据库事件时能够自动运行的PL/SQL代码块,它与特定表或视图上的操作相关联。触发器是大型关系数据库系统都提供的一项技术。触发器通常用来完成由数据库的完整性约束难以完成的复杂业务规则的约束,或用来监视对数据库的各种操作,实现审计功能。触发器是一种特殊的存储过程,它与数据表紧密联系,用于保护表中的数据,当一个定义了特定类型触发器的基表执行插入、修改或删除表中数据的操...原创 2020-01-05 17:52:50 · 4491 阅读 · 0 评论 -
Oracle--函数(创建、调用和删除)
函数函数一般用于计算和返回一个值,可以将经常需要进行的计算写成函数。函数的调用是表达式的一部分,而过程的调用是一条PL/SQL语句。函数与过程在创建形式上有些相似,也是编译后放在内存中供用户使用,只不过调用时函数要用表达式,而不像过程只需调用过程名。另外,函数必须有一个返回值,而过程则没有。创建函数创建函数的语法和创建存储过程的语法也很相似。它们在数据库内采用相同的规则,参数的传递也相同。...原创 2020-01-04 22:46:34 · 2888 阅读 · 0 评论 -
Oracle--带参数的存储过程(IN、OUT和IN OUT)
带参数的存储过程存储过程允许带有参数,参数的使用将增加存储过程的灵活性,给数据库编程带来极大的方便。存储过程中如果使用了参数,在执行存储过程时必须为其指定参数。总的来说,参数可以是常量、变量和表达式等。Oracle有三种参数模式:INOUTIN OUTIN参数该类参数值由调用者传入,并且只能够被存储过程读取。这种模式的参数是最常用的,也是默认的参数模式。示例:创建一个带有输入...原创 2020-01-04 20:01:45 · 12421 阅读 · 0 评论 -
Oracle--存储过程概述、创建和执行
存储过程存储过程是Oracle开发者在数据转换或查询报表时经常使用的方式一。存储过程是一种命名PL/SQL程序块,它将一些相关的SQL语句、流程控制语句组合在一起,用于执行某些特定的操作或者任务,可以将经常需要执行的特定的操作写成过程。通过过程名,就可以多次调用过程,从而实现程序的模块化设计。这种方式极大地节省了用户的时间,也提高了程序的效率。概述在Oracle中,可以在数据库中定义子程序,...原创 2020-01-04 18:27:25 · 6461 阅读 · 0 评论 -
Oracle--同义词详解
同义词同义词(synonym)是表、索引和视图等模式对象的一个别名。同义词只是数据库对象的替代名,与视图类似,同义词并不占用实际存储空间,只在数据字典中保存同义词的定义。在使用同义词时,Oracle简单地将它翻译成对应方案的名称。通过使用同义词,一方面可以简化对象访问,如数据字典视图USER_INDEXES的同义词为IND,数据字典视图USER_SEQUENCES的同义词为SEQ;另一方面可以...原创 2020-01-04 17:18:55 · 1650 阅读 · 0 评论 -
Oracle--序列详解(创建、修改、删除和使用)
序列序列(sequence)是一种数据库对象,可以为表中的行自动生成序列号,利用它可生成唯一的整数,产生一组等间隔的数值(类型为数字Number),主要用于生成唯一、连续的序号。序列是一种共享式的对象,多个用户可以共同使用序列中的序号。一般序列所生成的整数通常可以用来填充数字类型的主键列,这样当向表中插入数据时,主键列就使用了序列中的序号,从而保证主键的列值不会重复。用这种方法可以替代在应用程序...原创 2020-01-03 23:05:10 · 1900 阅读 · 0 评论 -
Oracle--触发器详解
触发器数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列。触发器的类型语句级触发器在指定的操作语句操作之间或之后执行一次,不管这条语句影响了多少行。**行级触发器(FOR EACH ROW)触发语句作用的每一条记录都被触发。在行级触发器中使用 :...原创 2019-09-15 17:17:34 · 884 阅读 · 0 评论 -
Oracle--使用Java程序调用存储过程(CallableStatement)
1. 创建工程并导入Oracle的驱动jar包创建一个JDBCUtils工具类package pers.zhang.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql...原创 2019-09-15 12:35:27 · 1523 阅读 · 0 评论 -
Oracle--PL/SQL存储过程、存储函数详解
存储过程存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。存储过程语法:create [or replace] PROCEDURE 过程名 [(参数名 in/o...原创 2019-09-15 10:50:38 · 1428 阅读 · 0 评论 -
Oracle--PL/SQL例外详解
例外例外是程序设计语言提供的一种功能,用来增强程序的健壮性和容错性。系统定义例外No_data_found:没有找到数据Too_many_rows:select …into语句匹配多个行Zero_Divide:被零除Value_error:算数或转换错误Timeout_on_resource:在等待资源时发生超时示例:被0除declare pnum number;beg...原创 2019-09-14 22:55:12 · 764 阅读 · 0 评论 -
Oracle数据库体系结构
数据库Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。实例一个Oracle实例(Oracle Instance)由一系列的后台进程(Backguound Processes)和内存结构(Memory Struc...原创 2019-09-08 16:09:52 · 979 阅读 · 0 评论 -
Oracle--基本查询详解
sql简介结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统:同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存取方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,...原创 2019-09-08 19:15:47 · 1069 阅读 · 0 评论 -
Oracle--条件查询、模糊查询和排序详解
使用where语句对结果进行过滤SELECT *|{[DISTINCT] column|expression [alias],...}FROM tableWHERE condition(s)};比较运算符操作符含义=等于(不是==\color{red}{不是==}不是==)>大于>=大于、等于<小于<=小于、...原创 2019-09-08 22:44:51 · 1859 阅读 · 0 评论 -
Oracle--单行函数(字符函数、数值函数、日期函数、转换函数、通用函数、条件表达式)详解
什么是SQL的函数?函数的类型单行函数字符函数示例:接收字符输入返回字符或者数值,dual\color{red}{dual}dual是伪表1.把小写的字符串转换成大写的字符:upper(str)select upper('tomcat') from dual;2.把大写字符变成小写字符:lower(str)select lower('TOMCAT') from dual...原创 2019-09-10 09:50:45 · 1330 阅读 · 0 评论 -
Oracle--多行函数(分组函数)详解
什么是多行函数(分组函数)?分组函数作用于一组数据,并对一组数据返回一个值。也叫:组函数,分组函数组函数会忽略空值:NVL函数使分组函数无法忽略空值\color{red}{组函数会忽略空值:NVL函数使分组函数无法忽略空值}组函数会忽略空值:NVL函数使分组函数无法忽略空值常用的多行函数AVGCOUNTMAXMINSUM多行函数示例1.统计记录数 count()示例:查...原创 2019-09-10 17:48:13 · 2221 阅读 · 0 评论 -
Oracle--多表查询、层次查询详解
什么是笛卡尔积?Oracle的连接条件的类型等值连接不等值连接外连接自连接Oracle多表连接示例1.多表连接基本查询使用一张以上的表做查询就是多表查询语法:SELECT {DISTINCT} *|列名... FROM 表明 别名, 表名1 别名 {WHERE 限制条件 ORDER BY 排序字段 ASC|DESC...}示例:查询员工表和部门表select * ...原创 2019-09-10 19:59:57 · 1366 阅读 · 0 评论 -
Oracle--子查询(单行子查询、多行子查询、相关子查询)详解
什么是子查询?使用子查询解决问题:谁的工资比SCOTT高?子查询的语法子查询(内查询)在主查询之间一次执行完成。\color{red}{子查询(内查询)在主查询之间一次执行完成。}子查询(内查询)在主查询之间一次执行完成。子查询的结果被主查询使用(外查询)。\color{red}{子查询的结果被主查询使用(外查询)。}子查询的结果被主查询使用(外查询)。子查询的类型...原创 2019-09-11 23:58:21 · 2184 阅读 · 0 评论 -
Oracle---集合运算(交、并、差)详解
什么是集合运算?并集示例:查询10号和20部门的员工select * from emp where deptno=10unionselect * from emp where deptno=20;交集示例:显示薪水同时位于级别1(700 ~ 1300)和级别2(1201 ~ 1400)的员工信息。select ename,sal from emp where sal bet...原创 2019-09-12 16:58:33 · 3512 阅读 · 0 评论 -
Oracle--使用DDL语句管理表、约束详解
创建表空间表空间是Oracle数据库的逻辑单元。数据库–表空间。一个表空间可以与多个数据库文件(物理结构)关联一个数据库下可以建立多个表空间,一个表空间可以建立多个用户、一个用户下可以建立多个表。create tablespace zhangsdatafile 'd:\zhangs.dbf'size 100mautoextend onnext 10m;zhangs:为表空间名称...原创 2019-09-12 21:51:57 · 1829 阅读 · 0 评论 -
Oracle--常用数据库对象(视图、序列、索引、同义词)详解
常见的数据库对象对象描述表基本的数据存储集合,由行和列组成视图从表中抽出的逻辑上相关的数据集合序列提供有规律的数值索引提高查询的效率同义词给对象起别名视图什么是视图?视图是一个虚表\color{red}{虚表}虚表视图建立在已有表的基础上,视图赖以建立的这些表称为基表\color{red}{基表}基表向视图提供数据内容的语句为...原创 2019-09-13 10:12:04 · 1473 阅读 · 0 评论 -
Oracle--使用DML语句处理数据及控制事务
数据操作语言DML(Data Manipulation Language - 数据操作语言)可以在下列条件执行:向表中插入数据修改现存数据删除现存数据事务是由完成若干项工作的DML语句组成的插入数据insert语句语法:insert into table [(column [, column...]}]values (value [, value...]);使用这种语法一...原创 2019-09-13 18:20:10 · 1093 阅读 · 0 评论 -
Oracle--PL/SQL基本语法、判断、循环
什么是PL/SQL?PL/SQL(Procedure Language/SQL)是Oracle对sql语言的过程化扩展,指在SQL命令语言种增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比过程语言简单、高效、灵活和实用。示例:为职工涨工资,每人涨10%的工资。update emp set...原创 2019-09-13 22:39:11 · 1968 阅读 · 0 评论 -
Oracle--PL/SQL游标(光标)详解
在写Java程序中有集合的概念,那么在pl/sql中也会用到多条记录,这时候就需要用到游标,游标可以存储查询返回的多条数据。游标的属性属性描述%notfound如果fetch失败,那么该属性就会返回true;否则返回false;%found如果fetch成功,那么该属性就返回true;否则就返回false;%rowcount返回已经fetch了的记录数,即...原创 2019-09-14 10:15:33 · 1004 阅读 · 0 评论 -
Oracle11g--常用SQL命令(实用版)
退出SQLPLUSexit;修改 system(sys) 账号密码SQLPLUS /NOLOGCONN /AS SYSDBAALTER USER SYSTEM IDENTIFIED BY tarring;清除 SQLPLUS 屏幕CLEAR SCREEN;CL SCR;查看数据文件位置SELECT NAME FROM v$datafile;查看控制...原创 2019-09-08 09:55:47 · 1604 阅读 · 0 评论