日期:2014-05-16 浏览次数:20632 次
第一部分?? 基础知识与体系结构????? 
? 
一、Oracle概述?? 
1.数据库基础?? 
@ 数据-----描述事物的符号,是数据库中存储的基本对象?? 
@ 数据库-----按照一定的数据模型组织、描述和存储的数据的集合,具有较高的数据独立性,小的冗余度,可以实现数据共享?? 
@ 数据库管理系统-----为科学组织和存储数据库中的数据,高效率的获取和维护数据,采用DBMS的系统软件来管理数据库?? 
? 位于用户和操作系统之间的一层数据管理软件,通常所说的数据库产品(Oracle,DB2,Informix,Sybase)都是DBMS。?? 
@ 数据库系统-----数据库、数据库管理系统、计算机系统共同组成了一个数据库系统,通常由数据库,操作系统,DBMS,开发工具,应用系统,DBA,用户组成?? 
? 
??????????????????? 用户(另类系统)???? 用户(终端)???? 用户(PC)?? 
?????????????????????????????????? |?? 
??????????????????????????????? 应用系统(订票系统)?? 
?????????????????????????????????? |?? 
??????????????????????????????? 开发工具(PL/SQL,Dbvisual)?? 
?????????????????????????????????? |?? 
????????????????????????????????? DBMS?? 
?????????????????????????????? |?? 
??????????????????????????????? 操作系统?? 
?????????????????? |?? 
??????????????????????????????? 数据库?? 
? 
2.数据库的发展?? 
@ 人工管理阶段,1950以前,数据不共享,不独立,冗余量大?? 
@ 文件系统管理阶段,1950-1965,数据可以长期保存,共享性差,独立性差?? 
@ 数据库系统管理阶段,1965以后,数据结构化存,共享性强,独立性好,冗余量低,统一数据管理和控制?? 
? 
3.数据模型?? 
@ ER图?? 
实体(Entity)-矩形?? 
属性(Attribute)-椭圆?? 
关系(Relation)-菱形?? 
@ 四种对象模型?? 
层次模型---树?? 
网状模型---图?? 
关系模型---表,Oracle,DB2等流行数据库都是关系数据库?? 
关系:表?? 
元祖:行?? 
元素:列?? 
属性:列?? 
优点:存储路径对用户透明,具有更高的数据独立性和保密性,简化了程序员的开发工作?? 
缺点:查询效率往往不太乐观,必须对用户的查询语句进行优化。?? 
对象模型---对象? 
4.Oracle数据库简介?? 
Oracle公司于1979年发布的世界上第一个关系数据库?? 
1992发布oracle7,1997.6发布oracle8,1998.9发布oracle8i,2000发布oracle9i,2004发布oracle10g?? 
? 
@ 特点?? 
支持多用户、大事物量的事物处理?? 
提供标准操作接口?? 
实施安全性控制和完整性控制?? 
支持分布式数据处理?? 
具有可移植、可兼容性和可连接性?? 
? 
@ 应用结构?? 
客户机-服务器(C/S)模式--客户端需要安装客户端程序,直接访问服务器,速度快,维护升级不方便,如PL/SQL DEVELEPOR?? 
浏览器-服务器(B/S)模式--三级架构,客户端只要安装浏览器就OK了,通过访问WEB服务器对数据库进行操作和访问,方便了程序的维护和升级,但是降低了网络执行效率?? 
分布式数据库模式--分布于计算机网络的多个逻辑相关的数据库组成,每个数据库都具有独立的处理能力?? 
? 
@ 创建数据库:安装时创建;DCBA创建?? 
? 
@ OEM和SQL*PLUS?? 
? 
二、体系结构?? 
见笔记本?? 
? 
???? 
第二部分?? SQL语句????? 
???? 
一、分类?? 
1.DML语句,包含insert、update、delete、select等常用语句??? 
? 
●增删改操作??? 
新增:insert into book(id,name) values(2,"Wade");??? 
批量新增:insert into book(id,name) select t.id,t.nameCn from book_change;??? 
修改:update book set name="McGrady" where id=2;??? 
删除:delete book where id=2??? 
全部删除(低效):delete book??? 
全部删除(高效):Truncate table book??? 
? 
employee雇员信息表??? 
emp_id 雇员编号 NOT NULL NUMBER(4)??? 
emp_name 雇员姓名 VARCHAR2(10)??? 
emp_station 工作岗位 VARCHAR2(9)??? 
emp_managerId 该雇员经理人的编号 NUMBER(4)??? 
emp_inDate 入职时间 DATE??? 
emp_salary 薪水 NUMBER(7,2)??? 
emp_allowance 津贴 NUMBER(7,2)??? 
emp_depId 雇员所在部门编号 NUMBER(2)??? 
departmentà部门信息表??? 
dep_id 部门编号 NOT NULL NUMBER(2)??? 
dep_name 部门名字 VARCHAR2(14)??? 
dep_loction 部门所在地 VARCHAR2(13)??? 
salarygradeà薪水等级表??? 
Sg_id 薪水等级 NUMBER??? 
Sg_minSal 该等级的最低薪水值 NUMBER??? 
Sg_maxSal 该等级的最高薪水值 NUMBER?? 
●基本查询(消除重复或字段)??? 
select distinct * from employee;??? 
select emp_id, emp_name, emp_salary from employee;??? 
? 
●查询算术表达式语句??? 
select emp_id, emp_salary*2 from employee;??? 
select 55/2 from dual;??? 
select sysdate from employee where emp_id = 3;??? 
select emp_name,emp_salary*12+emp_allowance from employee??? 
? 
●别名??? 
select emp_id, emp_salary*2 ‘doubleSal’from employee;??? 
select em.emp_id, em.emp_salary*2 as‘doubleSal’from employee em;??? 
? 
●where过滤数据??? 
select * from employee where emp_depId = 3;??? 
Select * from employee where emp_name = 'Wade' and emp_depId = 3;??? 
Select emp_name, emp_salary from employee where emp_salary between 800 and 1500;??? 
Select emp_name, emp_salary from employee where emp_salary <= 800 or emp_salary >=1500;??? 
Select * from employee where emp_allowance is not null;??? 
Select * from employee where emp_allowance is in(100,200,400,800,1000);??? 
select * from t_application_info where app_id in (sele