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 命令察看。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值