以前学习Oracle数据库的笔记加个人的一些经验总结,分享出来。
如果有不足之处还请多多指正。
-----------------------------------------------------------------------------
数据库组成:
物理结构(数据文件,控制文件,日志文件)
逻辑结构(表空间,段,区,数据块)
数据库操作
创建表空间:create tablespace tablespace_name
创建用户:create user user_name
Identified by password
数据库权限
系统权限/用户权限
控制数据库基本存取机制/对表中数据的存取
Grant/revoke授予/撤销权限
事务的ACID特性
原子性:一个事务所包括的所有操作都是不可分割的工作单元
一致性:事务必须保证数据库的状态保持一致,事务开始的状态和结束的状态必须保持一致
隔离性:多个事务可以独立运行,不会彼此产生影响
持久性:一旦事务提交之后,数据的变化会被永久的保存下来,即使数据库崩溃也是如此
游标:将从数据库查询出来的数据以临时表的形式存在内存中
声明 打开 提取 关闭
Cursor cursor_name is select..声明游标
Open cursor_name 打开游标
Fecth cursor_name into %rowtype 提取游标一般用loop循环
Close cursor_name 关闭游标 exit when cursor_name%rowtype
序列:计数器,产生一系列唯一数字的数据库对象,不占空间,可作为主键
Create sequence sequence_name
Increment by n 步数,每次增加n
Start with n 从n开始计数
Maxval n 最大为 n
Cycle 循环
Cache 在内存中产生序列的个数
用法:nextval 获取序列的下一个值
伪列:显示在表中的列,但不实际存在表中
rowid:存储表中行的物理地址,也可以作为表中的唯一标识
rownum:表示表中的第几行,可以限制表查询的行数
分页显示:
Select * from(---最外层显示最小下限
Select rownum r,e.* from --第二层显示最大上限
(Select * from emp) e--最内层查询要显示的全部数据
Where rownum <= (3*2))--最大上限 页数乘以行数
Where r>=((3-1)*2)---最小下限 页数减一乘以行数
-----来自一个不想写代码的程序员