![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle学习笔记
文章平均质量分 53
学习Oracle11g,记录笔记,一是自已看,二希望对看到的人有所帮助
李穆
这个作者很懒,什么都没留下…
展开
-
CentOS 8安装Oracle 19c rpm包
oracle-database-preinstall-19c-1.0-1.el8.x86_64.rpm是oracle-database-ee-19c-1.0-1.x86_64.rpm依赖包,可以去https://centos.pkgs.org/使用root用户登录执行下面脚本,此脚本创建一个容器数据库(ORCLCDB)和一个可插拔数据库(ORCLPDB1),并在默认端口(1521)配置侦听器。oracle-database-ee-19c-1.0-1.x86_64.rpm是oracle 19c安装包。原创 2023-06-27 14:44:20 · 1405 阅读 · 0 评论 -
Oracle用户
创建Oracle用户我认为,在项目或自己开发中,尽量使用普通用户开发,赋予每个普通用户不用的权限,使用普通用户开发或者维护项目,这样做的好处是超级管理员的权限太高,如果出现失误可能导致不可挽回的损失。这是我目前的认知,可能不对,活几年,我的认知可能有所改变。欢迎看的人提出意见。这是Oracle的第一篇学习笔记,前面还有一篇Oracle的安装博客。开始正事,创建用户。Oracle分为普通用户和特权用户。普通用户有特权用户创建,只拥有对数据库的一部分权限,只对该用户需要的权限进行分配,以免造成过多的安原创 2020-10-12 22:46:03 · 721 阅读 · 0 评论 -
oracle子程序
一、子程序介绍子程序是PL/SQL中的命名块,具有名称可以存储到数据字典中国,重复调用。子程序包含过程和函数,一般使用一个过程,计算返回一个结果。子程序主要包含名称、声明区、执行区和异常处理区。会以编译后的形式存储在数据库中,所以可以重复调用。语法如下:CREATE OR REPLACE 名称(参数1, 参数2,...)ASBEGIN 过程,也就是处理或者计算过程ENDEND 函数名;如果学过一些高级编程语言,如C、JAVA等,就发现和定义函数或者方法是差不多的,最起码思路一样。.原创 2022-07-06 08:27:30 · 126 阅读 · 0 评论 -
Oracle游标
游标是一个指向返回数据集的指针原创 2021-04-07 21:29:08 · 140 阅读 · 0 评论 -
PL/SQL编程
一、PL/SQL基础基本语法DECLARE 变量名 类型;DECLARE 变量名 类型 := 值;BEGIN 代码;END;二、PL/SQL语言概览1、PL/SQL块块是PL/SQL最基本的程序单元,在PL/SQL中通过使用块来组织相关的定义和各种PL/SQL语句。所有的PL/SQL程序都是有语句块组成,块之间还可以相互嵌套。一个PL/SQL块是有关键字DECLARE、BEGIN、EXCEPTION 和END组成的,这些关键字将PL/SQL块划分为3个部分:A、定义区,由DECLARE原创 2021-03-21 15:02:39 · 374 阅读 · 4 评论 -
Oracle内置函数
一、函数的分类Oracle SQL语言中,函数分为俩大类1、单行函数,函数一次仅计算一行,同时返回单一的结果值。2、多行函数,函数在同一时刻操作一组数据,同时返回单个行。单行函数按照所操作的数据类型和函数的功能分为5类:1、字符型函数,接收字符输入并返回字符或数值。2、数字型函数,接收数值输入并返回数值。3、日期时间函数,对日期型数据进行操作。4、类型转换函数,从一种数据类型转换成另一种数据类型。5、通用性函数,一些比较通用的函数。二、字符型函数列表三、数字型函数四、日期时间原创 2021-03-14 17:51:36 · 96 阅读 · 0 评论 -
操纵数据表(DML)之删除数据DELETE
一、DELETE 语句使用注意事项:1、DELETE语句只会删除整条记录,而不能对记录中的某个字段进行删除;2、删除一行数据时可能导致与其他表的引用完整性出现问题,一次必须注意删除的顺序;3、DELETE语句知识删除表中的数据,并不会对整个表进行移除工作,移除使用FROP TABLE语句。4、DELETE语句在删除数据时会产生回退日志信息,因此可以使用事务回滚ROLLBACK语句进行恢复。语法如下:DELETE 删除行的语法如下:DELETE [FROM] table [W原创 2021-03-14 15:40:05 · 2813 阅读 · 0 评论 -
Oracle常用视图或表(补充中)
--当前户的权限SELECT * FROM user_sys_privs;--查看表SELECT * FROM user_tables;-- 查看主键SELECT * FROM user_indexes;--查看视图SELECT * FROM user_views;--查询视图是否可以更新SELECT * FROM user_updatable_columns WHERE table_name = 'V_BUSER';--视图状态SELECT * FROM user_obje原创 2021-03-14 14:35:03 · 98 阅读 · 3 评论 -
Oracle常用系统表(补充中)
--当前户的权限SELECT * FROM user_sys_privs;--查看表SELECT * FROM user_tables;-- 查看主键SELECT * FROM user_indexes;--查看视图SELECT * FROM user_views;--查询视图是否可以更新SELECT * FROM user_updatable_columns WHERE table_name = 'V_BUSER';--视图状态SELECT * FROM user_obj.原创 2024-01-18 14:21:12 · 411 阅读 · 0 评论 -
oracle授权(补充中)
--创建序列GRANT CREATE SEQUENCE TO test;--修改序列GRANT ALTER SEQUENCE TO test;--删除同义词GRANT DROP PUBLIC SYNONYM TO TEST;--使用表空间 ALTER USER test QUOTA UNLIMITED on TEST_YJ;原创 2021-03-14 14:30:41 · 82 阅读 · 0 评论 -
操纵数据表(DML)之更新数据UPDATE
一、UPDATE 语句语法如下UPDATE tableSET column = value [, column = value, ......]WHERE condition;原创 2021-03-13 20:08:00 · 845 阅读 · 0 评论 -
操纵数据表(DML)之INSERT
一、DML语言DML语言的英文全称是Data Manipulation Language ,中文全称是数据操作语言,它是SQL语言中的一个重要的组成部分。当需要完成对数据库中的数据的新增、修改和删除时,实际上使用的就是DML语言。主要包括如下几个核心语句:1、INSERT 语句,想表中添加新的行。2、UPDATE 语句,更新已经存储在表中的数据。3、DELETE语句,删除行。4、MERGE语句,插入所有行到另一个已经存在的表,如果要插入的行的键已匹配已经存在行,测更新已经存在的行而不是插入一个新行原创 2021-03-13 19:55:30 · 368 阅读 · 0 评论 -
分组查询
一、分组函数分组函数是一类面向集合的函数,将会对查询返回的结果集进行操作,比如统计分组的结果集的最大值、最小值或平均值等。与一些只接受单个参数的作为参数值的单行函数不同,它面向的是一个结果集合的统计,就好像是对一个结果集数据进行循环计算一样,然后返回单一的计算结果。分组函数语法如下:aggregate_function ( [ DISTINCT | ALL ] exprssion )1、ggregate_function ,指定分组函数的名称,比如SUM、COUNT、AVG、MAX、MIN等。2、原创 2021-03-13 15:51:56 · 593 阅读 · 0 评论 -
集合及子查询
一、集合运算1、UNION联合运算,从俩个查询返回的结果集去掉重复值以后合并后的结果。2、UNION ALL 全联合运算,与联合运算相似,返回俩个查询结果的并集,但是包括所有重复值。3、INTERSECT 相交运算,返回多个查询结果中的相同的行。4、MINUS 相减运算,返回第一个查询中存在而不在第二个查询存在的行注意:1、不能再包含BLOB、CLOB、BFILE和VARRAY及包含嵌套列表的列中使用集合操作。2、UNION、INTERSECT 和MINUS 操作设计的排序操作不能应用在LOG原创 2021-01-19 19:45:45 · 332 阅读 · 0 评论 -
多表连接查询
一、多表查询的基础语法SELECT table1.column, table2.columnFROM table1, table2WHERE table1.column = table2.column;二、表与表之间的连接在Oracle中主要有如下3种类型的连接:1、内连接,这种连接但会即满足A表又满足B表的行,只有(join)的条件满足才返回,否则不会返回任何数据。2、外连接,外连接是内连接的扩展,外连接返回符合条件的行,同时可以根据指定的条件返回不满足连接条件的左边表行或者右边的表行。外原创 2021-01-17 16:52:08 · 3798 阅读 · 0 评论 -
Oracle查询SELECT
本人有一些数据库基础,故并不详细一、SELECT 基础语法SELECT { [ aliias. ] column | expression | [ alias. ] * [ ,... ] }FROM [ schema. ] table [alias]WHERE 查询条件;二、用DISTINCT去除重复值SELECT DISTINCT 列名 FROM 表名;默认情况下,SELECT 语句或返回符合条件的所有行值,实际是哪个这是因为在SELECT语句后面有一个默认的关键字ALL,用来表示返原创 2021-01-17 15:59:08 · 1319 阅读 · 0 评论 -
Oracle同义词
同义词是方案对象的别名,它不占储存的空间,目的是在Oracle中为表或者视图、序列、PL/SQL程序单元、用户自定义对象或其他的同义词创建友好的名称。一、同义词的作用同义词的主要作用是简化对目标对象的访问,或者是因为某些私密的原因必须要隐藏Oracle对象的一些命名。同义词也是一种数据方案的对象,因此创建的同义词会存储到数据字典中,但是同义词仅仅是目标对象的一个别名,因此实际上本身并没有太多的意义。在Oracle中,多数的方案对象比如表、试图、同义词、序列、存储过程、包等都可以创建同义词。通过同义词的原创 2021-01-01 22:18:50 · 2305 阅读 · 0 评论 -
序列
在数据库中,很多地方需要一个唯一编号,就和人的身份证号差不多。有二种方法,序列对象和PL/SQL子程序实现。这回遇到锁定和多用户并发的问题,很容易导致序列重复,或者是用户的等待。使用一个独立的序列对象就不会有这样的问题。序列与使用序列的分钟方案对象如下图所示一、创建自增序列序列独立于失误的提交或回滚,因此当用户使用序列并回滚了事务之后,可能会导致序列号具有间隙。考虑到应用程序可能需要没有间隙的数字的话,则不能使用Oracle的序列,必须在数据库中使用自己开发的代码来序列化程序的行为。在定义一个序列时原创 2020-12-16 21:24:18 · 288 阅读 · 0 评论 -
Oracle 视图(2)修改视图
修改视图有CREATE OR PEPLACE H和 ALTER VIEW ,需要注意四点: 1、视图的更改不会印象视图的基础表,因为视图只是基表的呈现方式。 2、在定义视图如果使用了 WITH CHECK OPTION 选项,但是修改时去掉了 WITH CHECK OPTION 选项,那么对视图应用的约束会被清除。 3、对视图进行修改后,所有依赖于该视图的其他视图或引用了视图的程序都会变为无效状态。 4、对视图的基础表进行修改后...原创 2020-12-15 21:26:17 · 9441 阅读 · 0 评论 -
Oracle 视图(1)建立视图
一、 视图是基于表的表或者视图的逻辑表,与储存数据的表一样都是Oracle的方案对象。视图通常用于下面:1、通过提供用户所需要的的基表中的数据,可以简化用户对数据的理解,隐藏表结构的复杂性,而且可以将那些经常使用的使用的查询定义为视图,使用户不必为以后的每次操作指定全部的条件。2、通过限制对一组预定义的表行或者表列的访问你,可以提供更好的安全性级别。通过Oracle的预授权命令作用于视图,可以让全县被限制在基于的行或列的子集上,提供高细的安全性级别。3、可以提供不同于基表的角度来呈现视图的数据,了如原创 2020-12-15 20:59:26 · 13624 阅读 · 0 评论 -
Oracle命令行查看执行计划
--设置执行计划set autotrace traceonly explain;--需要查看SQL语句SELECT * FROM v_buser;原创 2020-12-14 20:43:01 · 394 阅读 · 0 评论 -
Oracle索引(2)
1、重命名索引ALTER INDEX 旧索引名 RENAME TO 新索引名;原创 2020-12-08 21:01:23 · 680 阅读 · 0 评论 -
Oracle索引(1)
索引是为了更快的检索数据,就是为了更快的查找,在表里面的数据量比较大的时候,查找一条记录会花费大量的时间,其中,唯一索引可以保证表里数据的唯一性.索引主要有以下作用:索引是的检索数据的速度大大加快创建索引时自动添加了唯一性约束,通过使用唯一性索引可以保证数据库表中每一行数据的唯一性.通过索引可以加快表与表之间连接, 使得在数据库中进行多表连接查询是速度明显增强.使用索引后,在分组和排序字句进行数据汇总时,可以显著的减少查询分组和排序的时间. 索引需要在表基础上创建,需要...原创 2020-12-07 22:58:44 · 117 阅读 · 0 评论 -
数据字典中的表信息
表作为一种方案对象,创建后建表信息就保存到数据字典中。数据字典是ORACLE存放数据库信息的地方,位于SYSTEM表空间,主要储存数据库元数据信息,例如表的创建者、创建时间、表空间及用户访问权限等信息。DBA_TABLES视图SELECT * FROM DBA_TABLES;上图只是截取了一些列,后面还有很多列--查看表的所属表空间,表名,行数SELECT tablespace_name, table_name, num_rowsFROM dba_tablesWHERE ta原创 2020-12-07 22:57:11 · 834 阅读 · 0 评论 -
Oracle 修改表 虚拟列
添加表列ALTER TABLE [schema_name.] table_name{ ADD column_name data_type [column_attributes] | --添加表列 DROP COLUMN column_name | --删除表列 MODIFY column_name data_type [column_attributes] --修改表列}table_name 要修改的表名称colu.原创 2020-12-06 11:45:53 · 1108 阅读 · 0 评论 -
DAUL表的使用
DAUL表的使用DAUL表是ORACLE创建数据字典时同时创建的一个表,只有一个列,位于SYS方案中,所有用户都可以访问,只有一个列dummy。使用dual表至少返回一行数据,并且不要对daul执行insert、update、delete等SELECT * FROM dual;使用dual获取当前日期--修改日期格式ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';--查询日期SELECT SYSDATE FROM DUAL;使用d原创 2020-11-11 19:51:52 · 888 阅读 · 0 评论