第十一章 Oracle体系结构(DBA)
数据库 Database
一系列物理文件(数据文件、控制文件、联机日志等)的集合或与之对应的逻辑结构(表空间,段等)被称为数据库
物理存储结构
数据文件、重做日志文件、控制文件
Desc
v$logfile
Select
member from v$logfile;
v$controlfile
v$datafile
逻辑存储结构
表空间、段、区、块
数据库实例 Database
Instance
Oracle内存结构和后台进程被称为数据库的实例
Oracle实时应用集群
RAC,Real Application Clusters
数据库服务名 Database
Service_Name
网络服务名 Net Service
Name
监听器 Monitor
第十二章 DDL数据定义语言
创建表
Create
table tblName (
Sid number(10),
Sname varchar2(20)
)
tablespace tt;
说明:tablespace不是必须的。默认不写,则创建在登录用户所在的表空间上。
使用子查询创建表
Create
table tblName as select * from emp;
Create
table tblName as select * from emp where 1=2;
--复制表结构
字段操作
Alter
table student add age number(5); --增加字段
Alter
table student modify age number(10) ; --修改字段
Alter
table student rename column col1 to col2; --修改字段名称
Alter
table student drop column age; --删除字段
清空表中数据
Truncate
table student; --截断表清空数据,与”delete
from table where 1=1;”不同。
正常情况下删除数据,如果发现删除错了,则可以通过rollback回滚。如果使用了截断表(http://blog.csdn.net/kiqiNie/article/details/8196448),则表示所有的数据不可恢复了。所以数据很快(比delete语句要快)。
删除表
Drop
table tblName;
重命名表
Rename
tbl1 to tbl2;
第十三章 DML 数据操作语言
Insert语句
Insert into
tblName (columns…) values (values…);
insert
into dept1(id, name) select deptno,dname from dept; --表间数据拷贝
update语句
update
tblName set col=value where id=idVal;
--更新id为idval的col列的值为value
update
tblName set (cols) = (sub select ) where id=idVal; --更新id为idval的cols为子查询的结果,子查询必须返回一条记录。如果子查询返回的是空,则cols字段的值也会更新成NULL.
delete语句
delete
from tblName;
delete
from tblName where id=idVal;
merge语句(http://blog.csdn.net/launch_225/article/details/7833907)
merge的功能是可以根据一张表的数据去更新另一张表。
Merge
into tbl1 --更新应用到tbl1
Using tbl2 --条件表tbl2
On(tbl1.col1 = tbl2.col2) --关联条件
When matched then --匹配的时候执行的语句
Insert/update/delete
statement.
When not matched then --不匹配的时候执行的语句
Insert/update/delete
statement.
第十四章 Constraint约束
约束就是指对插入数据的各种限制,例如:人员的姓名不能为空,人的年龄只能在0~150岁之间,约束可以对数据库中的数据进行保护。
约束可以在建表的时候直接声明,也可以为已建好的表添加约束。
NOT NULL
非空约束
Create
table person(
Pid
number,
Name
varchar(30) NOT NULL
)
PRIMARY
KEY 主键约束
不能重复,不能为空。例如身份证号。
Pid
number PRIMARY KEY
UNIQUE 唯一约束
值不能重复(空值除外),例如电话号码。
Tel
varchar(50) UNIQUE
CHECK 条件约束
插入的数据必须满足某些条件,例如年龄。
Age
number check(age between 0 and 150)
Foreign
key 外键
引用其他表中的主键,插入的数据必须在其他表中存在。如人所在的部门。
DeptNo
number REFERENCES dept(deptno) ON DELETE CASEDE
--建立约束:emp_deptno_fk,与dept中的deptno为主-外键关系
--CONSTRAINT
emp_deptno_fk FOREIGN KEY(deptno) REFERENCES dept(deptno)
“ON
DELETE CASEDE”—删除主键记录时,同时删除外键的所有记录
“ON
DELETE SET NULL”—删除主键记录时,将所有外键的记录的字段值更改为NULL
(http://blog.csdn.net/zb0567/article/details/8071083)
Alter
table tbl ADD CONSTRAINT emp_eid_pk PRIMARY KEY(eid);--主键
Alter
table tbl ADD CONSTRAINT emp_tel_uk UNIQUE(tel);--唯一
Alter
table tbl ADD CONSTRAINT emp_age_ck CHECK(age BETWEEN 0 AND 150);--检查
Alter
table tbl ADD CONSTRAINT emp_dept_deptno_fk FOREIGN KEY(deptno) REFERENCES
dept(deptno) ON DELETE CASCADE;--外键
约束操作
Alter
table emp drop CONSTRAINT emp_eid_pk; --通过约束名删除
Alter
table emp drop unique(tel); --直接删除约束
Alter
table emp enable CONSTRAINT emp_dept_deptno_fk; --启用约束
Alter
table emp disable CONSTRAINT emp_dept_deptno_fk; --禁用约束
第十五章 VIEW 视图
视图:是一个封装了各种复杂查询的语句,就称为视图。视图可以屏蔽一些表结构,只将用户需要的一些信息返回给用户,或者将复杂的查询语句以创建为视图,简化用户操作的同时,提升数据库安全性。
创建视图
CREATE
VIEW viewName(colList) as subSelect
简历一个只包含20部门的雇员信息的视图(雇员的编号、姓名、工资)
Create
view empv20 (empno,ename,sal) as select empno,ename,sal from emp where
deptno=20;
CREATE
OR REPLACE VIEW viewName … --如果存在同名视图,则替换原有视图
更新视图数据
直接更新数据
Update empv20
SET deptno=30 where empno=7369; --更新成功
默认情况下创建的视图,如果更新了,则会自动将此数据从视图中删除,之后会更新原本的数据。
如果这样做的话,肯定存在问题,以为内视图最好不要更新源表数据。
可通过以下参数限制视图的更新:
WITH
CHECK OPTION保护视图的创建规则
Create
or replace view empv20(empno,ename,sal,deptno) as select empno,ename,sal,deptno
from emp where deptno=20 WITH CHECK CONSTRAINT empv20_ck;
执行
Update empv20
SET deptno=30 where empno=7369; --视图时按照部门编号建立的,更新失败。
Update
empv20 SET ename=’tom’ where empno=7369; --更新成功,
WITH
READ ONLY只读,不可修改
Create
or replace view empv20(empno,ename,sal,deptno) as select empno,ename,sal,deptno
from emp where deptno=20 WITH READ ONLY;
现在任意的字段都不可更改,所以现在的视图是只读的。
查看视图
Select
cols from user_view; --查询视图数据
----------------------------------------------------------------------------------------------
张文海
分享到:
相关推荐
本教程旨在帮助你重温或深入学习Oracle数据库的基础知识及高级特性,让你在数据库管理领域更加得心应手。 首先,Oracle数据库的核心概念包括数据模型、SQL语言、数据库架构和事务管理。数据模型是数据库设计的基础...
总的来说,“oracle基础知识回顾与练习.zip”提供了全面的Oracle SQL学习路径,无论你是初学者还是希望重温基础的开发者,都能从中受益。通过系统学习和实践,你可以逐步掌握Oracle数据库的关键技能,为未来的职业...
这是一个关于企业级应用开发的集成环境包,包含了前端框架ZKoss CE6.0、后端框架Spring3.0.5、ORM框架Hibernate3.6,...对于想要了解早期Java开发技术或者重温旧有技术栈的开发者来说,这是一个非常有价值的参考资料。
DBMS还提供了查询分析工具,如Oracle的Explain Plan或SQL Server的Execution Plan,它们能展示每一步的预计成本、实际资源消耗和操作顺序,帮助开发者理解并优化执行计划。 总结来说,"行业-89 再次重温写出各种SQL...
本资料“行业-88 再次重温写出各种SQL语句的时候,会用什么执行计划?(1)”很可能是探讨SQL查询执行计划的一份深入教程,旨在帮助读者掌握如何分析和优化SQL语句的执行流程。 首先,执行计划包括以下几个关键元素...
1. 使用EXPLAIN或EXPLAIN PLAN:在大多数数据库系统(如MySQL、PostgreSQL、Oracle等)中,可以在SQL语句前加上`EXPLAIN`或`EXPLAIN PLAN`关键字来查看执行计划。 2. 查询分析器:某些数据库管理系统(如SQL Server...
再者,MapInfo 4具备数据库集成能力,可以与多种数据库系统无缝对接,如Microsoft Access、Oracle和SQL Server等。这使得用户可以直接在GIS环境中进行数据库操作,实现地理数据与业务数据的结合。 安装过程中,用户...
在实习期间,学员们重温了Java的基础语法、类和对象的概念,以及异常处理等关键知识。 2. **JavaWeb开发**:JavaWeb技术包括Servlet和JSP,它们是构建动态Web应用的重要工具。Servlet是一个Java类,用于扩展服务器...
本文将深入探讨SQL的多个重要知识点,帮助读者重温或掌握这些基础概念。 1. 数据库基础 - 数据库:是存储和管理数据的系统,如Oracle、MySQL、SQL Server等。 - 关系型数据库:基于关系理论,通过表格形式展示...
4. 利用自动化测试工具如LoadRunner进行性能测试,运用配置工具SVN进行文档管理。 三、实习内容与经历 1. 需求理解与测试用例编写:初期阶段,主要任务是理解软件需求,编写具有强逻辑性和全面性的测试用例,确保...
- 实习期间,学生重温了JAVA基础,Web设计,ORACLE数据库等关键技能。 - 强调了基础学习的重要性,特别是对于软件工程师而言,JAVA是必备技能。 - 学习了Web开发技术,理解了HTTP协议在B/S架构中的应用,掌握了...
6. **数据库连接**:讲述如何配置数据源,使用ADO、ODBC或OLE DB等方式连接不同的数据库系统,如SQL Server、Oracle、MySQL等。 7. **应用程序部署**:介绍PB应用程序的编译、发布和部署过程,包括生成可执行文件和...
2. **Core Java**:从基础的变量、运算符到控制结构,实习生重温了Java的核心概念,这是所有Java开发的基础。 3. **SQL和数据库**:学习了SQL语言,包括基础和优化,以及Oracle数据库开发和PL/SQL,这是处理数据和...
5. **数据库支持**:Delphi 6内置了对多种数据库的支持,包括InterBase、Oracle、SQL Server等,通过DataSnap和ADO组件,可以轻松实现数据库应用的开发。 二、Delphi 6的企业版特色: 1. **企业级组件**:Delphi 6...
4. **数据库连接性**:PB6.5支持多种数据库系统,如Oracle、MySQL、SQL Server、DB2等,这使得开发者能够轻松地与不同的数据库平台进行交互。 5. **脚本语言**:PB6.5使用的是PBL语言,这是一种基于Sybase的Simple ...
4. **强大的报表功能**:VFP内置的报表设计器能够创建复杂的数据报表,包括分组、排序、总计等功能,满足各种数据分析需求。 5. **文件系统操作**:VFP提供了大量的系统函数和命令用于文件和目录的管理,方便进行...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)开发。Java以其“一次编写,到处运行”的理念闻名,因为Java代码会被编译成字节码,可以在任何支持Java的平台上运行。J2ME(Java 2...
PowerBuilder是一种面向对象的第四代编程语言(4GL),它的主要特点是基于事件驱动的编程模型,使得用户界面的开发变得极其简便。PowerBuilder的核心优势在于其集成开发环境(IDE),它集成了设计、编码、调试和部署...
5. **数据库支持**:Delphi 7内置了ADO(ActiveX Data Objects)组件,可以方便地连接和操作各种数据库,如SQL Server、Oracle、MySQL等。 6. **Unicode支持**:虽然Delphi 7相对较旧,但它已经支持Unicode,允许...