执行顺序:
select... from... where... group by... having ...order by...的执行顺序
(from)(where)(group by)(having)(select)(order by)
增、删、改、建 :
建:create table tabname(col1 , col2 ...);
增:insert into tabname values (values);
改:update tabname set colname = values , colname = values where colname = values;
(注意,修改多列值的时候,要用 逗号 隔开,不可以用 and 连接)
删:delete from tabname where condition ... delete tabname .
日期函数转换:
to_char 数值转换字符
to_number 字符转换数值
to_date 转换日期格式
非关联子查询: select ... from ...where ..in + (select语句
如:select id from account where ...);
关联子查询 : select ... from ...where ...exists + (select语句
如:select 1 from account where ...);
交叉连接 : cross join 每个记录相互连接得出匹配和不匹配问题
内连接 : (inner) join 解决匹配问题。
外连接 : (outer) join 解决不匹配问题。
拓展-> 左连接 右连接 : left join ; right join 区分匹配表、驱动表的关系
集合运算符:
union/ union all 并集 (集合不重复/集合存在重复)
intersect 交集 (取两个表共同存在的集合元素)
minus 差值 (一个表是另一个表的子集)
排名分页 :
rownum 解决对结果集进行编号排列
(rowid) 通常和 index 索引 相提
约束(constraint):
主键 : primary key 约束名可不写,不可为null和重复值
唯一键:unique key 理解联合唯一与联合主键的写法, 可为null值 外键 :references ...(表级约束)
列级约束:foreign key ... references ...
检查 :check 理解联合检查的写法
非空 :not null 只有列级约束的形式
事务: transaction
数据定义语言: Data Definition Language
数据操作语言: Data Manipulation Language
事务控制语言: Transaction Control Language
数据查询语言: Data Query Language
数据控制语言: Data Control Languageon
delete cascade 级联删除
on delete set null 删除值 置空
视图 :
创建: create or replace view view_name as/is + select 语句
视图恢复:alter view view_name compile
删除: drop view view_name
with check option 检查插入记录是否符合where条件
with read only 只能查询,不能做DML操作
索引 : create index ind_name on tabname(colname...).
对视图可以做 desc 和 select 操作 ,对索引则不可以。
序列号: create sequence seq_name
start with ...起始值 increment by ...递增规则
maxvalue ...循环最大值 minvalue ...循环最小值
cycle..循环 cache 20 数据缓冲数.
序列号循环的最后一个: select seq_name.currval from dual.
查询的下一个 : select seq_name.nextval from dual.
事务: ★★★★
四个特性:atomic(原子性) consitent(一致性) insulation(隔离性) duration(持久性)
理解 :commit 提交 rollback 回滚 savepoint 保留点
PL/SQL
打印格式: dbms_output.put_line(一个参数,类型为 字符);
set serveroutput on (在一个session里有效,重新连接需要重新设置)
数据库上的并发连接
统计server process (username) 的个数
1、 ps -ef|grep username|wc -l (在telnet/oracle环境下运行)
2、select count(*) from v$session where username is null. (在SQL环境下执行)
PL/SQL 书写格式★★★★
declare 变量声明
... ...
begin 执行部分
... ...
exception 异常处理
... ...
end; 结束块
理解 loop循环 if循环 while循环的写法
DDL语句 只能用本地动态SQL执行 execute immediate
DML语句 可静态写法和动态写法 (相对而言 静态写法效率更高)
游标 : cursor cur_name is ...
书写处理: declare(声明游标)... open(打开游标)... fetch(提取游标)... 判断部分... close(关闭游标)
关联记录; type type_name is record (... ...)
关联数组: type type_name is table of element_type<not null> index by <binary_integer / pls_integer / varchar2>
过程 procedure : 本身没有返回值 / 调用过程,一条语句
create or replace procedure XX...
函数 function : 本身有返回值 / 调用函数,写表达式
create or replace function XX... return values
包和包体 package / package body
create or replace package / package body XX...
异常部分: 预定义异常、非预定义异常 和 自定义异常
dbms_output.put_line(sqlcode) : 查询异常编号
dbms_output.put_line(sqlerrm) : 查询异常信息
在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。
答:一种分页方法