我的oracle笔记--整理

本文介绍了Oracle数据库中的一些重要函数和操作,包括DECODE、NVL、MERGE INTO的用法,以及SQLERRM、SQLCODE的含义。此外,还讲解了数据字典、赋值、BETWEEN运算符、NULL值处理、模糊查询、ORDER BY排序、多表连接、DELETE与TRUNCATE的区别,事务处理,SQL类型和索引、视图、分布式数据库的概念。
摘要由CSDN通过智能技术生成

oracle中decode函数的用法:
1.decode(条件,值1,返回值1,值2,返回值2,值3,返回值3,值n,返回值n,缺省值)
该函数的含义:if 条件=值1 then return(翻译值1)
                elsif 条件=值2 then return (翻译值2)
                ...
                elsis 条件=值n  then return(翻译值n)
                else return (缺省值)
                end if
ORACLE中NVL的用法:
2.NVL(string1,repalce_with)  如果string1为null,则nvl函数返回repalce_with的值,否则返回string1的值

3.merge into 的用法:
作用:判断B表和A表是否满足ON中条件,如果满足则用B表去更新A表,如果不满足,则将B表数据插入A表但是有很多可选项
MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and [...]...) --判断B表和A表是否满足ON中条件
 
WHEN MATCHED THEN --如果满足则用B表去更新A表。。(MATCHED表示满足这个条件)
 
[UPDATE sql]
 
WHEN NOT MATCHED THEN --如果不满足
 
[INSERT sql]

4.sqlerrm:是oracle的一个函数,返回指定错误代码的错误信息。必须赋给一个变量,才能在sql中使用
5.sqlcode:常见于oracle编程中的数据库操作的返回码,其中ORA-1403和ORA-1405为最常见的返回码,返回0则表示操作完全正确。
                        ORA-01403:未找到数据
                        ORA-01405:读取的列值为NULL
                        
6.--oracle的数据字典:

select * from v$nls_parameters;   --v$nls_parameters是oracle的一张系统数据字典

alter system|session set NLS_DATE_FORMAT='yyyy-mm-dd';--修改日期格式,如果不加system(全局),那么更改只在当前会话中生效
7.oracle 中的赋值为  :=     --注意:等于是=,不是==
plsql中: a number :=0;
java中:int a = 0;
8. beteen...and :1.含有边界2.小值在前,大值在后
9.--null值 3. 如果集合中,含有null,不能使用not in; 但可以使用in
    select *  from emp where deptno in (10,20,null)
10.模糊查询:like '%',like '_';--%是任意长度的任意字符,_是一个长度的任意字符

模糊查询的特殊用法:
--查询名字中含有下划线的员工
SQL> select * from emp where ename like '%_%';--注意:这样是查不出来的,就把全部的查出来了
--转义字符escape
需要用escape转义:select *from emp where ename like '%\_%' escape '\';(注意:'\'只是声明转义字符的一般写法,当然也可以用其他代替)
11.
--SQL优化2. where解析顺序: 右-->  左
12.
--order by 排序,
--order by +列,表达式, 别名,序号(代表第几列的排序)
--order by 多个列排序
SQL> select * from emp order by deptno,sal;(先按照deptno升序,再按照相同的deptno中sal升序,但是降序只是离他最近的列)
 --Oracle中,null最大,所以降序的时候会把null值排在前面,这时候进行null值得排列:
 ---> select * from emp order by comm desc nulls last;
13.--a命令  append 
 a  desc(注意:a和desc之间有两个空格,意思是将降序desc追加给上面的sql后)
------------------------------------------------------------------------------------
14.多表连接
--没写left join 和right join的时候应该这么用:
SQL> 外连接:某些不成立的记录,通过外连接依然可以包含在最后的结果中
SQL> 左外连接:当where e.deptno=d.deptno不成立的时候,等号左边的表任然包含在最后的结果中
SQL>     写法:where e.deptno=d.deptno(+)
SQL> 右外连接:当where e.deptno=d.deptno不成立的时候,等号右边的表任然包含在最后的结果中
SQL>     写法: where e.deptno(+)=d.dept

----------------------------------------------------------------------------------------
SQL> delete和truncate的区别:
SQL> 1. delete逐条删除,truncate先摧毁表 再重建
SQL> 2. **** delete是DML(可以回滚)  truncate是DDL(不可以回滚)
SQL> 3. delete会产生碎片  truncate不会
SQL> 4. delete不会释放空间 truncate会
SQL> 5. delete可以闪回(flashback) truncate不可以
----------------------------------------------------------------------------------------
SQL> Oracle中事务的标志
SQL> 1. 起始标志: 事务中第一条DML语句
SQL> 2. 结束标志:提交   显式 commit
SQL>                     隐式 正常退出exit,DDL,DCL
SQL>              回滚   显式 rollback
SQL>                     隐式 非正常退出,掉电,宕机
SQL> 
SQL> */
------------------------------------------------------------------------------------------
SQL> SQL的类型
SQL> 1. DML(Data Manipulation Language 数据操作语言):insert update delete select
SQL> 2. DDL(Data Definition Language 数据定义语言): create/drop/alter/truncate table
SQL>                                                create/drop view,sequence,index,synonym(同义词)
SQL> 3. DCL(Data Control Langauge 数据控制语言): grant(授权) revoke(撤销权限)
------------------------------------------------------------------------------------------
索引:
1.是一种独立于表的模式对象,可以存储在与表不同的磁盘或者表空间中。
2.索引被破坏或者删除,不会对表产生影响,影响的只是查询速度,
3.索引一旦建立,oracle管理系统会对其自动维护,而且由oracle管理系统决定何时使用索引.用户不在查询语句中指定使用哪个索引
4.删除一个表时,所有基于该表的索引会被自动删除

索引:index(可以看做一本书的目录)
-->比如:查询部门号为10的员工;select * from emp where deptno='10';
首先,按照deptno创建目录(也就是索引):
create index myindex(是索引名) 
on emp(deptno);
它会建立一张索引表,(rowid),按照deptno排列好的。
在多个列创建索引:
create index myindex(是索引名) 
on emp(deptno,job);
1.B树索引:适合insert、update
2.位图索引:适合select(数据量大的数仓使用较多)
----------------------------------------------------------------------------------------------
视图:

----------------------------------------------------------------------------------------------
分布式数据库:
1.物理上被存放在网络上的多个节点上,逻辑上十一号个数据库(整体)。
独立性:不关心如何存储和分割的,只关心数据本身

----------------------------------------------------------------------------------------------
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值