`
atgoingguoat
  • 浏览: 196764 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

oracle 9i 学习 过程

阅读更多
  1. 启动

 

之前已经安半了数据 oracle 9i ,很久没发,用 plsql 连,出现:ORA-12514 。在网上看了。

是:C:\oracle\ora92\network\admin\tnsnames.ora 文件,没有配置本地的数据,通过C:\oracle\ora92\network\admin\listener.ora 看到信息在tnsnames.ora 文件增加了配置如下:

 

oracle9i =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =baobao)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oracle9i)
    )
  )

 

就OK了。

 

 

2.Oracle9i创建表空间

用sys帐号登陆,连接身份选SYSDBA,执行如下语句

// 创建表空间
drop tablespace test;

create tablespace test

DATAFILE 'D:\oracle\oradata\test\test.dbf'
size 10M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;

alter user scott quota unlimited on test;
commit;

创建了一个名为test的表空间,数据库文件创建 在D:\oracle\oradata\test\test.dbf,并给scott 帐号授权使用表空间。

//创建scott用户 并分配表空间

drop user scott cascade;
create user scott
identified by tiger
default tablespace test
quota 100M on test;
commit;

//创建完毕后授权

Grant connect,resource,DBA to scott;

 

//sql plus 中执行.sql 文件

@d:\xzsp_hrb_oracle_doc.sql

//创建一个名为manager的角色

create role manager;

//给manager这个角色授于相应的系统权限

grant create table,create view,create session to manager;

//授予针对某个对象的权限如查询某个表的权限

grant select on 表名字 to manager; //可以把一个权限同时赋予多个角色或者用户,但不能把多个权限同时赋予多个角色或者用户,需分开执行。

//把manager这个角色分配给scott,xzsp两个帐号。

grant manager to scott,xzsp;

//修改帐号scott密码为tiger

alter user scott identified by baobao;

//scott用户建的表,如果想给其他用户权限则必须用scott用户登陆后执行如下语句,即使你是DBA也不把   

一个用户(scott)所创建的表赋予给另外一个用户(xzsp)操作的权限,除非scott用户给DBA授权。

grant select on 表名字 to xzsp;

grant select on employees to scott,xzsp;

//用scott用户登陆 给system授权

grant select on student to system with grant option;

//用system 登陆,再把查询student的权限授予另外一个用户。

grant select on scott.student to xzsp;

//system同时可取消xzsp用户的该权限。

revoke select on scott.student from xzsp;

权限传递的级联:scott用户把权限给A(同时允许A传递给其他用户 with grand option),A把权限再传递给B,如果scott用户撤消A的权限,则B也会失去相应的权限。

grant update (department_name,location_id) on departments to scott,xzsp; //授予用户修改某个表中指定字段的权限。

grant select,insert on departments to scott with grant option; //把查询,增加departments表的权限给scott用户并允许他把权限授予给其他拥护。

grant select on scott.departments to public; //授予public 角色查询scott下departments表的权限。

//访问其他数据库对象(database links)

create public database link hq.acme.com using 'sales';

select * from emp@hq.acme.com      //emp为表名

 

CREATE USER 创建一个用户(通常由DBA来完成)。

GRANT 给于其他用户使用你自己对象的权限。

CREATE ROLE 创建一个权限的集合,即角色。

ALTER USER 修改一个用户的密码。

REVOKE 撤消一个用户在某个对象上的权限,如 表 视图等。

 

3.导入导出

 

exp scott/123456 owner=scott file=d:/scott.dmp log=d:/scott.log

exp asxa/123456@192.168.1.132 owner=mmsa file=d:/scott.dmp log=d:/scott.log

 

imp scott/123456 fromuser=asxa touser=scott file=d:/scott.dmp

 

USERID 用户名/口令
FULL 导出整个文件 (N)
BUFFER 数据缓冲区的大小
OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 导入一个范围 (Y)
RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y)
INCTYPE 增量导出类型
INDEXES 导出索引 (Y)
RECORD 跟踪增量导出 (Y)
ROWS 导出数据行 (Y)
PARFILE 参数文件名
CONSTRAINTS 导出限制 (Y)
CONSISTENT 交叉表一致性
LOG 屏幕输出的日志文件
STATISTICS 分析对象 (ESTIMATE)
DIRECT 直接路径 (N)
TRIGGERS 导出触发器 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
FILESIZE 各转储文件的最大尺寸
QUERY 选定导出表子集的子句

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TABLESPACES 将传输的表空间列表

 

 

USERID 用户名/口令
FULL 导入整个文件 (N)
BUFFER 数据缓冲区大小
FROMUSER 所有人用户名列表
FILE 输入文件 (EXPDAT.DMP)
TOUSER 用户名列表
SHOW 只列出文件内容 (N)
TABLES 表名列表
IGNORE 忽略创建错误 (N)
RECORDLENGTH IO 记录的长度
GRANTS 导入权限 (Y)
INCTYPE 增量导入类型
INDEXES 导入索引 (Y)
COMMIT 提交数组插入 (N)
ROWS 导入数据行 (Y)
PARFILE 参数文件名
LOG 屏幕输出的日志文件
CONSTRAINTS 导入限制 (Y)
DESTROY 覆盖表空间数据文件 (N)
INDEXFILE 将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)
ANALYZE 执行转储文件中的 ANALYZE 语句 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
TOID_NOVALIDATE 跳过指定类型 id 的校验
FILESIZE 各转储文件的最大尺寸
RECALCULATE_STATISTICS 重新计算统计值 (N)

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
TABLESPACES 将要传输到数据库的表空间
DATAFILES 将要传输到数据库的数据文件
TTS_OWNERS 拥有可传输表空间集中数据的用户

 

 

 

 

 

 

 

 

 

 

 

 

 

------------------------------查看用户权限--------------------------------------------------------------

1.查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用户或角色系统权限:
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Oracle 9i基本SQL操作


---------重命名表------
Rename HR_BASE_CATEGORY To HR_TEMP_TABLE;

----------把一个表的数据拷到另一个相同结构的表
Insert Into HR_BASE_CATEGORY Select
 CATEGORY_ID,
 CATEGORY_NAME,
 CATEGORY_ALIAS,
 CATEGORY_DESC,
 MODULE_ID,
 MODULE_NAME,
 SORT_ORDER
From HR_TEMP_TABLE;

---------创建表----------

-- 创建班级表

Create table class
(
 class_id  varchar2(10) not null primary key, --主键
 class_name varchar2(10) not null,
 class_create date default sysdate,
 class_number number(2,0),
 class_remark  varchar2(50)
)

-- 删除表class

drop table class cascade constraint;


-- 创建学生表
create table student
(
 stu_id varchar2(10) not null primary key,
 stu_name varchar2(8),
 stu_gender integer default 0,
 stu_birthday date,
 stu_from varchar2(20),
 stu_tel varchar2(14),
 stu_dorm varchar2(8),
 stu_class_id varchar2(10)
)


--创建课程表
create table course
(
course_id varchar2(6) not null primary key,
course_name varchar2(16),
course_book varchar2(30)
)

drop table course cascade constraint;


--创建成绩表
create table score
(
score_stu_id varchar2(10) not null ,
score_course_id varchar2(6) not null,
score_pingshi  number(5,2),
score_final number(5,2),
score_Total number(5,2) --总成绩
)


--------修改表---------

alter table student add  email varchar2(30);         ------在学生表中增加字段:email地址;-------

alter table course modify course_book varchar2(36);  ------增加课程表字段"教科书"的长度;-------

alter table score modify score_Total default 0;    ------设置成绩表的总评成绩字段缺省值为0;-----


--------创建视图----------
如果你在创建视图时使用了DISTINCT语句,那么你就不能插入或更新这个视图中的记录
create view student_view(stu_name,course_name,score_info)
as
select student.STU_NAME , course.COURSE_NAME , score.score_Total
from student,score,course
where student.STU_ID = score.SCORE_STU_ID
    and course.COURSE_ID = score.SCORE_COURSE_ID;


--------创建索引----------

create index score_index on score(score_stu_id,score_course_id);

--------约束条件的创建-------


--------创建主键---------

--如果在表创建时已创建主键,可不再单独创建主键

alter table class add constraint pk_class_id primary key;

alter table student add constraint pk_stu_03 primary key;

alter table score add constraint pk_score_03 primary key;


----------创建外键---------

alter table student add constraint fk_class foreign key (stu_class_id) references class(class_id);

alter table score add constraint fk_stu_id foreign key(score_stu_id) references student(stu_id);

alter table score add constraint fk_course_id foreign key(score_course_id) references course(course_id);


----------创建check约束---------

alter table student add constraint ck_stu_gender check( stu_gender in (0,1) );


----------插入数据 和 事务控制语句------------

insert into class values(031,jsj,to_date(2003-09-01,yyyy-mm-dd,30,good);
insert into class values(032,xg1,to_date(2003-09-01,yyyymm-dd,26,good);

insert into student
values(001,xinhe,0,to_date(1977-09-22,yyyy-mm-dd),hunan,135,e208,031wxinhe2004@126.com);

insert into student values(002,huarong,0,to_date(1977-09-22,yyyy-mm-dd),hunan,135,e209,032,wxin004@126.com);

insert into course values(001,c++,jixietushu);
insert into course values(002,shujuku,qinghuatushu);

insert into score values(001,001,90.00,90.00,90.00);
insert into score values(002,001,80.00,80.00,80.00);

commit;


----------修改数据 和 事务控制语句------------

update course set coursename=cyuyan where coursename=c++;
update student set name=wangxinhe where name=xinhe;
update class   set appendxi=average where classid=032;
update score set totalscore=95.0 where totalscore=90.00;

commit;

----------修改数据 和 事务控制语句------------
delete course where coursename=c++;
rollback;

delete student;

delete score;

delete class;

commit;


------------多表连接查询语句-----------

1)查询学生名称、编号、性别、生日(按yyyy-mm-dd显示)、所在班级的名称,其中,0显示为“男”,1显示为“女”(decode函数);

  select a.stu_name ,a.stu_id , decode(a.stu_gender,0,男,1,女) 性别,
       to_char(a.stu_birthday,yyyy-mm-dd) 出生日期, b.class_name
  from student a,class b
  where a.stu_class_id=b.class_id;


2)查询学生的各门功课的平时成绩、期末成绩和总评成绩;

   select a.stu_id,a.stu_name, b.course_name, c.score_pingshi 平时,c.score_final 期末,c.score_Total 总成绩
   from student a,course b, score c
   where  a.stu_id = c.score_stu_id
       and b.course_id = c.score_course_id


3)查询姓名XX所在班级所有学生信息(嵌套查询);

   select * from student where stu_class_id =
       (select stu_class_id from student where stu_name=xinhe);


4)查询课程编号为“xxx”和“xxx”的学生成绩信息(集合查询);

   select stu_id,score_Total  from score  where score_course_id = 001 
   union
   select stu_id,score_Total  from score  where score_course_id = 002;


5) 查询各班每门功课的最好成绩;
   
   select A.stu_class_id, B.score_course_id, max(score_Total)
   from student A,score B
   where A.stu_id=B.score_stu_id
   group by A.stu_class_id, B.score_course_id

 

分享到:
评论

相关推荐

    Oracle9i学习资料(零基础)

    这份"Oracle9i学习资料(零基础)"显然是为了帮助初学者快速掌握Oracle数据库的基础知识和技能。 在学习Oracle9i之前,首先要了解数据库的基本概念。数据库是一个组织和存储数据的系统,它允许用户以结构化方式访问...

    oracle9i310.rar

    "oracle9i310.rar" 是一个压缩包,其中包含了Oracle 9i的简化客户端版本,适用于在虚拟机、老旧计算机或Windows XP系统上运行。由于其资源占用较小,因此特别适合这些环境下使用,同时也能连接到更高版本的Oracle...

    Oracle 9i 参考手册

    "游侠下载站使用说明.txt"可能是对获取和安装Oracle 9i的辅助指南,而"Oracle(CHM)"可能是一个包含Oracle 9i详细技术文档的离线帮助文件,用户可以通过查阅这个文件来学习和解决具体问题。 总的来说,Oracle 9i参考...

    oracle9i教程

    通过深入学习《Oracle9i教程》,读者不仅能理解数据库的基本概念,还能掌握实际操作和管理Oracle数据库的技能,为成为合格的数据库管理员或开发者奠定坚实基础。无论是初学者还是经验丰富的专业人士,都能从这个教程...

    Oracle9i学习资料

    7. 安全性:学习如何设置用户权限、角色和审计,以及如何保护数据库免受恶意攻击,是Oracle9i学习的重要部分。 8. 备份与恢复:Oracle9i提供了多种备份和恢复策略,包括物理备份、逻辑备份和RMAN(Recovery Manager...

    Oracle 9i初学者指南

    在学习Oracle 9i时,首先需要理解数据库的基本概念,如关系型数据库模型、表、索引、视图等。关系型数据库模型基于二维表格,通过字段和记录来存储数据。在Oracle 9i中,创建数据库需要规划数据表结构,定义字段类型...

    Oracle9i中文版基础培训教程

    本教程“Oracle9i中文版基础培训教程”由赵松涛制作,旨在帮助初学者掌握Oracle 9i的基本操作和概念,对于那些从其他数据库系统(如MySQL)转而学习Oracle的人来说,这是一个宝贵的资源。 Oracle数据库系统的核心...

    Oracle9i学习精解版3

    本资源“Oracle9i学习精解版3”提供了对这个系统深入理解的材料,对于想要掌握Oracle9i技术的初学者或进阶用户来说,是一份非常有价值的参考资料。 首先,我们来探讨Oracle9i的一些核心特性: 1. **数据存储**:...

    Oracle 9i10g 数据库管理详细

    ### Oracle 9i/10g 数据库管理详细知识点 #### 一、Oracle 9i/10g 概述 - **Oracle 9i** 和 **Oracle 10g** 是Oracle公司推出的两个...通过深入学习这些内容,可以更好地理解和掌握Oracle数据库的管理和运维技巧。

    Oracle 9i Web开发指南

    通过深入学习Oracle 9i Web开发指南,开发者将掌握如何利用这些技术构建健壮、高效的Web应用,满足企业级的需求。该指南涵盖了从基础概念到高级特性的全面教程,对于希望在Oracle平台上进行Web开发的人员来说,是一...

    oracle9i入门手册

    除此之外,手册可能还会涉及Oracle9i的其他高级特性,如存储过程、触发器、存储函数的编写,以及PL/SQL的使用。这些内容可以帮助开发者更好地利用Oracle9i进行数据库应用开发。 总之,Oracle9i入门手册是一份全面的...

    Oracle 9i DBA 手册

    1. **安装与配置**:了解如何规划和执行Oracle 9i的安装过程,包括选择合适的安装选项,配置网络服务,以及创建数据库实例。此外,手册还会讲解如何进行数据库升级和迁移。 2. **数据存储与管理**:深入理解Oracle...

    oracle9i全套资料

    本套资料全面涵盖了Oracle9i的相关知识,包括安装配置、数据库管理、编程进阶以及系统开发等多个方面,对于学习和掌握Oracle数据库技术具有极大的帮助。 首先,我们来看"2.构件环境---安装oracle9i"部分。这部分...

    oracle9i数据库课件

    通过这些课件,学习者可以全面了解Oracle9i数据库的各个方面,从基础操作到高级开发,再到系统管理和故障恢复,涵盖了成为一名合格的Oracle DBA所需的知识点。对于想要深入理解Oracle数据库的人来说,这是一个宝贵的...

    Oracle9i学习精解版2

    本资源“Oracle9i学习精解版2”显然是一份详细的教程资料,旨在帮助学习者深入理解并掌握Oracle9i的相关知识。尽管描述中提到的密码问题与知识点无关,但我们可以从这个资源的标签和包含的文件名推测,这可能是一个...

    Oracle9i学习精解版1.rar

    本资源“Oracle9i学习精解版1.rar”包含了三部分PDF文档,分别是1.pdf、2.pdf和3.pdf,它们很可能是教程的章节或部分,旨在帮助用户深入理解和掌握Oracle9i的相关知识。 Oracle9i的学习涵盖了许多关键领域: 1. ...

    安装和配置 Oracle 9i

    这种方式不仅降低了学习和开发Oracle RAC的门槛,还使得开发者能够在没有高端硬件设施的情况下探索和实践Oracle 9i RAC的功能。对于希望深入了解Oracle RAC的个人和组织而言,这是一个宝贵的机会。 总之,尽管...

    Oracle9i中文基础教程

    最后,Oracle9i还提供了PL/SQL,这是一种增强的SQL,支持过程化编程。通过学习PL/SQL,你可以编写存储过程、触发器和函数,进一步扩展数据库的功能。 总的来说,"Oracle9i中文基础教程"将带你走进数据库的世界,让...

Global site tag (gtag.js) - Google Analytics