数据库对象
来源:互联网 发布:java爬虫爬取视频 编辑:程序博客网 时间:2024/05/21 09:00
表(Table)
创建表
1.create table test(
deptno NUMBER(2) ...);
2.create table emp20
as
select ename,sal*1.2newsal
from emp wheredeptno = 20;
复制表结构
create table copy_emp asselect * from emp where 1 = 2;
视图
1.创建物化视图
create materialized view emp20 as
select empno,ename, job, mgr, sal,deptno
from emp wheredeptno = 20;
2.创建物化视图(指定刷新时间)
create materialized viewemp20_copy
refresh force on demand start withsysdate next sysdate+1
as
select empno,ename, job, mgr, sal,deptno
from emp
where deptno = 20;
3.说明:
我们一般使用子查询创建视图,要注意子查询中不可以使用Order By 子句
我们在SQL语句中使用视图时,Oracle实际上都使用视图创建时的sql文对基表进行查询
而物化视图则则和不同视图不同,它有自己的存储空间,可以预先做好查询,把查询结果缓存起来,
这样在SQL语句中使用它的时候就可以避免查询基表,有利于提高性能。
物化视图是不让更新数据的。
4.
我们可以对满足一定条件的视图进行更新,删除,插入操作
View 定义中含有以下元素时不能对视图数据进行操作
Group 函数
Group By 子句
Distinct 关键字
Rownum伪列
由表达式生成的列(追加,更新)
视图关联的表中存在 Not Null 约束的列不在视图的 SELECT 子句中(追加)
可以使用 With read only关键字来禁止修改视图的数据
可以使用 With check option关键字来限制能够更新到视图的数据必须符合视图的检索条件
ex:
create or replace view emp20 as select empno, sal fromemp where deptno = 20 andsal < 3000with read only;
create or replace view emp20 as select empno, sal,deptno from empwheredeptno = 20 andsal < 3000 with check option;
约束(Constraints)
声明外键约束时可以指定一个称作级联的属性,可以定义在主表中的参照列的
数据被变更时,子表的动作
默认情况下,主表的数据如果被子表参照着,是不允许删除的
ON DELETE CASCADE
当主表中对象列的数据被删除时,自动删除子表中的记录
ON DELETE SET NULL
最后一种check约束,可以定义某个列的数据必须满足的条件,
每个列都可以有多个check约束
可以使用和 Where 条件中一样的结构,除了:
参照伪列(如 Rownum)
使用 SYSDATE,UID,USER,USERENV函数
参照别的行的值
索引(Index)
序列(Sequence)
按照一定规则自动增加的数字序列
不能被 Rollback,可在多个用户间共享
修改序列时,不可以修改 Start With项,不影响已经生成的数字
其他数据库对象
同义词:创建数据库对象的一个别名,用于简化对象的访问
触发器:特定事件发生时Oracle自动执行的代码块,用户不可以直接调用
DataBase Link:用于创建从一个数据库到另外一个数据库的链接
存储过程:存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
函数:也是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,Oracle提供了很多内置的函数可供调用,这个后面会提到。
除了内置函数,我们还可以自定义函数。
函数和存储过程主要的区别是,函数必须作为某个表达式的一部分来调用,不能单独调用
而存储过程可以作为一条语句直接调用
类型:Oracle中的类型有很多,比如Number,char,这些都是内置类型,我们还可以自己定义类型
包:包将逻辑上相关的存储过程,函数,类型组合成一个更大的单位。
包有两个部分:包说明(specification)和包体(body)。说明部分是为应用程序的接口,它声明包里面含有的类型、常量、可用的子程序等等。Body部分实现说明。
- 数据库对象
- 数据库对象
- 数据库对象
- 数据库对象
- 数据库对象
- 数据库对象
- 数据库对象
- 数据库对象
- 数据库对象
- 对象数据库 VS 关系数据库
- 【数据库】oracle数据库对象---->视图
- 【数据库】Oracle数据库----对象视图
- JDBC--数据库对象
- 数据库对象命名规范
- 1.面向对象数据库
- 数据库访问对象失效
- SQL Server 数据库对象
- 数据库 BLOB对象
- 文件读写版 电子词典
- 菜鸟学Java(三)——JSTL标签之核心标签
- js整数字符串转换为金额类型数据
- Linux查看程序端口占用情况
- ubuntu下文件转码工具enca
- 数据库对象
- 第一个Ant脚本
- 使用FilenameFilter
- centos 安装 oracle 11g R2 开机启动配置
- in-app-billing for google play (google应用内付费 v3)
- Android Studio加载第三方jar包 + 中文乱码
- winform拖动窗体
- 查找附近点--Geohash方案讨论
- linux操作系统实验四--打造自己的Linux发行版(续)