欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Oracle】知识点小结

程序员文章站 2022-06-13 20:22:44
...

数据库  数据库实例 表空间(逻辑单位)   数据文件(物理单位)

oracle库只有一个实例orcl,和MySQL

      mysql:创建库、创建表;多数据库

      oracle:创建表空间,创建用户,用户建表,多用户

SQL:分类及每类常见操作符

  • DDL:数据定义语言 create alter drop truncate
  • DML:数据操作语言,insert update delete
  • DCL:数据控制语言 安全 授权 grant revoke
  • DQL:数据查询语言 select from子句 where 子句

 


 

查询语句结构:

select  列名 * from  表名  where条件   group by分组条件  having过滤  order by排序

 

oracle:

1、dual:虚表,伪表,补齐语法结构 select 1+1 from dual;

2、别名查询 :列名 别名(as关键字可省略,别名中不能特殊字符  关键字加“”)

3、nvl(num ,0)如果参数1为null则返回2 ,null不确定的值 不可预知的内容 不可做四则

 

4、拼接:“”别名时使用,‘’使用的值:是字符

      || 连接符, select ‘姓名:’||ename from emp; 

      concat('姓名:',ename) from emp; 列名是concat(‘姓名:’,ename)值是姓名:*

 

5、where条件查询:特殊字符  后面用escape‘’转义

   关系运算符: >   >=   <  <=    !=  <> 

  逻辑运算符:and  or  not    其他运算符:like  between  in(set)    is null   is not null

6、排序:order by   asc   desc 注意null 最后加: nulls first | last

 

7、函数:要有返回值,单行函数,多行函数:对某列all处理max  min count  sum avg

    数值函数【Oracle】知识点小结

    截取:【Oracle】知识点小结

    求余:mod mod(9,3)0 ; mode(9,4)1

    substr('sbgho',0,3)sbg ; substr('shogn',1,3)sho

    长度:length('abggg')   去空格trim(‘’)替换字符replace('hello','l','s')

 

9.日期函数:今天select sysdate from dual;   3月后 add_months(sysdate,3)  3天后sysdate+3

 

10、执行顺序:from where group by  having   select order by  

      where后不能接聚合函数,可接单行函数;having在group by后执行,可接聚合函数

 

11、分组:select 分组条件,分组后的操作 from 表名  group by 分组条件 having 条件过滤

 

12 exists,数据量大时高效

 

13 集合运算:列类型一致 按照顺序写 列的数量要一致,如果不足用空值或指定相同类型的具体值

 

14 五大约束:

  • 列的约束:
  • 主键约束:primary key 不能为空,唯一
  • 非空:not null
  • 唯一:unique
  • 检查:check(条件)  mysql可写但被忽略 check('男','女','你猜')
  • 外键

 

15 回滚点

【Oracle】知识点小结事务:原子 隔离 持久 一致  脏读 虚读  不可重复读

  •    MySQL隔离:read uncommitted ,read committed,repeatable read,serialiazable
  • orcale隔离:read committed,seriallizable , read only

提交commit,保持点/回滚点savepoint pointname,回滚rollback

 

16 视图: 对查询结果的封装 屏蔽表中细节

create or replace view view_test as select ename,job,mgr from emp with read only;
//尽量不要通过视图修改数据

 

17、PLSQL procedure language过程语言,Oracle对SQL的一个扩展

    可像Java中一样写 if else if 编写循环for while

declare
    声明变量
    变量名 变量类型
    变量名 变量类型:= 初始值
    vrow emp%rowtype;---声明记录型变量
begin 
    业务逻辑
end;
dbms_output.put_line()相当于Java中的sout

 

业务逻辑可以是:

while 条件 loop

 

end loop;

for 变量 in 起始值 ……结束值 loop

 

end loop

loop 

  exit  when 条件

end  loop 

 

18、游标:操作查询结果集,相当于JDBC中的resultSet

【Oracle】知识点小结

 

 

 

19 、异常

【Oracle】知识点小结too_many_rows:查询出多行记录,赋值给rowtype记录的一行数据变量

no_data_found:没有找到数据

 

 

 

 

【Oracle】知识点小结

 

20、存储过程:封装在服务器上一段已经编译好的plsql代码片段

 

补充:
cascade constraint:强制删除表:先删除外键关联表的外键约束,再删除自己

 

 当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete,truncate不支持事务