`
wenhai_zhang
  • 浏览: 184666 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

重温Oracle(4)

 
阅读更多

 

第十一章 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;   --更新ididvalcol列的值为value

update tblName set (cols) = (sub select ) where id=idVal; --更新ididvalcols为子查询的结果,子查询必须返回一条记录。如果子查询返回的是空,则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数据库的基础知识及高级特性,让你在数据库管理领域更加得心应手。 首先,Oracle数据库的核心概念包括数据模型、SQL语言、数据库架构和事务管理。数据模型是数据库设计的基础...

    oracle基础知识回顾与练习.zip

    总的来说,“oracle基础知识回顾与练习.zip”提供了全面的Oracle SQL学习路径,无论你是初学者还是希望重温基础的开发者,都能从中受益。通过系统学习和实践,你可以逐步掌握Oracle数据库的关键技能,为未来的职业...

    zkoss CE6.0+spring3.0.5+hibernate3.6+oracle10g+mysql5最全包

    这是一个关于企业级应用开发的集成环境包,包含了前端框架ZKoss CE6.0、后端框架Spring3.0.5、ORM框架Hibernate3.6,...对于想要了解早期Java开发技术或者重温旧有技术栈的开发者来说,这是一个非常有价值的参考资料。

    行业-89 再次重温写出各种SQL语句的时候,会用什么执行计划?(2).rar

    DBMS还提供了查询分析工具,如Oracle的Explain Plan或SQL Server的Execution Plan,它们能展示每一步的预计成本、实际资源消耗和操作顺序,帮助开发者理解并优化执行计划。 总结来说,"行业-89 再次重温写出各种SQL...

    行业-88 再次重温写出各种SQL语句的时候,会用什么执行计划?(1).rar

    本资料“行业-88 再次重温写出各种SQL语句的时候,会用什么执行计划?(1)”很可能是探讨SQL查询执行计划的一份深入教程,旨在帮助读者掌握如何分析和优化SQL语句的执行流程。 首先,执行计划包括以下几个关键元素...

    行业-90 再次重温写出各种SQL语句的时候,会用什么执行计划?(3).rar

    1. 使用EXPLAIN或EXPLAIN PLAN:在大多数数据库系统(如MySQL、PostgreSQL、Oracle等)中,可以在SQL语句前加上`EXPLAIN`或`EXPLAIN PLAN`关键字来查看执行计划。 2. 查询分析器:某些数据库管理系统(如SQL Server...

    mapinfo 4 安装程序

    再者,MapInfo 4具备数据库集成能力,可以与多种数据库系统无缝对接,如Microsoft Access、Oracle和SQL Server等。这使得用户可以直接在GIS环境中进行数据库操作,实现地理数据与业务数据的结合。 安装过程中,用户...

    java培训实习总结.doc

    在实习期间,学员们重温了Java的基础语法、类和对象的概念,以及异常处理等关键知识。 2. **JavaWeb开发**:JavaWeb技术包括Servlet和JSP,它们是构建动态Web应用的重要工具。Servlet是一个Java类,用于扩展服务器...

    SQL-4 数据库知识

    本文将深入探讨SQL的多个重要知识点,帮助读者重温或掌握这些基础概念。 1. 数据库基础 - 数据库:是存储和管理数据的系统,如Oracle、MySQL、SQL Server等。 - 关系型数据库:基于关系理论,通过表格形式展示...

    2020年软件测试顶岗实习报告总结.docx

    4. 利用自动化测试工具如LoadRunner进行性能测试,运用配置工具SVN进行文档管理。 三、实习内容与经历 1. 需求理解与测试用例编写:初期阶段,主要任务是理解软件需求,编写具有强逻辑性和全面性的测试用例,确保...

    软件工程的实习报告4篇.pdf

    - 实习期间,学生重温了JAVA基础,Web设计,ORACLE数据库等关键技能。 - 强调了基础学习的重要性,特别是对于软件工程师而言,JAVA是必备技能。 - 学习了Web开发技术,理解了HTTP协议在B/S架构中的应用,掌握了...

    PB学习手册附阅读器

    6. **数据库连接**:讲述如何配置数据源,使用ADO、ODBC或OLE DB等方式连接不同的数据库系统,如SQL Server、Oracle、MySQL等。 7. **应用程序部署**:介绍PB应用程序的编译、发布和部署过程,包括生成可执行文件和...

    java培训实习报告.docx

    2. **Core Java**:从基础的变量、运算符到控制结构,实习生重温了Java的核心概念,这是所有Java开发的基础。 3. **SQL和数据库**:学习了SQL语言,包括基础和优化,以及Oracle数据库开发和PL/SQL,这是处理数据和...

    Delphi 6企业版iso

    5. **数据库支持**:Delphi 6内置了对多种数据库的支持,包括InterBase、Oracle、SQL Server等,通过DataSnap和ADO组件,可以轻松实现数据库应用的开发。 二、Delphi 6的企业版特色: 1. **企业级组件**:Delphi 6...

    PB6.5.rar数据库维护软件

    4. **数据库连接性**:PB6.5支持多种数据库系统,如Oracle、MySQL、SQL Server、DB2等,这使得开发者能够轻松地与不同的数据库平台进行交互。 5. **脚本语言**:PB6.5使用的是PBL语言,这是一种基于Sybase的Simple ...

    陆卫康的VFP技术文章和示例

    4. **强大的报表功能**:VFP内置的报表设计器能够创建复杂的数据报表,包括分组、排序、总计等功能,满足各种数据分析需求。 5. **文件系统操作**:VFP提供了大量的系统函数和命令用于文件和目录的管理,方便进行...

    JavaBoyEMU

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)开发。Java以其“一次编写,到处运行”的理念闻名,因为Java代码会被编译成字节码,可以在任何支持Java的平台上运行。J2ME(Java 2...

    教材-循序渐进学习Power Builder 6.0

    PowerBuilder是一种面向对象的第四代编程语言(4GL),它的主要特点是基于事件驱动的编程模型,使得用户界面的开发变得极其简便。PowerBuilder的核心优势在于其集成开发环境(IDE),它集成了设计、编码、调试和部署...

Global site tag (gtag.js) - Google Analytics