oracle系列--基础理论
一、数据库系统架构:
外层(External Level)外层是提供给用户直接操作使用的
概念层(Conceptual Level)用来描述数据库中存放数据的类型、表之间的关系、高级的数据模型、用户的权限
内层(Internal Level)主要用来描述实际的数据库存储结构
映射(Mapping)提供需求和转换所需数据的过程
数据独立性(Data Independence):当数据有所变动时,不必改变其他的数据结构
二、设计数据库的范式
第一范式
第二范式
第三范式
BCNF范式
三、数据库管理
system
ora123
startup open orcl --权限不足
conn sys as sysdba
ora123 --已连接
startup open orcl --无法启动
shutdown immediate
startup open orcl
扩展:以nomount方式打开数据库
以mount方式装载数据库
以parallel模式打开数据库
以exclusive模式打开数据库
三、关闭数据库4种方式:(请不要在oracle11g和oracle10g上测试shutdown ,shutdown normal命令,)
shutdown normal 申请进入的进程拒绝,正在运行的进程正常运行
shutdown immediate 比如有人正在买盗版光碟,此时工商执法人员来了,卖盗版光碟的小贩赶紧将钱退给此人,之后逃跑
shutdown abort 比如商场着火了,已经没有时间做任何事情了,得赶紧逃命了
shutdown transactional 申请进入的进程拒绝,正在运行但是不出来事务的杀死,正在处理事务的正常运行
四、设置数据库
五、建立数据库
约束条件的操作:启动、关闭、删除、验证
视图(View):
优点:它能限制数据的存取
它能让复杂的查询简单化
它为项目用户及应用程序提供数据的独立性
它能让使用者根据自己的特定标准存取数据
如果建立的是一个简单视图,则可以直接指向DML语法
如果建立的是一个复杂视图,则在执行DML时,有以下限制:
1、不能添加数据
2、不能修改数据
3、不能删除数据
序列(Sequence)
事务处理:
事务本身具有4个ACID特征:原子性,一致性,隔离性或者独立性,持久性
事务只能针对DML操作语言实现,对DDL操作不起任何作用
锁:--行级锁定(记录锁定) 隐式地实现记录的锁定 被称为排他锁
--表级锁定 与行级锁定的自动锁定相比,该锁定需要用户明确地使用LOCK TABLE语句手工锁定
表级锁定又分为:行共享锁 ROW SHARE
行排他锁 ROW EXCLUSIVE
共享锁 SHARE
共享排它锁
排它锁
解除锁定:ALTER SYSTEM KILL SESSION ‘SID,SERIAL#’
SID和SERIAL#需要通过管理员利用v$locked_object, v$session两个数据字典查询得到
替代变量
ACCEPT命令只能在脚本文件中使用:先建立一个脚本文件,而后使用" @ "命令执行脚本;使用ACCEPT命令时替代变量不区分大小写
数据字典:静态数据字典
动态数据字典
闪回技术(FlashBack):是oracle10g之后提供的一种新的数据保障措施,类似于windows操作系统的回收站功能
FLASHBACK TABLE 表名称 TO BEFORE DROP;
如果要彻底删除表,则执行语句:DROP TABLE 表名称 PURGE;
清空回收站:PURGE recyclebin;
索引:
B树索引(基于二叉树排序)
降序索引
位图索引:如果某一列上的数据都属于低基数列的时候使用
CREATE BITMAP INDEX emp_deptno_ind ON emp(deptno); 在deptno字段上设置位图索引
函数索引
CREATE INDEX emp_ename_ind ON emp(LOWER(ename));
同义词:CREATE [PUBLIC] SYNONYM myemp for aa.emp;
Oracle 伪列:
NEXTVAL
CURRVAL
SYSDATE
SYSTIMESTAMP
ROWNUM 除了简单查询外,ROWNUM也同样用于复杂查询的操作
ROWID oracle默认为每条记录分配一个唯一的地址编号,这个编号就是通过ROWID来表示的,所有的数据都利用ROWID进行数据定位
oracle系列--基础理论的更多相关文章
- Oracle系列:记录Record
Oracle系列:记录Record 分类: [Oracle] (15) 版权声明:本文为博主原创文章,未经博主允许不得转载. Oracle系列:记录(Record) 一,什么是记录(Record) ...
- 足球和oracle系列(3):oracle过程排名,世界杯第二回合战罢到来!
足球与oracle系列(3):oracle进程排名.世界杯次回合即将战罢! 声明: 这不是技术文档,既然学来几招oracle简单招式.就忍不了在人前卖弄几下.纯为茶余饭后与数朋库友的插科 ...
- .Net程序员学用Oracle系列(1):导航目录
本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇 ...
- .Net程序员学用Oracle系列(2):准备测试环境
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.创建说明 1.1.为什么要创建的测试环境? 1.2.了解 Oracle 实例的默认用户 2.创建环境 2.1.创建基本环境 ...
- .Net程序员学用Oracle系列(6):表、字段、注释、约束、索引
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.表 1.1.创建表 1.2.修改表 & 删除表 2.字段 2.1.添加字段 2.2.修改字段 & 删除字段 ...
- .Net程序员学用Oracle系列(7):视图、函数、过程、包
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 ...
- .Net程序员学用Oracle系列(8):触发器、任务、序列、连接
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_ ...
- .Net程序员学用Oracle系列(9):系统函数(上)
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期 ...
- .Net程序员学用Oracle系列(10):系统函数(下)
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.近似值函数 2. ...
随机推荐
- Windows下MongoDB安装及创建用户名和密码
下载MongoDB的安装文件https://www.mongodb.com/download-center#community,选择合适的版本(注:本人选择的是3.2.6) 下载完MongoDB.ms ...
- Chapter 1 First Sight——12
Breakfast with Charlie was a quiet event. 和查理斯吃早饭时一件安静的事情 He wished me good luck at school. I thanke ...
- php socket客户端及服务器端应用实例
经常有朋友会对php的socket应用充满疑惑,本文就以实例代码作一讲解,希望能对初学php的朋友起到一点帮助作用 具体代码如下: 1.服务器端代码: <?php class SocketSer ...
- GIT问题,error:src refspec master does not match any
将本地GIT版本库PUSH到一个GITHUB上一个空的版本库时可能会出现如下错误error:src refspec master does not match any原因: 本地版本库为空, 空目录不 ...
- android studio没有浮现函数用法和属性说明?
最近转用android studio,在使用eclipse和android studio时原本在鼠标停留处或智能提示能浮现文档相关内容,但我的是一直显示Fetching Documentation…… ...
- 草,又学了个新命令,nc传文件。
nc -l 5222 > aa nc 192.168.0.48 5222 < a http://www.linuxso.com/command/nc.html
- conflicting types for xxxx错误 (转)
pretty_print.c:31: error: conflicting types for ‘vmi_print_hex’ libvmi.h:749: note: previous declara ...
- 用javascript实现完全的类(private、pubulic等)
js是面向对象的,但是其不像java一样完全的面向对象,但是利用其灵活性,我们可以使用它进行高度的模拟,来看下面的代码: function Student(name){ this.name=name; ...
- hdu1915
对于图的东西总是一筹莫展,没办法,还是翻出以前的基础题来看看,然后慢慢分析吧.路漫漫其修远兮,吾将上下而求索…… void bfs(int x,int y){ for(int k=0;k<8;k ...
- EXCEL读写NPOI--导出功能
第一步:将NPOI中的一下三个文件复制到项目中