oracle笔记1

1、安装oracle后的基本查看

查看oracle的实例名称和服务器名称

select instance_name,host_name from v$instance;

查看oracle用户的名称,状态信息

select username,account_status from dba_users;

 

2、对oracle用户的基本管理

oracle默认值对sys、system、dbsnmp、sysman、mgmt_view用进行解锁

 

查询oracle用户状态

select username,account_status from dba_users;

用户状态

    open:解锁

    expired:过期

    locked:锁定

 

使用scott用户连接数据库

connect scott/tiger

 

一个用户处于锁定状态则无法使用该用户登录,也无法操作这个用户下的对象

使用system用户操作scott用户的表

select * from emp;

 

解锁scott用户

alter user scott account unlock;

为scott用户设置密码

alter user scott identified by tiger;

 

3、oarcle数据库结构

oracle数据从存储结构上可以分为物理存储结构和逻辑存储及诶过,从实例结构上分为内存结构和进程结构

1)物理机构

oracle的物理存储结构是有存储在磁盘中的操作系统文件组成的,oracle在运行时需要使用这些文件,一般,oracle数据在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)、重做日志文件(*.log)

 

数据文件是指存储数据数据的文件,数据库中的所有数据都保存在数据文件中。如果数据文件中的某些数据被频繁访问,则这些数据会被存储中内存的缓冲区中。读取数据是oracle系统先从内存缓存区中查找相关的数据信息,如果找不到,则从数据文件中把数据读取出来,存放到内存的数据缓冲区中,供查询使用。存储数据时,修改后的数据信息,也是闲存放在内存的数据缓存区中,在满足写入条件时,oracle的后台进程DBWN将数据写入数据文件

 

查询数据文件

select file_name from dba_data_files;

 

控制文件是一个很小的二进制文件,用于描述和维护数据库的物理结构,在oracle数据库中,控制文件相当重要,他存放数据库中数据文件和日志文件的信息。oracle数据库在启动是需要访问控制文件,在数据库使用过程中,数据库需要不断更新控制文件。

 

通过查看v$controlfile视图查看控制文件

select name from v$controlfile;

 

重做日志文件是记录数据库中所有修改信息的文件,简称日志文件。其中,修改信息包括数据库中的修改信息和数据结构的修改信息等,例如删除表中的一行数据或者审查表中的一个列。如果操作是进行查询操作,则该操作不会被记录到日志文件中。日志文件是数据库系统的最重要的文件之一,它可以保证数据安全,是进程数据库备份与恢复的重要手段。如果日志文件受损,数据库通用无法正常运行。

 

通过查询v$logfile试图查看日志文件

select * from v$logfile;

 

2)逻辑结构

Oracle数据库从逻辑存储结构上来讲,主要包括表空间、段、区和数据块。这4者之间存在如下关系:多个数据块组成一个区;多个区组成一个段;多个段组成一个表空间;而一个Oracle数据库由多个表空间组成。

 

数据库:包含多个表空间

    表空间:包含多可段

        段:有多个区

            区:有多个块

                块:规定值

 

表空间是oracle中最大的逻辑存储结构,他与物理上的一个或多个数据文件对应,每个oracle数据库都只是拥有一个表空间,表空间的大小等于构成该表空间所有数据文件的总和。表空间用于存储用户在数据空中创建的所有内容,例如用户在创建表空间时,可以指定多个表空间存储该表,如果用户没有指定表空间,则oracle系统将用户创建的内容存储到默认的表中将中

 

system:系统表空间,用户存储系统的数据字典,系统的管理信息和用户数据表

sysaux:辅助系统表空间。用于减少系统表空间的负荷,提高系统作业效率,该表空间由oracle系统自动维护,一般不用于存储用户数据

temp:临时表空间。用于存储临时的数据,例如存储排序时产生的临时数据。一般情况下,数据库中的所有用户都使用temp做默认的临时表空间

undotbsl:撤消表空间。用于在自动撤消管理方式下存储撤消信息。在撤消表空间中,处理回退段以外,不能建立任何其他类型的段。所以用户不可以在撤消表空间中建立任何数据库对象

users:用户表空间。用于存储永久性用户对象和私有信息

 

查看表空间

select tablespace_name from dba_tablespaces;

 

4、oracle数据字典

oracle数据字典是存储数据库中所有对象信息的知识库,oracle数据使用数据字典获取对象信息,安全信息,而用户和数据库管理则是以数据字典查询数据库信息

oracle数据库保存有数据库中对象和段的信息,例如表、视图、索引、包、存储过程、已经用户、权限、角色、审计、约束等相关信息。

 

USER试图:以user_为前缀的视图用来记录用户对象的信息,例如user_tables

ALL视图:以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息例如all_synonyms试图

DAB视图:以dba_为前缀,用来记录数据库实例的所有对象信息。例如dba_tables

V$视图:用来记录与数据库活动相关的性能统计动态信息。例如v$datafile

GV$视图:用来记录分布式环境下所有实例的动态信息。例如gv$lock

 

 

dba_tables :所有用户的所有表的信息

dba_tab_columns:所有用户的表的字段信息

dba_views:所有用户的所有视图信息

dba_synonyms:所有用户的同义词信息

dba_sequences:所有用户的序列信息

dba_constraints:所有用户的表约束信息

dba_indexes:所有用户的表的索引简要信息

dab_ind_columns:所有用户的索引的字段信息

 

 

与数据组件相关的数据字典

组件    数据字典中的表或者视图  说明

数据    v$datafile              记录系统运行的情况

表空间  dba_tablespaces         系统表空间的基本信息

        dba_free_space          系统表空间的空闲空间的信息

控制文件v$controlfile           系统控制文件的基本信息

        v$controlfile_record_section   系统控制文件中记录文档段的信息

        v$parameter             系统各参数的基本信息

数据文件dab_data_files          系统数据文件以及表空间的基本信息

        v$filestat              来自控制文件的数据库文件信息

        v$datafile_header       记录数据文件头部的基本信息

 

动态性能视图

v$fixed_table   显示当前发行的固定对象的说明

v$instance      显示当前实例的信息

v$latch         显示所存储器的统计数据

v$librarycache  显示有关库缓存性能的统计数据

v$rollstat      显示联机的回滚段的名字

v$rowcache      显示活动数据字典的统计

v$sga           显示有关系统全局区的总结信息

v$sgastat       显示有关系统全局区的详细信息

v$sort_usage    显示临时段的大小及会话

v$sqlarea       显示sql区的sql信息

 

select table_name,tablespace_name,owner from dba_tables where owner='SCOTT';

select username,terminal from v$session where username is not null;

select instance_name,host_name,status from v$instance;

 

5、sqlplus

sqlplus常用命令

help [topic] 查看命令的使用方法,topic表示需要查看的命令名称,例如help desc

host:使用该命令可以从sqlplus环境切换到操作系统环境以

host 操作系统命令:执行操作系统命令,例如host netepad.exe

clear scr[eed]:清除屏幕内容,scr是scream的缩写

show [all|user|sga|errors|rel[ease]|parameters:查看sql的作用系统变量值信息、当前是哪个用户在使用sqlplus、显示sga、查看错误信息、数控版本信息、系统初始参数信息

desc[ribe]:查看对象的结果,这里的对象可以是表,视图,存储过程,函数和包等。

 

 

编辑sql语句

在sqlplus执行过一条sql语句后会保持在缓冲区中,缓存区只会保存1条

命令                说明

A[PPEND] txt         将text附加到当前执行之后

C[HANGE] /old/new    将当前行中的old替换为new

CL[EAR] BUFF[ER]    清除缓冲区中的所有行

I[NPUT] text        插入指定的文本text

DEL m n             删除从第m行到第n行之间的的命令

L[IST] n            列出第n行

R[UN]或 /           显示缓冲区中保存的语句,并运行这些语句

n                   将第n行作为当前行

n text              使用text文本替代第n行信息

0 text              在第一行之前插入text文本

 

 

sav[e] [file] file_name [cre[ate]|rep[lace]|app[end]]

SAVE file_name CREATE   创建一个文件将缓冲区中的你让保存到该文件,这是默认选项

SAV file_name CRE

 

SAVE file_name REPLACE  将缓存区的内容追加到一个已经存在的文件中

SAV file_name REP

SAVE file_name APPEND   将缓存区的内容覆盖到一个已经存在的文件中

SAV file_name APP

 

file_name可以是一个完整的路径,也可以只指定文件名称

 

使用get命令的语法

get [file] file_name [list|nolist]

语法说明:

    file_name:表示一个指定文件,将该文件的内容读入sqlplus缓冲区中。如果不指定路径就是使用sqlplus登录时所在的路径

    list:列出缓冲区中的语句

    nolist:不列出缓存区中的语句

 

 

start可以读取文件中的命令,到缓冲区,然后在sqlplus中运行这些内容

sta[rt] {url|file_name}

语法说明

    url:用来指定一个url地址,例如http://host.domain/script.sql

    file_name:指定一个文件。该命令将file_name文件的内容读入缓冲区,然后运行

 

SQL> start test.txt

 

    DEPTNO JOB      MGR SAL DEPTNO

———- ————————— ———- ———- ———-

20 CLERK     7788 1100     20

30 CLERK     7698 950     30

20 ANALYST     7566 3000     20

10 CLERK     7782 1300     10

可以是@符号代替start命令

SQL> @ test.txt

 

    DEPTNO JOB      MGR SAL DEPTNO

———- ————————— ———- ———- ———-

20 CLERK     7788 1100     20

30 CLERK     7698 950     30

20 ANALYST     7566 3000     20

10 CLERK     7782 1300     10

发表评论