数据库理论归纳

执行顺序:

  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方法,还有是三层嵌套方法。
:一种分页方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值