Oracle知识点总结文档提示

1、查询语句
关键字 语句结构 需要注意的点
Select * from 表名 where 条件;
distinct –去重; order by 列名 –默认升序; order by 列名 desc –默认降序;
trunc(运算) –截取; round(运算) –四舍五入;sysdate,systimestamp –查询系统日期;
count(*) –记录条数;in() –等值匹配; between 值1 and 值2 –范围匹配; like –模糊查询
2、修改语句
关键字 语句结构 需要注意的点
alter table 表名 关键字()
update 表名set 列名=值 where 条件;
Modify –修改字段类型;rename column –修改字段名字
3、新增数据语句
关键字 语句结构 需要注意的点
insert into 表名(字段) values(值);
4、删除信息
关键字 语句结构 需要注意的点
delete from 表名 where 条件
删除数据时,必须加where
5、创建对象的语句结构
create 关键字 ………
6、删除对象的语句结构
drop 关键字 对象名;
7、创建表的结构操作
Create table 表名(字段);
8、删除表的结构操作
drop table 表名;
9、给表添加约束的操作
alter table 表名 add constraint 约束名 约束内容。
10、删除约束的操作
alter table 约束基于的表名 drop constraint 约束名
11、对表进行结构修改的操作(新增字段,修改字段类型,删除字段,重命名)
alter table 表名 add (字段 数据类型); –增加字段类型
alter table 表名 modify (字段 新数据类型); –修改字段类型
alter table 表名 rename column 旧字段 to 新字段 修改字段名
alter table 表名 drop(字段); –删除字段
alter table 旧表名 rename to 新表名; –表名重命名
12、创建/删除序列的结构操作
create sequence 序列名; –创建序列
drop sequence 序列名; –删除序列
13、创建/删除视图的结构操作,需要注意的内容信息
create or replace force/noforce view 视图名 as
查询语句 属性; –创建视图
drop view 视图名; –删除视图
14、创建/删除同义词的结构操作,需要注意的内容信息
create synonym 同义词名 for 用户.表名 –赋予私有同义词
create or replace public synonym 同义词名 for用户.表名
–系统管理员可赋予公共同义词,一般不用public
drop synonym 同义词名; –删除私有同义词
drop public synonym同义词名; –删除共有同义词
15、索引的优缺点,以及索引的创建
create 属性 index 索引名 on 表名(列);–创建索引
索引可以提高查询的效率,但会降低增删改的效率。数据多时使用,索引是以rowid物理地址进行快速定位,表的主键和包含唯一约束的列自动创建索引。在经常使用在where子句中的列上面创建索引,加快条件的判断速度。 
优点:
第一 :通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 
第二 :可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 
第三 :可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 
第四 :在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的间。 
第五 :通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 
缺点:
第一 ,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 
第二 ,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。 
第三 ,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 

16、PL/sql块的结构
declare 变量赋值声明
begin
正常语句块(可镶嵌begin 语句块 end;)
exception when 异常名 then 异常处理(可忽略)
when others then 不满足以上异常时的处理
end;
17、PL/sql块中变量/常量的声明结构,以及赋值
变量名 数据类型 :=初始值; –声明变量
变量名 constant 数据类型 :=初始值; –声明常量
18、PL/SQL块中关系判断的使用
if 条件 then 语句块 elsif 条件 then 语句块 else 语句块 end if;
case 字段 when 条件 then 语句块 else 语句块 end case;
19、PL/SQL中游标的定义以及循环操作
cursor 游标名 is 查询语句;→ –在声明部分定义游标
open 游标名;→ –打开游标
fetch 游标名 into 变量名;→ –把游标赋值给变量
exit when 游标名%游标属性;→ –满足游标属性时,跳出
lose 游标名; –关闭游标
注:把游标赋值的变量名,cursor中对应查询中的显示列;
loop 游标赋值变量→满足游标属性,跳出→输出 end loop;
游标赋值变量 while 游标名%游标属性 loop 输出
→游标赋值变量 end loop;
for 变量名(表名) in 游标名 loop 输出 end loop;
20、PL/SQL中异常的操作处理
no_data_found –用于数据空指针异常时使用。
dup_val_no_index –用于向唯一索引列中输入了重复值时使用。
invalid_number –用于处理字符串转换为数字时使用。
too_many_rows –用于处理查询中返回多于 1 条记录。
zero_divide –用于处理用 0 作为除数时的数据。
cursor_already_open –用于处理打开一个已经打开的游标。
invalid_cursor –用于处理进行非法游标操作时使用。
2.自定义异常
declare中声明异常:异常名 exception; →begin语句块中引发:raise 异常名;→exception中捕捉处理异常:when 异常名 then 异常处理内容。
引发应用程序异常(引发系统异常)
raise_application_error(异常码,异常内容信息)
–用于自定义异常处理报错的框框。
异常码:-20000至-20999;
异常码绑定
pragma exception_init(异常名,异常码);–在声明中进行绑定
注:在程序中进行引发应用程序异常时,必须进行异常码的绑定。
21、PL/SQL块中动态语句的操作
execute immedlate:=’sql语句’ using 向sql语句传递参数。
–动态执行语句
returning 列 into :名;
returning into 列参数名 – 用于接参数;
、注:动态执行语句主要针对DDL语句的,DDL的语句不能直接在sql语句块来使用,参数值的变量可以做成输入框。

22、触发器的创建
create or replace trigger 触发器名
触发时机 (before:操作之前触发,after:操作之后触发)
触发事件(DML)多个时用or连接;用update时+(of 字段)
on 表名或视图;(数据库触发器所在的表)
for each row –创建行级触发器,针对表级时不用写
when 触发条件(可忽略)
begin –将触发操作前数据插入到日志记录表,以供监督使用。
PL/sql执行语句
end;
23、存储过程的创建
create or replace procedure 存储名称(参数 数据类型)
as(is) 声明部分
begin –参数在执行部分进行连接
执行部分
exception 异常部分
end ;
24、函数的创建
create or replace function 函数名称(参数) –in 或out 或inout
return 数据类型 设置返回值的数据类型,不指定长度;
is(as)
声明变量
begin
执行语句块
return 变量; –返回值
exception 异常处理
end;

25、系统函数信息(字符,数字,转换函数,条件判断函数(decode,case when))
1.字符函数
length(字段); –查看字段长度
trim(); –去空处理
instr(值,值中某个信息);–查看某个信息在值中出现的位置
substr(值,开始的位置,截取的长度) –显示截取到的值
ascll(值) –返回ascll码
concat(字符串1,字符串2) –连接字符串1和字符串2
lower(值) –转换成小写
upper(值) –转换成大写
replace(语句,旧内容,新内容); –从语句中查找进行替
注:–查看emp中每个员工名中 S出现的次数
2.数字函数
1)round(值,位数) –四舍五入
2)trunc(值,位数)–直接截取,不四舍五入
3)abs(值) –绝对值
4)ceil(值) –存在小数,整数+1
5)floor(值) –存在小数,去掉小数
6)mod(值,值) –求余
3.转换函数
–to_date(字段,’格式’);转换成标准日期格式
–to_char(字段,’格式’); 转换成字符类型
–to_number(字段,’格式’); 转换成数字类型
–sysdate –插入系统当前日期时使用;
日期之间相加减,加减的是天数,故而除以365天为年;
如:查询 where (sysdate-hiredate)/365>=30;显示日期满30年
4.条件判断:
decode(字段,条件1,值1,条件2,值2……X)
–当字段等于条件1时,返回值1,等于条件2时,返回值2 以此类推 ,当字段中数据没有等于条件时,则返回X
case when 条件 then ‘执行语句’ else‘条件都不满足时执行’
end 自定义字段名 –对范围进行匹配
如:select ename,sal, case when sal>3000 then ‘工资高’
when sal>2000 then ‘工资中等’
else ‘工资较低’ end 工资等级 from emp
5.数据类型:
标量数据类型 :数字型,字符型, 日期型和布尔型
属性数据类型 :%type:复制某个字段的类型;
%rowtype:复制表的全部类型;
自定义数据类型:type 变量名 record (可有多个数据类型);
binary_integer:介于-231 和 231 之间的整数。

26、分组函数
group by –把相同的数据化为一组进行统计
having 是对group by分组后进行筛选

select 5–from1–where2筛选–group by 3分组– having 4分组后筛选–order by 6最终排序

27、排序
select * from 表名 where 条件 order by 列名 –默认升序asc
select * from 表名 where 条件 order by 列名 desc –降序显示

select * from
(select rownum rn,别名1.* from
(select * from 表 order by 排序字段 desc) 别名1 )
where rn=第某行 –查询单独的某一行
排序查询→rownum 别名 查询 →行数查询

猜你喜欢

转载自blog.csdn.net/weixin_42800008/article/details/82049336