是由实例(instance)和库文件组成的。
C:\>sqlplus / as sysdba;
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 7月 24 22:37:49 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
两种方法:
1.
SQL> select instance_name from v$instance;
INSTANCE_NAME
--------------------------------
orcl
2.
SQL> select name from v$database;//这种常用
NAME
------------------
ORCL
ps:凡是以 v$表名的表都为系统表
2种方法:
1.
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2.
SQL> shutdown abort; //此方法是强制关闭,少用。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 431038464 bytes
Fixed Size 1375088 bytes
Variable Size 289408144 bytes
Database Buffers 134217728 bytes
Redo Buffers 6037504 bytes
数据库装载完毕。
数据库已经打开。
startup命令实际上包含了三条命令来打开数据库。
1.
SQL> startup nomount; //启动数据库的参数文件
ORACLE 例程已经启动。
Total System Global Area 431038464 bytes
Fixed Size 1375088 bytes
Variable Size 289408144 bytes
Database Buffers 134217728 bytes
Redo Buffers 6037504 bytes
2.
SQL> alter database mount; // 启动数据库的控制文件
数据库已更改。
3.
SQL> alter database open; // 启动数据库的数据库文件和日志文件
数据库已更改。
SQL> select status from v$instance;
STATUS
------------------------
OPEN //open为正常
Oracle的功能由管理+开发完成
-
管理分为逻辑结构和物理结构
-
逻辑结构:表空间——段——区——数据块
-
物理结构:数据文件——OS块
-
ps:逻辑结构中的数据块和是和物理结构中的OS块相对应的。
pps: 一个表空间由一个或者多个数据文件组成,整个oracle是由表空间组成的。
查看表空间命令
SQL> select name from v$tablespace; // 查询系统自带的6个表空间
NAME
--------------------------------------
SYSTEM //系统表空间
SYSAUX //系统表空间
UNDOTBS1 //回滚表空间
USERS //用户表空间
TEMP //临时表空间
EXAMPLE //例子表空间
已选择6行。
一般用户的表空间分为数据表空间和临时表空间两种。
自定义数据表空间
SQL> create tablespace tbs1 datafile 'c:\tbs\tbs1.dbf' size 10m //基础语法
2 autoextend on next 1m //开启自增模式,每次增加1m
3 maxsize 20m; // 最大值为20m
表空间已创建。
ps:其中tbs1为表空间的名字,datafile表示数据文件,**'c:\tbs\tbs1.dbf'**表示数据文件存放的位置,size 10m表示初始大小。
自定义临时表空间
SQL> create temporary tablespace usertemptbs1 tempfile 'c:\tbs\tempdbs1.dbf' //基础语法
2 size 10m //初始值为10m
3 autoextend on next 1m //开启自增模式,每次增加1m
4 maxsize 20m; // 最大值为20m
表空间已创建。
ps:其中usertemptbs1为临时表空间的名字,tempfile表示临时文件,**'c:\tbs\tempdbs1.dbf'**表示临时文件存放的位置,size 10m表示初始大小。
删除表空间命令
SQL> drop tablespace tbs1; //表空间中无数据
表空间已删除。
SQL> drop tablespace tbs1 including contents; //表空间中有数据
表空间已删除。
创建用户命令
SQL> create user test identified by 123; //用户名为test,密码为:123
用户已创建。
切换用户
SQL> create user test identified by 123; //创建用户
用户已创建。
SQL> conn test/123; 切换用户
ERROR:
ORA-01045: user TEST lacks CREATE SESSION privilege; logon denied //登录不了数据库,因为没有登录权限
警告: 您不再连接到 ORACLE。
SQL> conn /as sysdba; // 切换到管理员账户
已连接。
SQL> grant connect to test; // 给test账户connect权限
授权成功。
SQL> conn test/123; //再次切换,登录成功。
已连接。
为用户创建的表指定表空间
SQL> create table stu1(id int, age int, name varchar(20)) tablespace tbs1;
create table stu1(id int, age int, name varchar(20)) tablespace tbs1
*
第 1 行出现错误:
ORA-01031: 权限不足 //因为新建的test用户只给了connect权限,没给resource权限(该权限涉及到表的创建、删除以及增删改查)。
SQL> conn /as sysdba;
已连接。
SQL> grant resource to test; //切换到管理员账户给test账户赋予resource权限。
授权成功。
SQL> conn test/123;//切换回test账户
已连接。
SQL> create table stu1(id int, age int, name varchar(20)) tablespace tbs1; // 建表同时为用户显式的指定表空间
表已创建。
查询用户中的表所在的表空间
SQL> create table stu2(id int, age int, name varchar(20)); //新建表stu2,不显式的指定表空间
表已创建。
SQL> select table_name,tablespace_name from user_tables; //查询用户中的表所在的表空间
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
STU1 TBS1
STU2 USERS //默认放在Users表空间中
为用户指定默认的数据表空间和临时表空间
SQL> alter user test default tablespace tbs1; //指定默认的数据表空间
User altered
SQL> alter user test temporary tablespace usertemptbs1; //指定默认的临时表空间
User altered
SQL> create table stu3(id int, name varchar(30), age int);//新建表stu3,没有显式的给该表指定表空间
Table created
SQL> select table_name,tablespace_name from user_tables;//查看用户的表和表所在的表空间
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
STU1 TBS1
STU2 USERS
STU3 TBS1 //默认表空间已经改成tbs1了