【Oracle】知识点小结

版权声明:高性能MySQL是第3版,注意mysql版本;很多博客都参考或者直接转载自网络,如果不方便被转载,看到请与我联系 https://blog.csdn.net/ma15732625261/article/details/82154597

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

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

    数值函数

    截取:

    求余: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 回滚点

事务:原子 隔离 持久 一致  脏读 虚读  不可重复读

  •    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

19 、异常

too_many_rows:查询出多行记录,赋值给rowtype记录的一行数据变量

no_data_found:没有找到数据

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

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

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

猜你喜欢

转载自blog.csdn.net/ma15732625261/article/details/82154597