oracle中创建表空间和表

0.创建表空间

//datafile为自己安装oracle时的路径,下面代码为在那里新建了一个CSZXS的表空间(此路径可以为本电脑的任何地方)
create tablespace CSZXS  
logging  
datafile 'E:\oracledatabase\oradata\orcl\CSZXS.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;

1.创建用户并授权 ( 可以创建不同的用户,导入同一个数据库 )
格式: create user 用户名 identified by 密码 default tablespace 表空间表;

create user evezxs identified by evezxs default tablespace CSZXS;


2.给权限(只要执行下面的1和2就可以了)

grant connect,resource to study; 
          //表示把 connect,resource权限授予study用户
          grant dba to study;
          //表示把 dba权限授予给 study

1.grant connect,dba,resource,EXP_FULL_DATABASE,IMP_FULL_DATABASE to evezxs; 

2.grant create session to 用户名  ——允许用户连接;

grant select,insert,update on 表名 to 用户名 ——允许用户对该表进行查询,插入,修改

3.测试用户是否可用

4.导入数据库文件

将导出的数据库文件拷贝的D盘根目录下;打开cmd命令行窗口,输入命令是:

imp evezxs/evezxs file=d:/evezxs20190220.dmp full=y

5.导出数据

当备份数据库文件时,有些空表无法导出,需要先执行该语句:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

alter system set  deferred_segment_creation=false;

随后再将查询结果导出,执行导出的语句!

注意:在每次导入数据库后,都执行此次操作,以便以后导出数据库节省操作。

然后再执行导出语句:

exp ecdsjs/[email protected]/orcl file=d:/ecdsjs20151109.dmp 
exp system/123Oracle file=d:/evezxs20190220.dmp 
 
6.删除用户及数据库

以级联方式删除,在更新数据库时,可将该用户关联的所有数据删除。

drop user evezxs cascade;

生成关闭连接的用户
select 'alter system kill session ''' || sid || ',' || serial# || ''';' from v$session where username='PRJTMPL1';
select saddr,sid,serial#,paddr,username,status from v$session where username is not null;


7.删除表中多余的重复记录(多个字段),只留有rowid最小的记录;
delete from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)


8.PLSQL中文乱码现象
在环境变量中添加
变量 NLS_LANG
值 SIMPLIFIED Chinese_CHINA.ZHS16GBK

9.查询用户
select username from dba_users;

查询用户和用户所在的表空间
select username,default_tablespace from dba_users order by username

查询所有的表空间
select tablespace_name from dba_tablespaces;


select userenv('language') from dual; 

10、查询默认的表空间
select property_name,property_value from database_properties where property_name in('DEFAULT_PERMANENT_TABLESPACE','DEFAULT_TEMP_TABLESPACE');
 
11、查询表所在的表空间
SELECT
  TABLE_NAME,
  TABLESPACE_NAME
FROM
  USER_TABLES

12、删除表空间
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

 

你可能感兴趣的:(oracle,oracle,表空间,表)