calliopsis

导航

2013年4月11日

Oracle笔记:视图

摘要: 视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。视图和表的区别:1) 表需要占用磁盘空间,视图不需要;2) 视图不能添加索引;3) 使用视图可以简化复杂查询(视图也可以联合查询);4) 视图有利于提高安全性,如:不同用户可以查看不同视图。创建视图 --创建一个视图,把emp表的sal<1000的雇员映射到该视图create view testView as select * from emp where sal<1000;--创 阅读全文

posted @ 2013-04-11 00:49 calliopsis 阅读(152) 评论(0) 推荐(0) 编辑

Oracle笔记:pl/sql例外处理

摘要: 例外的分类:1) 预定义例外:由pl/sql提供的系统例外,当pl/sql应用程序违反了oracle规定的限制时,则会隐含地触发一个内部例外。例:--编写一个块,可接收雇员的编号,并显示该雇员的姓名。declarev_ename emp.ename%type;beginselect ename into v_ename from emp where empno=&no;dbms_output.put_line('名字:'||v_ename);exceptionwhen no_data_found then dbms_output.put_line('输入的编号有 阅读全文

posted @ 2013-04-11 00:46 calliopsis 阅读(181) 评论(0) 推荐(0) 编辑

2013年4月7日

Oracle笔记:pl/sql控制结构

摘要: 1.条件分支语句: 1)if……then 例: --编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,则给该雇员工资增加10%create or replace procedure update_sal(sname varchar2) is v_sal emp.sal%type; begin select sal into v_sal from emp where ename=sname; if v_sal<2000 then update emp set sal=sal*1.1 where ename=sname; end if; end; 2)if……then……els 阅读全文

posted @ 2013-04-07 02:02 calliopsis 阅读(219) 评论(0) 推荐(0) 编辑

2013年4月6日

Oracle笔记:变量

摘要: 1.标量类型(scalar)例:--输入员工编号,显示雇员姓名、工资、个人所得税(税率为0.03)declarev_name emp.ename%type;v_sal emp.sal%type;v_tax number(7,2);c_taxrate number(3,2):=0.03;beginselect ename,sal into v_name,v_sal from emp where empno=&no;v_tax:=v_sal*c_taxrate;dbms_output.put_line('员工姓名:'||v_name||',工资:'||v_s 阅读全文

posted @ 2013-04-06 01:45 calliopsis 阅读(166) 评论(0) 推荐(0) 编辑

2013年4月3日

Oracle笔记:pl/sql过程、函数、包

摘要: pl/sql简介 pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展,是非常强大的数据库过程语言。 优点:1) 提高应该程序的运行性能;2) 模块化的设计思想);3) 减少网络传输量;4) 提高安全性。(可以把某些字段等封装在过程中) 缺点:移植性不好。pl/sql编写规范 1.注释: 单行注释:-- 多行注释:/*...*/ 2.标识符号命名规范 定义变量时,建议用v_作为前缀; 定义常量时,建议用c_作为前缀; 定义游标时,建议用_cursor作为后缀; 定义例外时,建议用e_作为前缀。 常用命令: 查看错误信息:show error;. 阅读全文

posted @ 2013-04-03 00:46 calliopsis 阅读(224) 评论(0) 推荐(0) 编辑

2013年4月1日

Oracle笔记:索引

摘要: 索引是用于加速数据存取的数据对象,合理地使用索引可以大大降低I/O次数,从而提高数据访问性能。 创建索引 1) 单列索引 create index 索引名 on 表名(列名); 2) 复合索引(应该把能够筛选出大量数据的查询条件放在后面) create index 索引名 on 表名(列名,列名); 索引使用原则: 1) 在大表中建立索引才有意义; 2) 在where子句或是连接条件中经常引用的列上建立索引; 3) 索引的层次不要超过4层。 索引的缺点: 1) 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引; 2) 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新. 阅读全文

posted @ 2013-04-01 18:04 calliopsis 阅读(94) 评论(0) 推荐(0) 编辑

Oracle笔记:维护数据的完整性

摘要: 维护数据的完整性用于确保数据库的数据遵从一定的商业和逻辑规则。在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现。这三种方法中,约束易于维护,且具有很好的性能,所以作为维护数据完整性的首选。 约束:用于确保数据库数据满足特定的商业规则。 oracle中,约束包括:1) not null 2) unique:不能重复,可以为null。 3) primary key:不能重复且不能为null。一张表最多只能有一个主键,可以有多个unique约束。 4)foreign key:用于定义主表和从表之间的关系。外键约束要定义在从表上,主表则必须有主键约束或uniqu. 阅读全文

posted @ 2013-04-01 00:23 calliopsis 阅读(137) 评论(0) 推荐(0) 编辑

2013年3月30日

oracle笔记:表空间

摘要: 表空间是数据库的逻辑组成部分,从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或多个数据文件组成。oracle中逻辑结构包括表空间、段、区和块。数据库由表空间构成,表空间由段构成,段由区构成,区是由oracle块构成,这样的结构可以提高数据库的效率。 数据库逻辑上由一个或多个表空间组成,表空间的作用: 1)控制数据库占用的磁盘空间。 2)可以将不同数据类型部署到不同的位置,这样有利于提高i/o的性能,同时利于备份和恢复等管理操作。 表空间相关命令: 建立表空间命令:create tablespace例:create tabespace data01 . 阅读全文

posted @ 2013-03-30 23:54 calliopsis 阅读(142) 评论(0) 推荐(0) 编辑

Oracle笔记:查询表相关

摘要: 显示当前用户拥有的所有表select table_name from user_tables;显示当前用户可以访问的所有表select table_name from all_tables;显示所有方案拥有的数据库表(必须是dba角色或是有select any table权限)select table_name from dba_tables;查询数据库的表空间select tablespace_name from dba_tablespaces; 阅读全文

posted @ 2013-03-30 00:35 calliopsis 阅读(155) 评论(0) 推荐(0) 编辑

2013年3月29日

Oracle笔记:逻辑备份与恢复

摘要: Oracle备份分为逻辑备份和物理备份。逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程。逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。在导入和导出的时候要到oracle的bin目录下(将bin目录的路径复制到控制台中后再使用exp命令)导出导出分为导出表、导出方案、导出数据库三种方式。1.导出表1) 导出表(导出其它方案的表需要dba的权限或是exp_full_database权限)exp userid=用户名/密码@实例名 tables=(表名) file=导出路径\导出文件名.dmp2) 导出表结构exp u 阅读全文

posted @ 2013-03-29 01:39 calliopsis 阅读(147) 评论(0) 推荐(0) 编辑