Oracle基本操作
时间:2011-04-02 来源:edisonfeng
基本操作一: 创建表空间和新用户,并完成授权
1.背景知识:
数据库实例,用户,表空间,数据文件之间的关系?
数据库实例:用户1、用户2、用户3……
表空间1、表空间2、表空间3……
表空间: 数据文件1、数据文件2、数据文件3……
注:表空间和用户之间没有隶属关系。一个用户可使用多个表空间,一个表空间也可供多个用户
使用。
2.基本操作
A.创建表空间
a)创建一个临时表空间
create temporary tablespace EdisonTableSpc_Temp
tempfile 'F:\oracle\product\10.1.0\oradata\orcl\EdisonTableSpc_Temp.dbf'
size 200m
autoextend on next 20m
maxsize 2048m;
b)创建第一个数据表空间
create tablespace EdisonTableSpc_Data_A
datafile 'F:\oracle\product\10.1.0\oradata\orcl\EdisonTableSpc_Data_A.dbf'
size 200m
autoextend on next 20m
maxsize 2048m;
c)创建第二个数据表空间
create tablespace EdisonTableSpc_Data_B
datafile 'F:\oracle\product\10.1.0\oradata\orcl\EdisonTableSpc_Data_B.dbf'
size 200m
autoextend on next 20m
maxsize 2048m;
注: Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需
要对查询的中间结果进行排序。重启数据库可以释放临时表空间,如果不能重启实例,而一直
保持问题sql语句的执行,temp表空间会一直增长.
B.创建新用户并授权
a)创建用户并指定默认表空间
create user edison
identified by edison
default tablespace EdisonTableSpc_Data_A
temporary tablespace EdisonTableSpc_Temp;
b)对新创建的用户进行授权
1)方式一:角色授权
grant connect,resource to edison;
注:此时Edison将拥有connect,resource这两个角色的权限
2)方式二:直接授权
CRANT SELECT,INSERT,UPDATE,DELETE,ON USERS TO Edison;
注:可以通过role_sys_privs表查询角色权限,例如,查询connect角色的权限,如下:
select * from role_sys_privs where role='CONNECT';
附:完整对创建,修改,删除表空间和用户的说明:
http://wenku.baidu.com/view/cf219708581b6bd97f19eac8.html
基本操作二: 创建新表并向其总添加数据
1.背景知识:
每个用户都有自己默认的表空间,创建新表时,用户如果不指定存到哪个表空间时,系统
将会把表存到该用户默认的表空间中.
2.基本操作
A.创建新表
a)存入默认的表空间
Create Table TestTable
(
StaffId varchar(20) not null,
StaffName varchar(20) default '',
primary key(StaffId)
)
b)存入指定的表空间
xxxxxxxx
B.像表中添加数据
a)添加单条数据
insert into TestTable( staffID,staffName)
values
('0001','TonyPark')
b)添加多条数据
1)从其他表中导入
insert into TestTable(staffID,staffName)
select staffID,staffName
from TestTable_2
where ...(条件.)
2)新数据录入
在Excel中写好,第一列要为空,然后直接复制粘贴到PLSQL中。
粘贴之后,先F8再F10
注:Excel中可设置列数据的类型
基本概念:
1.DDL、DML是什么?
DDL:数据定义语言,具体为:数据库创建,数据库删除,表创建,表删除等
DML:数据操纵语言,具体为:insert、delete、update、select
2.命令窗口和SQL窗口的区别?
命令窗口:类似于sqlplus,基本上命令都可以执行
SQL窗口:执行命令有很大限制,仅可执行DDL、DML等
3.查看表空间和物理数据文件之间的关系?
select * from sys.dba_data_files;
常见问题:
a)用EXP导出某个用户时,会将所有数据都导出吗?
会。
b)如何将表移到另一个表空间?-----待定
alter table b move tablespace tsb;
c)如何查看一个表属于哪个表空间?
d)如何查看一个用户拥有哪些表空间?
SELECT FROM DBA_SEGMENTS WHERE TABLESPACE_NAME=xxx
e)如何查看一个表空间属于哪些用户?
SELECT FROM DBA_SEGMENTS WHERE TABLESPACE_NAME=xxx
f)如何更改用户默认的表空间?