Oracle
文章平均质量分 52
weixin_41113108
这个作者很懒,什么都没留下…
展开
-
Oracle一些基本概念
一、数据:在数据库领域看来,数据是存储的基本单位,包含文本、图片、视频、音频等。(我们一般不存文件,而存放文件地址)。二、数据库:就是数据仓库,存储数据的地方,特指计算机设备上的硬盘,以二进制压缩文本的形式存放。该文件不能直接操作,必须由各数据库公司提供的工具方可操作,该文件的格式是每个数据库公司内部定义的,不是统一规则。三、数据库对象:以行列机构的形式,将数据库中的信息表示出来的对象,即二维表。...原创 2018-05-09 21:35:00 · 170 阅读 · 0 评论 -
Oracle:子查询
子查询的作用:查询条件未知的事物,也就是条件未知的适合用于子查询。 区分两个概念: ①条件已知:查询工资为800的员工信息,800就是已知条件。 ②条件未知:查询20号部门平均工资的员工信息,20号部门的平均工资就是未知。一个条件未知的问题,通常可以分解为多个条件已知的问题。例:查询工资比WARD高的员工信息: ...原创 2018-05-14 09:46:58 · 181 阅读 · 0 评论 -
Oracle:子查询——rownum
1、rownum是oracle专用的关键字。2、rownum与表在一起,表亡它亡,表在它在。3、rownum默认情况下,从表中是查不出来的。4、只有在select语句中,明确写出rownum才能显示出来。5、rownum是number类型,且唯一连续。6、rownum最小值是1,最大值与你的记录条数相同。7、rownum能参与关系运算,只能=1、<、<=关系运算,其他则无值。例:显示e...原创 2018-05-14 09:58:09 · 1785 阅读 · 0 评论 -
Oracle:集合查询
1、并集运算:union 注意:union:二个集合中,如果都有相同的,取其一; union all:二个集合中,如果都有相同的,都取出来。 例:使用并集运算,查询20号或30号部门的员工信息。 select * from emp where deptno = 30 union select ...原创 2018-05-14 19:43:21 · 945 阅读 · 0 评论 -
Oracle:多表查询、子查询、集合查询选择顺序
当多表查询、子查询、集合查询都能完成同样任务时,考虑到效率问题,我们优先选择多表查询,其次是子查询,迫不得已时使用集合查询。原创 2018-05-14 19:45:30 · 1097 阅读 · 0 评论 -
oracle数据类型大小限制
数据类型参数描写char(n)n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)varchar2(n) n=1 to 4000字节可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字...转载 2018-05-14 21:06:30 · 2633 阅读 · 0 评论 -
Oracle:创建表
1、创建表: 例:创建用户表users(id整型、name字符串、birthday日期、sal整型,默认今天) create table users( id number(5) primary key, name var...原创 2018-05-14 21:59:18 · 364 阅读 · 0 评论 -
Oracle:修改表
1、为表增加列: 格式:alter table 表名 add 列名 类型(宽度)2、修改列的长度: 格式:alter table 表名 modify 列名 类型(宽度)3、删除列: 格式:alter table 表名 drop column 列名4、重命名列名: 格式:alter table 表名 rename column 原列名 to 新列名5、重命名表名: ...原创 2018-05-14 22:06:04 · 411 阅读 · 0 评论 -
Oracle:增删改数据
一、添加数据: 1、按表默认结构顺序插入一条记录: 格式:insert into 表名 values ..... 2、按自定义顺序插入一条记录: 格式:insert into 表名(列名) values 3、显示插入null值 4、隐私插入null值,但前提是所插入的字段允许插入null值 5、使用&占位符,动态...原创 2018-05-15 09:19:03 · 153 阅读 · 0 评论 -
Oracle:drop table和truncate table及delete from的区别
drop tabletruncate tabledelete from属于DDL属于DDL属于DML不可回滚不可回滚可回滚不可带where不可带where可带where表内容和表结构删除表内容删除表结构在,表内容要看where的执行情况删除速度慢删除速度慢删除速度慢,要逐行删除...原创 2018-05-15 09:33:04 · 845 阅读 · 0 评论 -
Oracle:事务
1、什么是事务:一个不可分割的子操作形成一个整体,该整体要么全部执行成功,要么全部执行失败。2、oracle中的事务开始:第一条DML(即:数据操纵语言,如,select、insert、update、delete)操作为事务的开始。3、oracle的提交事务: (1)显式提交:commit (2)隐式提交:DDL(数据定义语言)、DCL(数据控制语言)、exit(SQLplus工具)注意:无论...原创 2018-05-15 16:42:48 · 143 阅读 · 0 评论 -
Oracle:跨用户查询
注意:若跨用户查询表,必须被超级用户授予查询所有空间下的对象权。1、以超级管理员身份,授予用户查询所有空间下的对象权限: 格式:grant select any table to 用户名;2、以超级管理员身份,撤销用户查询所有空间下的对象权限: 格式:revoke select any table to 用户名;3、查看当前用户(自己)的权限: select * from ...原创 2018-05-15 21:35:57 · 4061 阅读 · 0 评论 -
Oracle:视图
1、什么是视图? ①视图是一种虚表。 ②视图建立在已有表的基础上,视图赖以建立在这些表称为基表。 ③向视图提供数据内容的语句为select语句,可以将视图理解为存储起来的select语句。 ④视图没有存储真正的数据,真正的数据还是存储在基表中。 ⑤程序员虽然操作的是视图,但最终视图还会转成操作基表。 ⑥视图向用户提供基表数据的另一种表现形式。 ...原创 2018-05-15 21:55:24 · 307 阅读 · 0 评论 -
Oracle:同义词
注意:创建同义词同样需要超级管理员授予权限。1、什么是同义词?对一些比较长名字的对象(表、视图、索引、序列...)做简化,用别名代替。2、作用: ①缩短对象名字的长度。 ②方便访问其他用户的对象。3、创建同义词: 格式:create synonym 同义词 for 表名/视图/其他对象;4、以超级管理员身份授予用户创建同义词的权利: 格式:grant creat...原创 2018-05-15 22:15:00 · 134 阅读 · 0 评论 -
Oracle:序列
1、什么是序列? ①类似于MySQL中的auto_increment自动增长机制,但oracle中无auto_increment机制。 ②是oracle提供的一个产生唯一数值型值的机制。 ③通常用于表的主键值。 ④序列又能保证唯一,不能保证连续。声明:在oracle中,只有rownum永远保持从1开始,且继续。 ⑤序列值,可放于内存,取之较快。2、为什么要用...原创 2018-05-16 09:08:01 · 209 阅读 · 0 评论 -
Oracle:索引
1、什么是索引? ①一种独立于表的对象; ②索引被删除或损坏,不会对表产生影响,其影响的只是查询速度; ③索引一旦建立,oracle管理系统会对其进行自动维护,而且由oracle管理系统决定何时使用索引。用户不用在查询语句中指定使用哪个索引; ④在删除一个表时,索引基于该表的索引会自动被删除; ⑤通过指针加速oracle服务器的查询速度; ⑥通过快速定位...原创 2018-05-16 15:20:55 · 146 阅读 · 0 评论 -
Oracle:PLSQL——概述
注意:PLSQL只能在oracle数据库中使用。1、什么是PLSQL?PLSQL是oracle对SQL语言的过程化扩展,指在SQL命令语言中增加了过程处理语句(如:分支、循环等),使SQL语言具有过程处理能力。2、程序结构:[declare] ---------------------->可选 说明部分;(变量说明、光标说明、例外说明)begin ------------------...原创 2018-05-16 20:06:03 · 190 阅读 · 0 评论 -
Oracle:PLSQL——类型
举例说明i number(2);定义一个number的变量imysum number(3):=100;定义一个number类型的变量mysum并为其赋值为100,注意 :‘ :=’为赋值符号msg varchar2(4):='zzzzz';定义一个varcher2类型的变量msg并为其赋值为zzzzzz,注意:PLSQL中字符用单引号括起来pname emp.ename%type;定义一个与enp...原创 2018-05-16 20:42:18 · 349 阅读 · 0 评论 -
Oracle:外连接查询
注意:外连接,既能查询出符合条件的记录,也能根据一方强行将另一方查询出来。注意:在oracle中,将(+)出现在=号右边,称为左外连接;将(+)出现在=号左边,称为右外连接;左外或右外,本质上是一样的,只是(+)的位置不一样,且(+)只能出现一次,以上语法是oracle专用语法。 例1:按部门10,20,30,40号,统计各部门员工的人数,要求显示部门号、部门名、人数。 ...原创 2018-05-14 08:21:28 · 590 阅读 · 0 评论 -
Oracle:内连接查询
注意:内连接(等值连接、非等值连接)只会查询出多张表中根据某个字段匹配、符合条件的记录,不符合条件的记录是不会存在的。1、等值连接:(只能用=号) 例:员工表emp和部门表dept的笛卡尔积: select emp.ename,dept.dname from emp,dept;2、非等值连接(不能用=号,其他符号都可以,例如:>=、<=、<...原创 2018-05-14 08:13:31 · 1328 阅读 · 0 评论 -
Oracle:连接查询的分类
一、内连接查询: 1、等值连接查询(只能用=号) 2、非等值连接查询(除了=号的所有符号)二、外连接查询:左连接、右连接三、自连接查询。其中,内连接和外连接查询是针对的二张以及以上的真实表查询。而自连接查询是针对的单张表查询。...原创 2018-05-13 21:53:55 · 324 阅读 · 0 评论 -
Oracle简单了解
oracle数据库服务器主要有两大部分组成:实例和数据库。实例可以理解为java中的对象,数据库可以理解为java中的类。数据库是不能被直接操作的,需由实例操作。用户一般可以用sqlplus、sqldeveloper、PLSQL等工具与java实例连接上,由java实例取操作数据库;...原创 2018-05-09 21:49:05 · 368 阅读 · 0 评论 -
Oracle:解锁与设置普通用户、忘记密码的解决方案
注意:解锁须以超级管理员身份进入,在doc窗口输入sqlpllus / as sysdba以解锁scott用户为例:解锁用户:alter user scott account unlock;设置密码:alter user scott identified by 111;(111为密码)普通用户登录:方式一:在doc窗口,命令格式:sqlplus 用户名/密码 ...原创 2018-05-09 21:56:16 · 293 阅读 · 0 评论 -
Oracle:select子句
1、查询当前用户是谁:show users;2、查询当前用户下的所有对象:select * from tab;3、设置显示的列宽(字符型varchar2、日期型data),10个宽度位,a表示字符型,大小写均可: 格式:column 字段名 format a12;(a12表示12列,可自定义)4、设置显示的列宽(数值型number),9表示数字型,一个9表示一个数字位,四个9表示四个数字位...原创 2018-05-09 22:15:44 · 395 阅读 · 0 评论 -
Oracle:where子句
1、注意:查询条件是日期时,要注意oracle的日期格式:DD-MON-RR。 例:查询1980年12月17日入职的员工: SELECT * from emp where hiredate = '17-12月-80';2、where条件可以进行=,<=,>=,表示不等于的方式有三种:!=,<>,not关键字,但是not性能不及<>。3、be...原创 2018-05-10 18:47:19 · 821 阅读 · 1 评论 -
Oracle:PLSQL——循环语句
格式一:WHILE 条件 LOOP 语句 END LOOP;格式二:LOOP exit[when条件成立]; ------------------>条件成立退出 语句; end loop;格式三:FOR I IN 1..3 -------------->在1-3区间 loop 语句序列;END LOOP;例1:使用loop循环显示1-10;declare i ...原创 2018-05-17 10:41:36 · 2560 阅读 · 0 评论 -
Oracle:PLSQL——游标
1、什么是光标/游标/cursor类似于JDBC中的ResultSet对象的功能,从上向下依次获取每一记录的内容语法格式:CURSOR 光标名[参数名 数据类型,参数名 数据类型...] IS select 语句;例1:使用无参光标cursor,查询所有员工的姓名和工资【如果需要遍历多条记录时,使用光标cursor,无记录找到使用cemp%notfound】decla...原创 2018-05-17 11:12:27 · 250 阅读 · 0 评论 -
Oracle:order_by子句
1、asc:升序排列(默认排序),及从小到大排列;若值相同,按oracle内置的校验规则排序。 例:查询员工信息(编号、姓名、月薪、年薪),按月薪升序排序: select empno,emame,sal,sal*12 from emp order by sal asc;2、desc降序,及从大到小排序。 例:查...原创 2018-05-10 20:50:09 · 201 阅读 · 0 评论 -
Oracle:三大类型转换
三大类型:varcher2,number,date,转换方式有两种:显式和隐式,这里主要学习显式。日期格式元素:格式说明举例YYYYFull year in numbers2011YEARYear spelled out(年的英文全称)twenty elevenMMTwo-digit value of month 月份(两位数字)04MONTHFull name of the month(月的全称...原创 2018-05-10 22:15:05 · 2819 阅读 · 0 评论 -
Oracle:PLSQL——例外
例外,相当于java中的异常,是程序设计语言提供的一种功能,用来增强程序的健壮性和容错性。一、系统内置例外:例外解释no_date_found没有找到数据too_many_rowsselect...into语句匹配多行zero_Divide被零除value_error算术或转行错误timeout_on_resource在等待资源时发生超时例1:使用oracle系统内置例外,演示除0例外【zero_...原创 2018-05-17 11:48:33 · 250 阅读 · 0 评论 -
Oracle:存储过程
一、基本概念:什么是存储过程?事先运用oracle语法写好的一段具有业务逻辑功能的程序片段,长期保存在oracle服务器中,供oracle客户端和程序语言远程访问,类似于java中的函数。存储过程是PLSQL的一个方面的应用,而PLSQL是存储过程的基础,即存储过程需要用到PLSQL;但PLSQL每次执行都要整体运行一遍,才有结果;PLSQL不能将其封装起来,长期保存在oracle服务器中;PLS...原创 2018-05-17 17:01:46 · 168 阅读 · 0 评论 -
Oracle:通用函数
通用函数,及参数类型可以是number、varcher2、date。1、NVL(a,b)函数:若a为null,则取b的值;若a不为null,则取a的值。2、NVL2(a,b,c)函数:如果a不为null则取b的值;如果a为null,则取c的值。3、NULLIF(a,b)函数:在类型一致的情况下,如果a与b相同,返回null,否则返回a的值。 例:比较10和100是否相等: ...原创 2018-05-11 11:14:37 · 128 阅读 · 0 评论 -
Oraclel:多行函数
注意:多行函数不统计null的值。1、count()函数:统计总记录数; 注意:若使用count(*),若表字段较少的情况下,可以用*;若表字段多的情况下,扫描时间多,效率低下。因此在项目中提 倡使用某一个非null的唯一的字段,通常是主键。 例1:统计总人数:select count(*) from emp; 例2:统计公司有多少个...原创 2018-05-11 12:21:02 · 362 阅读 · 0 评论 -
Oracle:where和having的区别
where: 1、行过滤器 2、针对原始的记录 3、跟在from后面 4、where可省 5、先执行having: 1、组过滤器 2、针对分组后的记录 3、跟在group by后面 4、having可省 5、后执行...原创 2018-05-11 12:24:09 · 542 阅读 · 0 评论 -
Oracle:存储函数
一、创建存储函数:语法:create or replace function 函数名 return 返回类型asPLSQL程序段二、删除存储函数,语法:drop function 函数名;三、调用:方式一:PLSQL程序段:方式二:java程序...原创 2018-05-17 17:09:08 · 718 阅读 · 0 评论 -
Oracle:存储函数、存储过程和SQL的使用区分
有且只有一个返回值是,提倡使用存储函数;无返回值或右多个返回值时,适合使用存储过程。满足以下条件之一适合使用过程函数:1、需长期保存在数据库中;2、被多个用户重复调用;3、业务逻辑相同,只是参数不一样;4、批操作大量数据。条件与上相反,适合使用SQL,且对表、视图、序列等这些操作还是适合用SQL;...原创 2018-05-17 17:50:05 · 151 阅读 · 0 评论 -
Oracle:触发器
一、定义:数据库触发器是一个与表相关联的,存储PLSQL程序。每当一个特定的数据操作语句(insert,update,delete)在指定的表上发出时,oracle自动地执行触发器中定义的语句序列。二、触发器类型:1、语句级触发器:在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行。2、行级触发器:出发语句作用的每一条记录都被触发,在行级触发器中使用:old和:new伪记录变量,识别...原创 2018-05-17 20:57:41 · 149 阅读 · 0 评论 -
Oracle:优化方案
为什么要Oracle优化: 随着实际项目的启动,Oracle经过一段时间的运行,最初的Oracle设置,会与实际Oracle运行性能会有一些差异,这时我们 就需要做一个优化调整。Oracle优化这个课题较大,可分为四大类: 》主机性能 》内存使用性能 》网络传输性能 》SQL语句执行性能【程序员】下面列出一些oracleSQL...原创 2018-05-17 21:25:09 · 447 阅读 · 0 评论 -
Oracle:PLSQL——判断语法
格式一:IF 条件 THEN 语句1; 语句2; END IF;格式二:IF 条件 THEN 语句序列1; ELSE 语句序列2; END IF;格式三: IF 条件 THEN 语句; ELSIF 语句 THEN 语句; ELSE 语句; E...原创 2018-05-16 21:27:46 · 3138 阅读 · 0 评论