1. oracle-10g学习笔记一:
1.1. oracle实例化
- 将oracle的orcl文件读入内存就叫实例化。
- 将多份重复的orcl文件读入内存就叫oracle的集群
1.2. oracle的集群好处-RAC(real application cluster)
- oracle的集群有两个好处
- 负载均衡
- 当大量用户访问oracle时就会对实例的oracle产生很大压力,由于oracle大量集群,通过负载均衡的方法减小了压力
- 失败迁移
- 当用户访问失败时由于有其他的oracle,会将操作命令转移到其他oracle实例。
1.3. oracle数据文件
- oracle数据文件
- oracle控制文件
- 日志文件
- 将上面三种文件读入内存就是数据库的一个实例
1.4. oracle两阶段提交
- 用户提交oracle之后,会先在oracle实例中存储,当commit时,再由oracle的SGA模块写入硬盘中的数据库。

1.5. oracle命令
- 连接数据库
sqlplus scott/tiger
- 退出oracle
exit
- win10平台连接虚拟机上的oracle
- 需要安装oracleinstanceClient客户端,这是oracle实例化客户端。
sqlplus scott/tiger@xxx.xxx.xxx.xxx:1521/orcl
1.6. oracle基本命令
- 查询当前用户
show user
- 查看当前用户下的表
show * from tab;
- 查看表的结构–和mysql一样
desc tabname;
- 清屏
host cls -window系统
host clear -linux系统
- 查看行宽
- col是column简写
- for是format简写
show linesize
set linesize 120
col xxx字段名 for a8
col xxxx字段名 for 9999
/
- sql语句出错如何修改
- 指定出错的行,例如2行,就按2
- 用c修改出错语句例如修改select * form emp;
- 1
- / 执行。
- sql语句null原则
- 包含null的表达式都为null
- null永远!=null
- 如果集合中有null ,就不能使用not in.
- 如果null为条件,不能使用=来判断,而是用is
- 空值是无效的,未指定的,未知的或不可预知的。
- 空值不是空值或者0
select * from emp where comm is null;
- 设置别名,有三种方式
- 一种带as+引号别名
- 一种是直接引号别名
- 一种直接别名:不可以有空格
- 首先先edit或者ed,会将上一句写入一个.buf的文件中。ed表示edit

- distinct关键字,去掉重复的。
- distinct 作用于后面所有的列,如果有多个列,只有在两条记录中查找的列完全相同才会去掉。
select distinct deptno from emp;
- oracle中的连接符关键字
- || ,mysql中是concat()
- 类似于java中的字符串拼接+
- 字符串日期用单引号,双引号用于别名。
select concat('hello',' world') from emp
select 'hello'||' world' from emp;
select ename||'的薪水是'||sal 信息 from emp;

- sql命令isqlplus和sqlplus命令的区别

- spool命令
- 是oracle提供的录屏功能。开启spool D:\xxx.txt
- 关闭spool off
1.7. oracle管理员账户
- 用户名:sys
- 密码:安装时的口令
1.8. oracle过滤语句
- 使用where语句,不过where后面的字符串属于单引号包裹,并且大小写敏感。
- 日期和字符串是一样的都在单引号里面。
1.9. oracle的日期格式与修改
- 默认日期格式
- oracle的日期格式的修改
select * from v$nls_parameters;
alter session set NLS_DATE_FORMAT='yyyy-mm-dd';
- oracle的运算符
- =等于不是==
- >大于
- <小于
- >=大于等于
- <>不等于或者!=
- :=赋值使用
- 比较运算符的文字形式
- between…and…在两个值之间,小值在前,大值在后。
- in(set)等于列表中的一个,反过来not in
- like模糊查询
- is null 空值
1.10. like组成的模糊查询
- like组成的模糊查询,有两个标识符,一个是%表示什么都行。
- 另一个是占位符_表示占一个位。
- 如果要获取_的原本含义,就要使用转义字符
- 例如获取姓名中含有_的所有名字,就要先声明一个转义字符
- 声明转义字符用escape ’ '关键字。
- oracle自动开启事务,与mysql不同。
select * from emp where ename like '%\_%' escape '\';
1.11. oracle语句优化
- select * 最好写成select的字段。
- where语句中的解析顺序是从右往左。例如where a and b 最好将假的放在右边。
- 如果使用or,并或,最好将真的放在右边。
1.12. 逻辑运算符
- and 逻辑并,两个条件都要符合才行
- or 逻辑或,只要一个条件符合就行。
- not 逻辑否,两个条件都不符合才行。
1.13. 升序和降序
- 默认升序,
- order by xxx desc ;降序排列。
- 可以写字段或者用序号代替。
- 如果order by后面有两个字段,会先排序第一个,后排序第二个,desc只作用域离他最近的一个。
- 空值在升序中放在最后面,降序中放在最上面。可以设置将空值放在最后。在oracle数据库中空值最大。
select empo ename sal sal*12 年薪 from emp order by 4 desc;
select empo ename sal sal*12 年薪 from emp order by 年薪 desc;
select * from emp order by comm desc nulls last;/* 将所有空值放在最后*/