oracle基础

1 oracle数据库基础

Oracle数据库简介

Oracle数据库特点

Oracle会话: Oracle客户端与服务端进行连接,相应的用户进程与服务端进程之间的通信称为会话(Session)
            当用户与服务器建立连接时创建会话,当用户与服务器断开连接时关闭会话.

Oracle安装

Oracle相关服务

Oracle服务说明:
OracleServiceSID
      该服务启动系统标识符为SID的数据库实例,其中 SID 是在安装时输入的数据库名称

OracleHOME_NAMETNSListener
该服务启动数据库服务器的监听器,监听器接受来自客户端应用程序的连接请求
若监听器未启动,则客户端将无法连接到数据库服务器

OracleDBConsoleorcl
      负责在window下启动 Oracle企业管理器,从10g开始引入该服务,
      也是从10g开始oracle的企业管理器从客户端形式变成浏览器操作模式
OracleOraDb10g_home1iSQL*Plus
      浏览器模式管理数据库:http://127.0.0.1:5560/isqlplus/   

OracleJobSchedulerORCL
      数据库工作日程调度,一般没有安排工作日程就不需要启动,为什么默认是禁用?因为启动后会占用很大的系统资源。

Oracle网络配置:

              D:\oracle\network\ADMIN
              listener.ora  服务器端配置监听器
              tnsnames.ora  客户端配置网络服务名
             
Oracle默认用户:
Sys 超级管理员,拥有数据库管理的最高权限。
    System  系统管理员,拥有数据库系统和用户管理的权限。
    Scott   测试用户。
******************************************************************    

  Oracle的逻辑结构和物理结构:?????????????、

******************************************************************
2 sql*plus工具的使用 (dos)

sql*plus概念
sql*plus登录Oracle

sql> sqlplus "sys/sys as sysdba"
sql> sqlplus "/ as sysdba"
sql> sqlplus "system/oracle"
sql> sqlplus "scott/tiger"

sql> sqlplus /nolog;  //表示使用SQL*PLUS开始,并没有登录到oracle数据库,需要使用connect连接oracle数据库
sql> connect sys/sys as sysdba
sql> sqlplus scott/tiger@tns_name//指定数据库连接标识符orcl


sql*plus常用命令
Connect/conn:切换用户连接
Spool:假脱机文件(将操作信息输出到文件中:spool----开始到sql>spool off;之间的数据--一次会话结束)。
Spool 日志名称;(create/replace/append)
Spool off;
Desc:查看表(对象)结构命令,如:desc 表名
describe emp;
@:执行一个SQL脚本命令如:@ 脚本路径 .sql
-------------@ e:\xxx.sql 注意文件路径不能出现空格
start:执行一个SQL脚本命令,如start 脚本路径
@@:在一个脚本文件中执行另一个脚本

********************************************************************
3 SQL语言(DDL,DCL) (dos)

SQL概念: Strutcted Query Language:结构化查询语言

SQL四个部分:
1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema.

DDL是SQL语言的四大功能之一。
用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束
DDL不需要commit.
CREATE/ALTER/DROP/TRUNCATE/COMMENT/RENAME

2.DML(Data Manipulation Language)数据操纵语言statements are used for managing data within schema objects.

由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作。
DML分成交互型DML和嵌入型DML两类。
依据语言的级别,DML又可分成过程性DML和非过程性DML两种。
需要commit.
SELECT/INSERT/UPDATE/DELETE/MERGE/CALL/EXPLAIN PLAN/LOCK TABLE

3.DCL(Data Control Language)数据库控制语言  授权,角色控制等
GRANT 授权
REVOKE 取消授权

4.TCL(Transaction Control Language)事务控制语言
SAVEPOINT 设置保存点
ROLLBACK  回滚
SET TRANSACTION

SQL与oracle交互过程

********************************************************************

通过SQL创建及删除表空间

  create tablespace t_space
  datafile 'e:\xxx.dbf'
  size 5M
  autoextend on
  next 2m
  maxsize 100m;

    drop tablespace xxx; 如果该表空间没有任何数据库对象
    drop tablespace xxx including contents ;如果该表空间含数据库对象
    drop tablespace xxx including contents and datafiles ;如果要删除它对应的数据文件;
   
    alter tablespace xxx read only; 只读---该表空间内的数据库对象都是只读的(如:不能往该表空间下的表插数据)
    alter tablespace xxx read write; 恢复读写状态
   
    alter tablespce xxx rename to new_xxx; 改名
   
    增加表空间的存储空间:
   
    1 添加文件
   
    1-1 添加数据文件:
   
    alter tablespce xxx
    add datafile '新数据文件路径.dbf' size 10M;
   
    1-2 添加临时文件:
   
    alter tablespce xxx
    add tempfile '临时文件.dbf' size 10M reuse; //如果该文件已经存在,则添加失败---如果要覆盖同名文件,则必须加reuse
   
    2 改变数据文件的大小:
   
    2-1 设置数据文件为自动增长 autoextend on/off next 2M maxsize 500M ;
   
    可以在该文件创建的时候设置,也可以在该文件创建之后进行修改
   
    alter database datafile '数据文件路径.dbf' autoextend on next 512k maxsize 250m;
   
    取消自动增长:
   
    alter database datafile '数据文件路径.dbf' autoextend off;
   
    2-2 手动改变数据文件的大小
   
    alter database datafile '数据文件路径.dbf' resize 500m;//注意修改后的大小足够容纳其中已有的数据

********************************************************************

  创建/修改/删除用户
   
    创建用户:
    create user u1 identified by 111111
    default tablespace t_space
    quota 128m on users         //表空间的占有量
    temporary tablespace temp   //临时表空间
    password expire;            //强制用户在每次登录之后必须修改密码
   
  修改密码:
    alter user u1 identified by 222222;
   
  锁定账户(dba)
    alter user u1 account lock;
  解锁
    alter user u1 account unlock; 
   
  删除账户
    drop user u1 cascade; 
   
********************************************************************

权限与角色的操作:

1 为用户赋权限

角色权限
grant connect,resource to JN0909 [with admin option];
系统权限
grant Create any Table to JN0909;
对象权限
grant Select on 用户名.表名 to JN0909;

  2 回收用户权限

revoke 角色权限/系统权限/对象权限 from 用户名。

revoke Select On 用户名.表名 from jn0909;

3 查看权限的系统表
user_sys_privs;查看用户拥有哪些系统权限

user_tab_privs;查看用户拥有哪些对象权限

role_sys_privs;查看用户拥有哪些角色权限

********************************************************************
   
System用户密码忘记:
A:以SYS用户登录修改

SYS用户密码忘记:
A:修改数据库的用户验证机制
sqlnet.ora中更改用户验证机制
SQL>conn / as sysdba;
SQL>alter user sys identified by 新密码;
将验证改为NONE。

NTS:操作系统验证

NONE:数据库验证

B:重建密码文件

C:\oracle\ora92\database\PWD+SID.ora存放数据库Sys用户的密码。

  C:\>orapwd file=C:\oracle\ora92\database\PWD+Sid.ora password=新密码

要重新启动数据库服务
4、oracle配置文件说明
(1)listener文件说明
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = RX-01-07)(PORT = 1521))
    )
  )
 
D:\oracle\network\ADMIN:
 
LISTENER       指出一个监听器定义的起始点。它实际上是正被定义的当前监听器的名称。默认的名称是LISTENER。
DESCRIPTION    描述每个监听位置
ADDRESS_LIST   含有与监听器正在监听的那些位置有关的地址信息
PROTOCOL       指定用于本监听位置的协议
HOST           保存监听器所驻留在的那台计算机的名称
PORT           含有监听器正在上面监听的地址
SID_LIST_LISTENER  定义配置监听器所针对的ORACLE服务的列表
SID_DESC       描述每个Oracel SID
GLOBAL_DBNAME  标识全局数据库名称。本项应该与当前Oracle服务的init.ora文件中的SERVICE_NAMES项一致
ORACLE_HOME    给出服务器上Oracle可执行程序的位置
SID_NAME       含有用于本Oracle实例的Oracle SID的名称
(2)sqlnet文件说明
sqlnet.ora

设置windows验证及监听

SQLNET.AUTHENTICATION_SERVICES= (NTS)

默认windows验证


SQLNET.AUTHENTICATION_SERVICES= (NONE)

oracle验证


SQLNET.AUTHENTICATION_SERVICES= (NTS,NONE)

默认windows验证+oracle验证
(3)tnsnames文件说明
可以在客户端机器上使用oracle Net Configuration Assistant或oracle Net Manager图形配置工具对客户端进行配置,该配置工具实际上修改tnsnames.ora文件。

    所以我们可以直接修改tnsnames.ora文件,下面以直接修改tnsnames.ora文件为例:
    该文件的位置为:    …\network\admin\tnsnames.ora (for windows)
                        …/network/admin/tnsnames.ora (for unix)
    此处,假设服务器名为orcl,使用的侦听端口为1521,则tnsnams.ora文件中的一个test网络服务名(数据库别名)为:
   
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = windy-PC)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )


    PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。
    HOST:数据库侦听所在的机器的机器名或IP地址,数据库侦听一般与数据库在同一个机器上,所以当我说数据库侦听所在的机器一般也是指数据库所在的机器。

    在UNIX或WINDOWS下,可以通过在数据库侦听所在的机器的命令提示符下使用hostname命令得到机器名,或通过ipconfig(for WINDOWS) or ifconfig(for UNIX)命令得到IP地址。

    需要注意的是,不管用机器名或IP地址,在客户端一定要用ping命令ping通数据库侦听所在的机器的机器名,否则需要在hosts文件中加入数据库侦听所在的机器的机器名的解析。
    PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。
    SERVICE_NAME:在服务器端,用system用户登陆后,

    sqlplus> show parameter service_name 命令察看。

你可能感兴趣的:(oracle)