Oralce梳理---爱了嘛

简介: Oralce梳理---爱了嘛

--一、入门

开服务:OracleServiceOrcl  ...listener

数据库文件:数据文件(.dbf) 日志文件(.log) 控制文件(.ctl)

数据类型:数值型(number(p,s)) 字符型(varchar2 超过4000个字节 用long) 日期型(date)

创建表空间:create tablespace 名字 datafile '' size 50M

创建用户:create user 用户名 identified by 密码
授权/撤销:grant...to/revoke ... from

--二、数据管理

Oracle的伪列:rowid rownum

--求薪水前三的员工信息 top×  先排序 后编号

select b.*,rownum from(

      select * from emp order by sal desc

) b where rownum<4

--分页代码 把伪列-->明列(取个别名)

select * from(

      select a.*,rownum as rid from emp a

) b where b.rid between ? and ?

--万能公式 pageIndex:第几页   pageSize:每页多少条数据

--(pageIndex-1)*pageSize+1------pageIndex*pageSize

Oracle的伪表:dual 为了防止sql语句报错

--Oracle跟sqlserver的区别

拼接:||

nvl(a,b):a为空就用b替代

取别名:列取别名(空格、as) 表取别名(空格)

多行插入:

insert into 表名(列名,列名)

select 数据,数据 from dual

union

select 数据,数据 from dual

去重复:distinct
判空:is null/is not null

复制表:create table 表名 as select * from 要复制的表

利用现有表插入数据:insert into 表名(列名) select 列名 from 表名

--三、内置函数

1.转换:to_char/to_number/to_date  yyyy-mm-dd hh24:mi:ss

2.日期:sysdate/systimestamp/add_months/months_between/last_day/next_day/extract(xx from date)/round/trunc

3.字符串:length/substr/replace/concat/decode/ltrim/rtrim/upper/lower/initcap/ascii/chr/instr/lpad/rpad

4.数学:abs() sqrt() mod() power() ceil() floor() round() trunc() sign()

--四、PL/SQL编程&函数

--PL/SQL编程的语法

declare

--声明部分 变量名 数据类型;

begin

 --可执行部分 不可省略

 属性类型:表名.列名%type   表名%rowtype

 赋值: := /  select ...into

 打印:dbms_output.put_line();

 循环:<<名字>>loop..exit 名字 when 条件.end loop;
       while(条件) loop .....end loop;
       for 变量 in 值..值 loop....end loop;
 条件:if(条件) then elsif(条件) then .. else  end if;

       case....end case; &:输入器

 --异常处理部分

 exception when 异常 then 怎么处理

 系统自带:too_many_rows / no_data_found

 自定义异常:声明 抛出raise 处理

end;

--函数的语法

--参数和返回都不能带长度 必须要有返回

create or replace function 函数名(参数)

return 你要返回的数据类型

is|as

begin

 return 对应类型的数据;

end;

--函数如何调用?

select 函数名(参数) from dual;

begin

 dbms_output.put_line(函数名(参数));

end;

--五、数据库对象

同义词:synonym 给现有的对象取个别名

create synonym 别名 for 谁.对象

序列:

create sequence 名字;--默认序列 递增1 从1开始

[start with 1]

[increment by 2]

[maxvalue 100]

[minvalue 1]

伪列:currval[当前值]/nextval[下一个值]

视图:是一张虚拟的表

create view 视图名 as 一段查询的sql语句 with read only;

优点:方便使用者 提高了安全性

索引:编排数据的一种方式 index

create index 索引名 on 表(列);

优点:提高了查询效率

适合创建在用户查询较为频繁的列

不适合创建在值少、不怎么查询的列、数据就很少

--六、触发器

概念:是一种特殊的存储过程(只能自动执行 由特定事件触发)

2223: 2个时间点(after/before)

     2个临时表(:new/:old)

     2种模式(行级for each row/语句级)

     3种操作(insert/delete/update)

注意:临时表的字段一定是跟触发器所在的表或视图一致的

语法:

create or replace trigger 触发器名字

after/before 操作(or)

on 表名/视图名

for each row--行级

PL/SQL编程

级联触发:会用且慎用

事务:rollback[回滚];commit[提交];savepoint[保存点];

drop table stumarks;


相关文章
|
4月前
|
Oracle 关系型数据库 数据库
oracle 重启步骤及踩坑经验
oracle 重启步骤及踩坑经验
236 0
|
Oracle 安全 关系型数据库
Oracle学习(十四):管理用户安全
本文主要讲Oracle管理用户安全
115 0
Oracle学习(十四):管理用户安全
|
SQL 容灾 Java
ORM规约变更经典案例---mysql军规
  先介绍一下《MySQL数据库开发的三十六条军规》,这里只介绍核心的,具体内容大家可以自行百度,这是从底层开发人员到管理者必须知道规范。出自58赶集。 写在前面的话:   总是在灾难发生后,才想起容灾的主要性;   总是在吃过亏后,才记得有人提醒过。
ORM规约变更经典案例---mysql军规
|
运维 Oracle 关系型数据库
实战篇:Oracle DataGuard 出现 GAP 修复完整步骤
实战篇:Oracle DataGuard 出现 GAP 修复完整步骤
实战篇:Oracle DataGuard 出现 GAP 修复完整步骤
|
SQL Oracle 关系型数据库
【体系结构】有关Oracle SCN知识点的整理--补充内容
【体系结构】有关Oracle SCN知识点的整理--补充内容   小麦苗自己整理的内容参考:【体系结构】有关Oracle SCN知识点的整理  http://blog.itpub.net/26736162/viewspace-2126407/ DBA入门之认识Oracle SCN(System Change Number) 1. SCN的定义 SCN(System Change Number),也就是通常所说的系统改变号,是数据库中非常重要的一个数据结构。
2336 0