版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章,Oracle 入门,2,课程地位,.Net ,创建表空间的语法是:,22,Oracle 逻辑组件 3-2,create tablespace test_data datafile D:oracleoradataOracle9iuser_data.dbf size 50m autoextend on next 50m maxsize 20480m extent management local;,23,Oracle 逻辑组件 3-3,段,段是构成表空间的逻辑存储结构,段由一组区组成。 按照段所存储数据的特征,将段分为四种类型,即数据段、索引段、回退段和临时段。,区,区为段分配空间,它由连
2、续的数据块组成。 当段中的所有空间已完全使用时,系统自动为该段分配一个新区。 区不能跨数据文件存在,只能存在于一个数据文件中。,数据块,数据块是Oracle服务器所能分配、读取或写入的最小存储单元。 Oracle服务器以数据块为单位管理数据文件的存储空间。,模式,模式是对用户所创建的数据库对象的总称。 模式对象包括表、视图、索引、同义词、序列、过程和程序包等。,24,Oracle 逻辑组件 3-4,25,Oracle 网络配置 2-1,Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接。 服务器端配置监听器,客户端配置网络服务名。,26,Oracle 网络配置 2-2
3、,服务器端监听器配置信息包括监听协议、地址及其他相关信息。 配置信息保存在名为listener.ora的文件中。在安装服务器软件时自动配置一个监听器 客户端的网络服务名配置信息包括服务器地址、监听端口号和数据库SID等,与服务器的监听器建立连接。配置信息保存在名为tnsnames.ora的文件中 Oracle中的 Net Configuration Assistant和Net Manager工具都能用来配置监听器和网络服务名,27,Oracle 查询工具,Oracle 查询工具,SQL*Plus,iSQL*Plus,PL/SQL,Oracle 提供的工具非常容易使用。Oracle 的查询工具包
4、括:,SQL*Plus是Oracle最常用的工具之一,用于接受和执行SQL命令以及PL/SQL块。,iSQL*Plus可以执行能用SQL*Plus完成的所有任务。该工具的优势在于能通过浏览器访问它。,PL/SQL 是 SQL 的扩展。PL/SQL 结合了SQL语言的数据操纵能力和过程语言的流程控制能力,28,Oracle 企业管理器,Oracle 企业管理器为管理员提供了图形化的用户界面,并集成了管理数据库的工具,29,Oracle 默认用户,只有用合法的用户帐号才能访问Oracle数据库 Oracle 有几个默认的数据库用户,Oracle 默认用户,SYS,SYSTEM,SCOTT,数据库中
5、所有数据字典表和视图都存储在 SYS 模式中。SYS用户主要用来维护系统信息和管理实例。,SYSTEM 是默认的系统管理员,该用户拥有Oracle管理工具使用的内部表和视图。通常通过SYSTEM用户管理数据库用户、权限和存储等,SCOTT用户是Oracle 数据库的一个示范帐户,在数据库安装时创建,30,创建新用户,要连接到Oracle数据库,就需要创建一个用户帐户 每个用户都有一个默认表空间和一个临时表空间 CREATE USER命令用于创建新用户,CREATE USER username IDENTIFIED BY password DEFAULT TABLESPACE tablespac
6、e TEMPORARY TABLESPACE tablespace;,CREATE USER 命令的语法是:,CREATE USER MARTIN IDENTIFIED BY martinpwd DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;,创建一个名称为 martin 的用户,其密码为 martinpwd,31,授予权限 3-1,权限指的是执行特定命令或访问数据库对象的权利 权限有两种类型,系统权限和对象权限 系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限 对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作
7、角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。,32,授予权限 3-2,GRANT 命令可用于为用户分配权限或角色,GRANT CONNECT TO MARTIN;,CONNECT角色允许用户连接至数据库, 并创建数据库对象,GRANT RESOURCE TO MARTIN;,RESOURCE角色允许用户使用 数据库中的存储空间,GRANT CREATE SEQUENCE TO MARTIN;,此系统权限允许用户在当前模式中创建 序列,此权限包含在CONNECT角色中,33,授予权限 3-3,授予用户 MARTIN 操作TEST表对象的权限,GRANT SEL
8、ECT ON TEST TO MARTIN;,允许用户查询 TEST 表的记录,GRANT UPDATE ON TEST TO MARTIN;,允许用户更新 TEST 表中的记录,GRANT ALL ON TEST TO MARTIN;,允许用户插入、删除、更新和查询 TEST 表中的记录,34,更改和删除用户,ALTER USER 命令可用于更改口令,ALTER USER MARTIN IDENTIFIED BY martinpass;,修改 MARTIN 用户的密码,DROP USER 命令用于删除用户,DROP USER MARTIN CASCADE;,删除 MARTIN 用户模式,35
9、,用户管理,Connect scott/tiger Connect System/sys as sysdba 断开链接 disconnect 解锁: alter user scott account unlock; 显示当前用户: show user; 查看当前用户下所有对象: select * from tab; 跨用户访问: select * from scott.emp;,36,用户管理,创建用户: create user zs identified by zs; drop user zs; drop user zs cascade; 创建session权限: Grant 权限 to 用
10、户 grant create session to zs; Oracle提供了n种角色: Connect Resource DBA Grant connect,resource to zs; 但是仍然不能创建表,是因为还没有表空间的权限。(10G已经有了!),37,用户管理,提示密码失效: ALTER USER test PASSWORD expire ; 对象授权: GRANT 权限(select、update、insert、delete) ON schema.table TO 用户 |- GRANT select ON scott.emp TO test ; |- Grant all on
11、 scott.emp to test; -将表相关的所有权限付给test |- Grant update(ename) on emp to test; 可以控制到列(还有insert),38,用户管理,权限回收 REVOKE 权限 ON schema.table FROM 用户 |- REVOKE select ON scott.emp FROM test ; 查看权限 select * from user_sys_privs; 权限传递 Grant create session to test with admin option;(可以就可以实现权限传递) Q:如果权限sys-test-te
12、st1 ,这时断掉test的权限, test1还会有权限吗? A:在oracle9i是,答案是还会有。,39,用户管理,角色 角色就是一堆权限的集合 Create role myrole; Grant create table to myrole; Drop role myrole; 删除角色 grant unlimited tablespace to user;,40,用户管理,grant connect,resource to user;然后,用户包括的权限:CONNECT角色: -是授予最终用户的典型权利,最基本的ALTER SESSION -修改会话CREATE CLUSTER -建立
13、聚簇CREATE DATABASE LINK -建立数据库链接CREATE SEQUENCE -建立序列CREATE SESSION -建立会话CREATE SYNONYM -建立同义词CREATE VIEW -建立视图 RESOURCE角色: -是授予开发人员的CREATE CLUSTER -建立聚簇CREATE PROCEDURE -建立过程CREATE SEQUENCE -建立序列CREATE TABLE -建表CREATE TRIGGER -建立触发器CREATE TYPE -建立类型,41,用户管理,从dba_sys_privs里可以查到:SQL select grantee,pri
14、vilege from dba_sys_privs where grantee=RESOURCE order by privilege,42,序列,create sequence myseq start with 1 increment by 2 order cache 20 select myseq.nextval from dual select myseq.currval from dual 必须现有nextval才有currval.,43,序列,create sequence myseq1 start with 1 increment by 1 cycle maxvalue 3 noc
15、ache 这样到3之后就会从1重新开始 alter sequence myseq increment by 5 不能改变当前值,但是可以改变增量。,44,同义词,很方便的操作不同用户下的对象 能使2个不同的应用程序使用不同的名字指向同一张表 使用不同的用户指向同一张表。,45,同义词,create synonym userinfo for zs.userinfo(这样创建的同义词是私有的,只有创建者才能用) drop synonym userinfo 如果在本用户中已有名字,再创建同义词,会报错 名称已由现有对象使用!,46,同义词,create public synonym userinfo
16、 for zs.userinfo(这样创建的同义词才是公有的) drop public synonym userinfo 如果在本用户中已经有名字,再创建同义词,会遵循就近一致的原则。,47,视图,视图以经过定制的方式显示来自一个或多个表的数据 视图可以视为“虚拟表”或“存储的查询” 创建视图所依据的表称为“基表” 视图的优点有: 提供了另外一种级别的表安全性 隐藏的数据的复杂性 简化的用户的SQL命令 隔离基表结构的改变 通过重命名列,从另一个角度提供数据,48,视图,create or replace view schema.view alias,alias. as subquery; d
17、esc myview; drop view myview;,49,视图,创建试图 create or replace view myuser as select * from userinfo order by id desc,50,视图,创建试图带输出效果 create or replace view myuser(编号,名称,成绩) as select * from userinfo order by id desc,51,视图,创建试图带输出效果 create or replace view myuser(编号,名称,成绩) as select id,username,score+20
18、from userinfo order by id desc,52,视图,更新试图: 可以更新试图 可更新试图中不能包含分组,group by子句,distinct,rownum等。 insert into myuser(编号,名称,成绩) values (103,ddd,198),53,视图,with read only 只读试图: create or replace view myuser(编号,名称,成绩) as select id,username,score from userinfo order by id desc with read only,54,联接视图 2-1,Stud_
19、details,Sub_details,CREATE VIEW Stud_sub_view AS SELECT Studno, Studname, Submrks, Subname FROM Stud_details, Sub_Details WHERE Stud_details.Subno=Sub_details.Subno;,Stud_sub_view,联接视图,55,视图中可以使用单行函数、分组函数和表达式 使用DROP VIEW语句删除视图,视图中的函数,CREATE VIEW item_view AS SELECT itemcode, LOWER(itemdesc) item_des
20、c FROM itemfile;,SQL DROP VIEW toys_view;,56,约束的主要功能是保证表中的数据合法性,按照约束的分类,一共有五种约束, 非空约束、 唯一约束、 主键约束、 外键约束、 检查约束、,约束,57,非空约束简称NK create table a(id number,name varchar(2) not null);,约束,58,唯一约束 unique UK 唯一约束指的是每一个列上的数据是不允许重复的,例如email 下面建表 create table a( id number, name varchar2(100) not null, email var
21、char2(50) unique );,约束,59,主键约束Primary Key PK 主键约束=非空约束+唯一约束, 在之前设置唯一约束的时候发现可以为null值,而如果使用了主键约束之后则不能为空,而主键一般作为数据的唯一的一个标记出现,例如 人员ID 范例建立主键约束 create table a( id number primary key, name varchar2(50) not null );,约束,60,检查约束 check CK 检查约束指的是为表中的数据增加一些过来条件 设置年龄的时候范围是:0-200; 设置性别的时候应该是:男、女、中; 范例设置检查约束 creat
22、e table a( id number , name varchar2(50) not null, sex varchar2(10) not null, age number(3), constraint PK_id primary key(id), constraint CK_sex check(sex in(男,女,中), constraint CK_age check(age between 0 and 150) );,约束,61,主外键约束 之前的四种约束都是在单张表中进行的,而主外键是在两张表中进行的,这两张表是存在父子关系的,也就是子表中的某个字段的取值范围由父表所决定。例如现在
23、要求表示出一种关系,每一个人有多本书,应该定义两种数据表 member(主) book(子),约束,62,create table member(mid number ,name varchar2(50) not null,constraint PK_mid primary key(mid);create table book (bid number ,title varchar2(50) not null,mid number,constraint PK_bid primary key(bid),constraint fk_mid foreign key(mid) references me
24、mber(mid);,约束,63,删除父表之前,必须删除字表 oracle之中专门提供一个强制性删除表的操作,在删除的时候加上一句 cascade constraint drop table member cascade constraint ; 或者 drop table member cascade constraint purge;,约束,64,索引 3-1,索引是与表相关的一个可选结构 用以提高 SQL 语句执行的性能 减少磁盘I/O 使用 CREATE INDEX 语句创建索引 在逻辑上和物理上都独立于表的数据 Oracle 自动维护索引,65,索引 3-2,B*树索引 位图索引,6
25、6,索引 3-2,索引有各种类型,除了标准索引外,还有一些特殊类型的索引:,索引的类型,基于函数的索引,反向键索引,位图索引,唯一索引,组合索引,67,索引 3-3,SQL CREATE UNIUQE | BITMAP INDEX . ON . ( | ASC | DESC, | ASC | DESC,.)TABLESPACE STORAGE LOGGING | NOLOGGINGCOMPUTE STATISTICSNOCOMPRESS | COMPRESSNOSORT | REVERSEPARTITION | GLOBAL PARTITION,68,索引 3-3,相关说明 1) UNIQUE
26、 | BITMAP:指定UNIQUE为唯一值索引,BITMAP为位图索引,省略为B-Tree索引。2) | ASC | DESC:可以对多列进行联合索引,当为expression时即“基于函数的索引”3)TABLESPACE:指定存放索引的表空间(索引和原表不在一个表空间时效率更高)4)STORAGE:可进一步设置表空间的存储参数5)LOGGING | NOLOGGING:是否对索引产生重做日志(对大表尽量使用NOLOGGING来减少占用空间并提高效率)6)COMPUTE STATISTICS:创建新索引时收集统计信息7)NOCOMPRESS | COMPRESS:是否使用“键压缩”(使用键压
27、缩可以删除一个键列中出现的重复值)8)NOSORT | REVERSE:NOSORT表示与表中相同的顺序创建索引,REVERSE表示相反顺序存储索引值9)PARTITION | NOPARTITION:可以在分区表和未分区表上对创建的索引进行分区,69,索引 3-3,SQL CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs;,创建标准索引,重建索引,SQL ALTER INDEX item_index REBUILD;,删除索引,SQL DROP INDEX item_index;,70,唯一索引,SQL C
28、REATE UNIQUE INDEX item_index ON itemfile (itemcode);,唯一索引确保在定义索引的列中没有重复值 Oracle 自动在表的主键列上创建唯一索引 使用CREATE UNIQUE INDEX语句创建唯一索引,71,组合索引,SQL CREATE INDEX comp_index ON itemfile(p_category, itemrate);,组合索引是在表的多个列上创建的索引 索引中列的顺序是任意的 如果 SQL 语句的 WHERE 子句中引用了组合索引的所有列或大多数列,则可以提高检索速度,72,反向键索引反转索引列键值的每个字节 通常建立
29、在值是连续增长的列上,使数据均匀地分布在整个索引上 创建索引时使用REVERSE关键字,反向键索引,SQL CREATE INDEX rev_index ON itemfile (itemcode) REVERSE;,SQL ALTER INDEX rev_index REBUID NOREVERSE;,73,位图索引,SQL CREATE BITMAP INDEX bit_index ON order_master (orderno);,位图索引适合创建在低基数列上 位图索引不直接存储ROWID,而是存储字节位到ROWID的映射 减少响应时间 节省空间占用,74,索引中的分区,可以将索引存储
30、在不同的分区中 与分区有关的索引有三种类型: 局部分区索引 在分区表上创建的索引,在每个表分区上创建独立的索引,索引的分区范围与表一致 全局分区索引 在分区表或非分区表上创建的索引,索引单独指定分区的范围,与表的分区范围或是否分区无关 全局非分区索引 在分区表上创建的全局普通索引,索引没有被分区,75,获取索引的信息,SQL SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME FROM USER_IND_COLUMNS ORDER BY INDEX_NAME, COLUMN_POSITION;,与索引有关的数据字典视图有: USER_INDEXES 用户创建的索引的信息 USER_IND_PARTITIONS 用户创建的分区索引的信息 USER_IND_COLUMNS 与索引相关的表列的信息,76,Oracle 9i 的安装和卸载,通过运行Oracle Universal Installer来安装和卸载Oracle数据库,选择 Oracle 9i Database .0 来安装数据库服务器。,选择 Oracle 9i Client .0 来安装 Oracle 客户端,启动Universal Installer,选择“卸装产品”,选中要卸载的组件,77,使用 Oracle 数据库的开发流程,服务器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省延边州2025-2026学年高一(上)期末物理试卷(含答案)
- 河南省漯河市临颍县晨中学校2025-2026学年上学期10月月考八年级数学试卷(含答案)
- 期中测试卷(含答案含听力原文无音频)2025-2026学年人教版英语八年级下册
- 无常题目及答案
- 望岳的题目及答案
- 新人教版九年级地理上册期末试卷(及答案)
- 天津博迈科海洋工程有限公司临港海洋重工建造基地一期工程环境影响补充报告简本
- 电气物联网技术要点
- 雅安荥经220kV变电站110kV间隔扩建工程建设项目环境影响报告表
- 数字摄影考试试题及答案
- 2026中国国际航空招聘面试题及答案
- (2025年)工会考试附有答案
- 2026年国家电投集团贵州金元股份有限公司招聘备考题库完整参考答案详解
- 复工复产安全知识试题及答案
- 中燃鲁西经管集团招聘笔试题库2026
- 资产接收协议书模板
- 数据中心合作运营方案
- 印铁涂料基础知识
- 工资欠款还款协议书
- 石笼网厂施工技术交底
- 2025至2030全球及中国经颅刺激器行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论