关于oracle10g数据库的学习-基本操作

最近花了些时间又把oralce 10g学了一下,参照中科院的一个培训,这是一个很经典的视频教程,讲课老师字字珠玑,里面也有很多应用场景的描述。

早在学校的时候就看过一些这方面的东西,现在再把学习过程中积累的一些东东拿出来跟大家分享。

 

先看

逻辑存储结构 

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。而其中的模式对象和关系形成了数据库的关系设计。

数据块(Block)

  是数据库进行UO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

段(Segment)

  是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。
  其中包括:
  数据段:用来存放表数据;.
  索引段:用来存放表索引;
  临时段:用来存放中间结果;
  滚段:用于出现异常时,恢复事务。

  范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依此分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。 

sqlplus sys/sym as sysdba


startup mount


修改数据库的归档方式

不能在数据库已经启动的情况下

只有先关闭数据库

然后打开控制文件不打开数据文件

修改归档方式

启动数据库实例


startup mount

alter database archivelog 

alter database open

启动实例不打开数据文件 startup nomount


shutdown immediate 迫使用户执行完当前的sql语句后断开与数据库的连接 常用


shutdown 正常关闭 等所有用户断开连接以后才关闭数据库实例

如果有用户长时间没有断开会造成无法关闭 很少用


shutdown transcational 迫使用户执行完当前的事务之后关闭数据库实例


shutdown abort 强行关闭 可能造成文件的破坏


isqlplus


http://siyaomin-pc:1158/em/console/logon/logon

http://siyaomin-pc:5560/isqlplus


标识符 (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=siyaomin-PC)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))


可以用sqlplus sys/sym as sysdba


查找帮助 help index

set sqlblanklines on 可以允许里面有空行

sqlplus 打开以后可以通过 con sys/sym as sysdba

可以用名字代替

select * from scott.dept d where d.deptno = 10;


可以通过替代变量的方式来提高查询效率

select * from scott.dept d where d.deptno=&dno;

然后给dno赋值

可以通过list来查看在查询缓冲区里面的查询语句 可以用一个l来代替list


如果是多行的 它把你输入的按行分配下来

select

*

from 

scott.dept


输入list

显示如下:

1select

2*

3from 

4scott.dept

可以通过l2 5 可以输出2到5行

用/来执行缓冲区里面的东西

如果输入有误的话也会在缓冲区里面有它的信息

可以修改

如 select * fronn scott.dept;

其中from 误写成了fronn 可以通过 c/fronn/from

删除缓冲区里面的信息 del3 多行 del 3 9

追加信息a 

如缓冲区里面已经有了select * from scott.dept d

我可以用a where d.deptno=10; 这样它就成了 select * from scott.dept


可以保存到文件 save c:\oracle\test.sql 最好是保存到oracle目录下面否则可能失败

它只是保留了一个查询语句 没有查询结果的信息


要执行一个文件 用@c:\oracle\test.sql

用get来得到脚本内容 get c:\oracle\test.sql

用edit 打开记事本 这里面有缓冲区里面的内容


可以用column 命令来设置表头heading 

如col scotts.dept.DEPTNO heading "编号"


desc 描述 describe


格式化输出 col scott.dept.dname format a10 heading "部门名称"

具体用法? col 

如果退出来这些标签就没有用了 只在当前的会话才起作用

对于数值类型的

col deptno format 999,999,999

这些操作不能跨越用户来执行比如a用户不能对b用户里面的表字段标签进行修改


报表 的输出

set linesize 50

ttitle center "我的报表" skip1- //另起一行

left "测试报表" right "页" -

format 999 sql.pno skip 2


可以用ttitle off 就清除了以上的格式


重要工具 cumpute break

break on pub

cump count label "计数" of deptno


保存结果集:

先执行这个语句 spool f:/oracle/dept.txt;

再执行查询操作select * from scott.dept d;

最后执行spool off

上面在执行spool off 之前 所有的操作在cmd里面显示的东西都会保存到f:/oracle/dept.txt;文件中

如果没有调用 spool off 就exit  那么oracle会自动的保存 

posted @ 2010-09-30 09:25  gege_s  Views(960)  Comments(0Edit  收藏  举报