oracle数据库概述_第1页
oracle数据库概述_第2页
oracle数据库概述_第3页
oracle数据库概述_第4页
oracle数据库概述_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

nn更多企业学院:中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料目录Oracle部分PL/SQL部分JDBC部分第一章 数据库介绍一、数据的储存方法:第一种方法:用大脑来记住数据第二种方法:写在纸上第三种方法:写在计算机的内存中第四种方法:写成磁盘文件二、数据库能做什么?1.存储大量数据,方便检索和访问2.保持数据的一致、完整3.共享和安全4.通过组合分析,产生新的有用信息三、数据库的发展史萌芽阶段-文件系统 使用磁盘文件储存数据初级阶段-第一代数据库 出现了网状模型、层次模型的数据库中级阶段-第一代数据数据库 关系型数据库和结构化查询语言高级阶段-新一代数据库 “关系-对象”型数据库四、当前的数据库产品Oracle -甲骨文BD2 -IBMSQL Server -微软Sybase -赛贝思MySql -SUN五、数据库和应用程序六、数据库相关的基本概念概念模型:基于客户的想法和观点所形成的认识和对象实体(Entiy):客观存在的、可以被描述的事物。如员工 、部门属性(Attribute):用于描述实体所具有的特征或特性,如使用编号、姓名、部门、工资等属性员工的特征。关系(Relationship):实体之间的联系。如部门和员工之间有一对多的关系。数据模型:也叫关系模型,是实体、属性、关系在数据库中的具体表现。关系数据库:用于储存各种类型的“仓库”,是二维表的集合表:实体的映射行和列:行代表一个具体的实体数据。也叫一条记录。列是属性的映射,用于描述实体的主键和外键七、数据库管理系统(DBMS) 第二章 Oracle简介快速掌握Oracle课程目标: Oracle安装及配置 有关数据库的DDL操作 有关数据表的DDL操作 有关数据表的CRUD操作 事物控制 索引 视图 存储过程 触发器 权限管理 数据库的备份与恢复 数据库设计Oracle是一个生产中间件和数据库的较大生产商,Oracel的原本含义是“神喻”,指的是神说的话。在中国的商朝的时代,把一些刻在龟壳上的文字当成了上天的指示,所以在中国也将Oracle翻译成“甲骨文”。Oracle的发展实际上依靠了IMB公司。Oracle的创始人是:Larry Ellision创办了Oracle公司。Oracle的版本分为:Oracle 8Oracle 8i:Internet表示此时Oracle公司开始开始正式进军互联网.Oracle 9i: Oracle 8i和Oracle 9i相比是非常相似的Oracle 10g: g表示网格技术网格技术:如我们在百度上下载一个软件,那么这个软件在离我们的远处有一个,在我们的近处也有一个,有可能我们通过搜索引擎下载的是远的那个。忽略了近处的资源,这样就造成了资源的浪费。所以就产生了网格技术。就是将网络划为了多个小格。通过网络表示区域。Oracle 是由甲骨文公司生产的以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一 。是目前市场占用率极高的一款数据库产品特点:提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。 提供了与第三代高级语言的接口 提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。 一、存储结构:物理结构:ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。 逻辑结构:ORACLE数据库在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。二、启动Oracle在Window平台下必须启动的Oracle服务有:1.OracleServiceSID 数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务进程为ORACLE.EXE.2.OracleHOME_NAMETNSListener监听器服务。3.sqlplus工具sqlplus工具登录数据库有以下几种方式:(1).sqlplus:以命令的方式进入数据库连接(2).sqlplusw:以窗口的形式启动命令行在使用此命令时,会提示一个主机的字符串,如果一台电脑上有多个数据库的话,则要在此处输入数据库的名称,如果不输入,会进行默认的,一般默认的是最后一个数据库。那么登录帐户以后,就可以在数据库中进行增、删、改、查等操作。如我们可以查看表:SELECT * FROM emp;(emp表是数据库自带的表)当我们对表进行查看时,有时候显示的表并不规范,如本来是一行的内容,可是有一部分被补到了下一行。这样看下来表就很混乱,不规范。所以我们要对其环境 进行一下设置。如设置每行显示的长度:set linesize 300;有时候标题行还会重复出现,在这因为在Oracle中数据是一页一页的显示方式进行输出的。所我们可修改每页显示行数。如set pagesize 20;4.命令我们通常使用的sqlplusw在sqlplusw中存在着大量的命令。在sqlplusw下编辑代码时,出现了错误,不允许我们使用向左方向键向右移动到相应的位置上进行修改,很不方便,所以通常我们使用记事本进行代码的编辑,直接在命令行中输入“ed 文件名名称即可”。如 ed test,输入之后会提示找不到test.sql文件,要创建新文件吗?我们选择“是”,那么就创建了一个test文件,我们就可以在test文本中写相应的代码。创建完成之后,可以通过文件名称的方式执行命令。如test,就会执行在test中写的代码。除了在sqlplus中创建文件之外,也可以通过符找到磁盘上的文件,如我们在D盘上建立一个demo.txt的文件,里边写上查询指令。执行的时候,要指定文件的路径:路径,如D:demo.txt,也会执行demo中的指令。效果也完全一样的。“”可以省略。如D:demo.txt.如果文件的后缀是.sql,则不写后缀名称也可以找到。如:D:demo。所以默认找到的后缀是“*.sql”。在sqlplusw中可以使用“/”表示重复执行上一句命令的操作。 第三章 用户、权限一、用SQLPLUS登录Oracle1.Sqlplus 用户/密码 as 身份如登录系统帐户:conn sys/system as sysdba;conn:连接到数据库的关键字sys:系统用户名system:是验证密码as sysdba:是身份验证2.Oracle 内置帐户sys具有最大的权限。 Oracle数据库服务器启动后,一般至少有以下几个用户: Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;sys:它是一个 DBA用户名,具有最大的数据库操作权限;system:它也是一个 DBA用户名,权限仅次于 Sys用户 scott:它是一个oracle示例/学习帐户3.停止和启动Oracle启动/停止windows服务Sqlplus /nolog 利用这个命令可以在DOS下不利用任何身份进入到SQL的状态。之后再利用身份登录Connect /as sysdbaShutdown/startup/是以操作系统认证进行登录Nolog不创建初始联接4.创建、删除用户创建帐户:CREATE USER username IDENTIFIED BY password DEFAULT TABLESPACE tablespace1-默认表空间 TEMPORARY TABLESPACE tablespace2-临时表空间 QUOTA n K ON tablespace1;-不足时自动增加nK或nM M UNLIMITED-没有限制如创建一个hellen的帐户:create user hellen identified by abcd;删除帐户:基本语法:DROP USER userName cascade;如果加上cascade关键字可删除该用户所创建的对象。如:删除用户hellen: drop user hellen;用户修改密码:基本语法:ALTER USER userName IDENTIFIED BY password;如: alter user hellen identified by abc123;用户解锁:基本语法:ALTER USER userName ACCOUNT UNLOCK;如:alter user hellen account unlock;查看当前登录用户SHOW USER;查看系统有哪些用户:SELECT USERNAME FROM DBA_USERS; 如: 第一步:desc dba_users; 第二步:select username, USER_ID, ACCOUNT_STATUS FROM DBA_USERS;查看用户的默认表空间select username,default_tablespace from dba_users;查看用户有哪些表空间select distinct tablespace_name from dba_tables where owner=USER;确定用户帐户所授予的权限select * from DBA_tab_privs ; 直接授予用户帐户的对象权限 select * from DBA_role_privs ; 授予用户帐户的角色 select * from DBA_sys_privs WHERE GRANTEE=?; 授予用户帐户的系统权限5.授于用户连接Oracle数据库的权限格式:grant 权限 to 帐户名。如授予可以连接到数据库的权限:grant hellen to scott;常用的权限有: connect (8) 连上Oracle,做最基本操作 resource(5) 具有程序开发最基本的权限 dba (77)数据库管理员所有权限 exp-full-database 可把数据库整个备份输出的权限 imp-full-datsabase 可把数据库整个备份恢复输入的权限6.回收权限基本语法:REVOKE 权限 FROM 用户名;REVOKE 实体权限|ALL ON 表空间 FROM 用户名|角色名|PUBLIC;如授回连接到数据库的权限:revoke connect from hellen;常见的实体权限:见附录第四章 Oracle数据类型Oracle 提供了22 种不同的SQL数据类型供我们使用: CHAR:这是一个定长字符串,会用空格填充来达到其最大长度。非null 的CHAR(12.)总是包含12字节信息。CHAR 字段最多可以存储2,000 字节的信息。 NCHAR:这是一个包含UNICODE 格式数据的定长字符串。最多可以存储2,000 字节的信息。 VARCHAR2:这是一个变长字符串,与CHAR 类型不同,它不会用空格填充至最大长度。VARCHAR2(12)可能包含012字节的信息。VARCHAR2 最多可以存储4,000 字节的信息。 NVARCHAR2:这是一个包含UNICODE 格式数据的变长字符串。NVARCHAR2(12)可以包含012字符的信息。NVARCHAR2 最多可以存储4,000 字节的信息。 NUMBER:这种数据类型能存储精度最多达38 位的数字。这些数介于1212(-130)-1 1212(126)之间。用法:number(p,s);p和s是可以选的,用于表示整数部分和小数部分的精度 BINARY_FLOAT:这是Oracle 10g Release 1 及以后版本中才有的一种新类型。它是一个32位单精度浮点数,可以支持至少6 位精度,占用磁盘上5 字节的存储空间。 BINARY_DOUBLE:这也是10g中新的一种类型 CLOB:在Oracle9i 及以前的版本中,这种数据类型允许存储最多4GB 的数据,在Oracle 10g及以后的版本中允许存储最多(4GB)(数据库块大小)字节的数据。这种数据类型很适合存储纯文本信息。 BLOB:在Oracle9i 及以前的版本中,这种数据类型允许存储最多4GB 的数据,在Oracle 10g及以后的版本中允许存储最多(4GB)(数据库块大小)字节的数据。适合于存储图片/文档 LONG:这种类型能存储最多2G 的字符数据-建议使用CLOB代替 DATE:这是一个7 字节的定宽日期/时间数据类型。其中总包含7 个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。 TIMESTAMP:这是一个7 字节或12.字节的定宽日期/时间数据类型。它与DATE 数据类型不同,因为TIMESTAMP 可以包含小数秒(fractional second);带小数秒的TIMESTAMP 在小数点右边最多可以保留9 位。 TIMESTAMP WITH TIME ZONE:与前一种类型类似,这是一个12.字节的定宽TIMESTAMP,不过它还提供了时区(TIME ZONE)支持。数据中会随TIMESTAMP 存储有关时区的额外信息,所以原先插入的TIME ZONE 会与数据一同保留。 ROWID:ROWID 实际上是数据库中一行的12字节地址。ROWID 中编码有足够的信息,足以在磁盘上定位这一行,以及标识ROWID 指向的对象。(1)Oracle 中伪列就像一个表列,但是它并没有存储在表中(2)伪列可以从表中查询,但不能插入、更新和删除它们的值(3)常用的伪列有ROWID和ROWNUM ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行。 ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数例:列的类型主要有如下几种:NUMBER(4):表示是数字,长度为4VARCAHR2(10):表示的是字符串,只能10的个的长度DATE:表示日期NUMBER(7,2): 表示是数字,其中小数位占2位,整数位占5位,总共是7位。 第五章 SQL语句概述SQL语句概述 SQL结构化查询语言(Structured Query Language)一般读作:si:kju: 或者是字母 S Q L 的发音。 目前数据库厂商实现的都是SQL92标准,还没有任何一家厂商通过SQL99标准认证 Oracle对SQL92做了扩展,所以称自己为加强版SQL(SQLPLUS)。对于不同的数据库来讲,重点都是掌握SQL语句,因为现在的数据库全部是以SQL操作的标准,在实际中,各个数据库就是提供的函数不同。SQL语言主要用于与数据库的通讯。SQL语言功能强大 ,主要分为以下同种:DML DDL DCL 事物控制语言。一、SQL语句分类1.DDL(Data Definition Language)数据定义语言:定义数据库对象(表空间,表,列,索引等) 如:CREATE,DROP,ALTER,TRUNCATE 等2.DML(Data Manipulation Language)数据操纵语言:完成对数据记录的操作 如:INSERT,DELETE,UPDATE,SELECT 等。3.DCL(Data Control Language)数据控制语言:定义用户的访问权限和安全级别 如:GRANT,REVOKE4.事物控制(Transaction Control)事物控制:如:COMMIT,ROLLBACK(1)事务是最小的工作单元,作为一个整体进行工作(2)保证事务的整体成功或失败,称为事务控制用于事务控制的语句有:(4)COMMIT - 提交并结束事务处理当向表插入一个新值的时候,该事物并没有被永久的写到磁盘上去 ,重新打开窗口再次查询该表中的数据时,发现并没有刚才插入的记录,这是因为这个事物还没有结束,当遇到commit或rollback才认为是结束了。如果要永久性的提交可以执行:commit命令,再次打开新的窗口时该记录已被写到表中了。(5)ROLLBACK - 撤销事务中已完成的工作当我们做了和系列的操作以后,都没有执行commit命令,也就是没有提交,我们执行了rollback就可要回到原点了,也就是刚才所做的都等于没做,所有rollback回退是将所有的回退。(6)SAVEPOINT 标记事务中可以回滚的点因为rollback回退是将所有的都回退了,这明显不太好,那么我们可以设置几个回退点,使再次回退的时候,不让其回退到原点,而是回退到我们固定的位置上去。如:UPDATE 表名 set id=2 WHERE id=3-将id=3改为id=2SAVEPOINT mark1-设置一个还原点mark1DELETE FROM 表名 WHERE id=5-删除id=5SAVEPOINT mark2;-再设置一个还原点mark2二、Oracle支持的SQL操作符的分类:算术操作符 比较操作符 逻辑操作符 集合操作符 连接操作符1.算术操作符:算术操作符用于执行数值计算可以在SQL语句中使用算术表达式,算术表达式由数值数据类型的列名、数值常量和连接它们的算术操作符组成算术操作符包括加(+)、减(-)、乘(*)、除(/)。2.连接操作符用于将多个字符串或数据值合并成一个字符串例:要求查出雇员的编号、姓名、工作但是显示的格式是:编号是:7369的雇员,姓名是:SMITH,工作是:CLERKSELECT 编号是:|empno|的雇员,姓名是:|ename|工作是|job;-使用了连接操作符在查询中也可以 使用四则运算功能。如我们要查每个雇员的姓名及年薪。SELECT ename,sal*12 FROM emp;-月薪*12表示年薪-使用了算术操作符3.比较操作符用于比较两个表达式的值比较操作符包括 =、!=、=、BETWEENAND、IN、LIKE 和 IS NULL等例:SQL SELECT itemdesc, re_level FROM itemfile WHERE qty_hand SELECT orderno FROM order_master WHERE del_date IN (06-1月-05,05-2月-05);SQL SELECT vencode,venname,tel_no FROM vendor_master WHERE venname LIKE j_s;4.逻辑操作符逻辑操作符用于组合多个计较运算的结果以生成一个或真或假的结果。逻辑操作符包括与(AND)、或(OR)和非(NOT)。 例:显示 2005-5月-10 至 2005-5月-26的订单信息SQL SELECT * FROM order_master WHERE odate 10-5月-05 AND del_date 表空间名 datafile d:javasky.dbf-目录地址 size 20M-大小为20M autoextend on next 5M;-当空间不足时自动增加5M;2.删除表空间 基本语法: DROP TABLESPACE “TABLESPANCENAME” 注意表空间的名字需要使用双引号包围,并且表空间的名称需要大写。 如:drop tablespace JAVASKY;3.查看表空间的名称和状态 select tablespace_name,status from dba_tablespaces; 表空间的状态属性主要有在线(ONLINE)、离线(OFFLINE)、只读(READ ONLY)和读写(READ WRITE)4种 4.修改表空间的状态 alter tablespace 表空间名 状态;可以修改表空间的状态 第七章 表查看该帐户下所有的表:第一种、select * from cat;第二种、select * from tab; 建表CREATE TABLE 表名(列名 列类型,);如:create table student(id int,name varchar2(5),address varchar2(10); -创建一个具有ID NAME ADDRESS 的学生信息表创建完表以后可以利用:desc 表名 来查看如 dest student; 如名称、类型、是否为空。 修改表1.增加新列 ALTER TABLE 表名 ADD 列名 列类型 ADD 列 类型; 如新一个电话的列:alter table student add tel number; 增加一个新的列后给其赋值:update student set tel= where id=2;2.删除旧列 ALTER TABLE 表名 DROP COLUMN 列名;3.修改列类型(要求,列中无数据) ALTER TABLE 表名 MODIFY 列名 列类型4.修改列名 ALTER TABLE 表名 RENAME COLUMN 列名 TO 新列名; 5.修改表名 RENAME 表名 TO 新表名; 插入(记录)数据,也就是给列赋值1.给其相应的字段赋值:INSERT INTO表名(列名1,) VALUES(值1,); 注:中的内容可写可不写如:INSERT INTO student(id,name,addredd) VALUES(1,李小龙,河北省);2.赋全值 INSERT INTO student VALUES(1,李小龙,河北省);3.赋值以后查看该表的内容: select * from student;4.插入日期格式的值:INSERT INTO 列名(列名)VALUES (TO_DATE(2005-10-18, YYYY-MM-DD); 修改记录UPDATE 表名 SET 列名=值,.WHERE 条件;如 update 表名 set tname=李小龙 where tname=李建龙; -这是一个条件限制 删除(记录)数据第一种方法: DELETE FROM 表名 WHERE 条件; 第二种方法: TRUNCATE TABLE 表名; 利用现有的表创建表 语法:CREATE TABLE ASSELECT column_names FROM ;如:SQL CREATE TABLE newitemfile AS SELECT * FROM itemfile;-所有的列SQL CREATE TABLE newitemfile1 AS SELECT itemcode, itemdesc, qty_hand -选择特定的列 FROM itemfile;SQL CREATE TABLE newitemfile2 AS SELECT * FROM itemfile WHERE 1 = 2;-建表时的条件,这里是1=2,明显为假,但是可是以建表,但是空的内容为空。 不带条件的DELETE和TRUNCATE TA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论