实例名指的是用于响应某个数据库操作的数据库管理系统的名称。她同时也叫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
--上面我们建好了 数据库和表空间,接下来建用户:
--命名冲突就修改:
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
--有了 数据库,表空间和用户,就可以用自定义的用户在自己的表空间创建表了。有了表,我们可以开发了。
-- 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
);
======================================================================================
导入导出
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
========================================================================================
不同版本的导入导出
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 (新表名);
========================================================================================