01 Oracle随笔[on Windows]

本文详细介绍了Oracle数据库中数据库实例、表空间、用户的创建及管理方法,包括SQL语句示例、权限分配、表的创建及注释添加等。此外还涉及了数据库的导入导出过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个数据库实例可以有N个表空间,一个表空间下可以有N张表。


实例名指的是用于响应某个数据库操作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。


空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。


Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。


======================================================================================
--查询当前数据库名:
select name from v$database;
--查询当前数据库实例名:
select instance_name from v$instance;


--创建表空间语法:
Create TableSpace 表空间名称
DataFile 表空间数据文件路径
Size 表空间初始大小
Autoextend on
--如:
create tablespace SCS_FL  
datafile 'E:\app\Kelvin\oradata\orcl\SCS_FL.dbf'
size 50m
autoextend on;


--查看已经创建好的表空间:
select * from dba_tablespaces
---------------
select default_tablespace, temporary_tablespace, d.username from dba_users d order by username asc



--上面我们建好了[color=red]数据库和表空间[/color],接下来建用户:
--命名冲突就修改:
select user#,name,password from user$ where name ='TICKETS'
--创建新用户:
CREATE USER --用户名
IDENTIFIED BY --密码
DEFAULT TABLESPACE --表空间(默认USERS)
TEMPORARY TABLESPACE --临时表空间(默认TEMP)
--如:
CREATE USER SCS_FL  
IDENTIFIED BY SCS_FL
DEFAULT TABLESPACE SCS_FL
TEMPORARY TABLESPACE temp;
--(这里临时表空间不能使用我们创建的db_test,不知为何?)


--有了用户,要想使用用户账号管理自己的表空间,还得给它分权限:
GRANT CONNECT TO SCS_FL;  
GRANT RESOURCE TO SCS_FL;
GRANT dba TO SCS_FL;
--dba为最高级权限,可以创建数据库,表等。

--查看数据库用户:
select * from dba_users


--有了[color=red]数据库,表空间和用户[/color],就可以用自定义的用户在自己的表空间创建表了。有了表,我们可以开发了。
-- Create table
create table AA01
(
aaa104 VARCHAR2(6) not null,
aaa105 VARCHAR2(50),
aaa106 VARCHAR2(6) not null,
aaa107 VARCHAR2(50),
aaa108 VARCHAR2(100) not null,
aae100 VARCHAR2(1)
)
tablespace GKAGED
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
next 1
minextents 1
maxextents unlimited
);
-- Add comments to the table
comment on table AA01
is '系统配置表';
-- Add comments to the columns
comment on column AA01.aaa104
is '配置代码';
comment on column AA01.aaa105
is '配置名称';
comment on column AA01.aaa106
is '配置子项代码';
comment on column AA01.aaa107
is '配置子项名';
comment on column AA01.aaa108
is '配置子项值';
comment on column AA01.aae100
is '有效标志';
-- Create/Recreate primary, unique and foreign key constraints
alter table AA01
add constraint PK_AA01 primary key (AAA104, AAA106, AAA108)
using index
tablespace GKAGED
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
======================================================================================
[color=red][url=http://www.cnblogs.com/fjfzhkb/archive/2007/09/03/879807.html]导入导出[/url][/color]
exp gkaged/gkaged@cdgk66 full=y file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbfull.log; 
--full=y是导出全数据库,一般只要导出表空间就可以了
imp hkb/hkb@xe  file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbimp.log full=y

========================================================================================
[color=red][url=http://www.2cto.com/database/201108/101886.html]不同版本的导入导出[/url][/color]

Sql代码
--创建dump文件目录
create directory dump_test as 'D:\test\dump'
--授权读写权限给你要操作的用户
grant read, write on directory dump_test to
username

--查询是否存在自己创建的文件目录
select * from dba_directories;

select * from da.user_tables

--注意低版本是不能导入高版本 比如我的数据库是11gR2 对方是11gr1 需要指定版本号11.1.0.6.0
expdp username/password directory=dump_test dumpfile=data.dmp version=11.1.0.6.0
--默认导在刚才创建的目录 'D:\test\dump'

--导入文件
impdp username/password directory=dump_test dumpfile=data.dmp

==============================================================================================

Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下

对于单个user和tablespace 来说, 可以使用如下命令来完成。
步骤一: 删除user
drop user ×× cascade
说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。
步骤二: 删除tablespace
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

sql创建表
========================================================================================
create table CS01(
lsid number(18) not null,
field1 varchar2(30),
field2 varchar2(30),
field3 varchar2(30)
);

alter table CS01 add constraint pk_cs01 primary key(lsid);

comment on table CS01 is '测试模块';
comment on column CS01.field1 is '字段一';
comment on column CS01.field1 is '字段二';
comment on column CS01.field1 is '字段三';


整个表空间总的某个属性的分布
==============================================================================================
select TABLE_NAME,COLUMN_NAME,COMMENTS from user_col_comments where COMMENTS LIKE '%联系人%';

sql操作字段
========================================================================================

ALTER TABLE (表名) ADD (列名 数据类型);
ALTER TABLE (表名) MODIFY (列名 数据类型);
ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名); /不需要括号
ALTER TABLE (表名) DROP COLUMN (列名);
ALTER TABLE (当前表名) RENAME TO (新表名);

========================================================================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值