日期:2014-05-16 浏览次数:20582 次
第一部分?? 基础知识与体系结构?????
?
一、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