第一篇:Oracle建表空间各种语句
在创建用户之前,先要创建表空间:
其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小;如:
SQL> create tablespace news_tablespace datafile 'F:oracleproduct10.1.0oradatanewsnews_data.dbf' size 500M;其中'news_tablespace'是你自定义的表空间名称,可以任意取名;'F:oracleproduct10.1.0oradatanewsnews_data.dbf'是数据文件的存放位置,'news_data.dbf'文件名也是任意取;'size 500M'是指定该数据文件的大小,也就是表空间的大小。
现在建好了名为'news_tablespace'的表空间,下面就可以创建用户了:
其格式为:格式: create user 用户名 identified by 密码 default tablespace 表空间表;如:
SQL> create user news identified by news default tablespace news_tablespace;默认表空间'default tablespace'使用上面创建的表空间。
接着授权给新建的用户:
SQL> grant connect,resource to news;--表示把 connect,resource权限授予news用户
SQL> grant dba to news;--表示把 dba权限授予给news用户
授权成功。
ok!数据库用户创建完成,现在你就可以使用该用户创建数据表了!1.建表空间
create tablespace hoteldata datafile 'D:javaOracleproduct10.1.0oradatazznorclhoteldata.dbf'size 200m autoextend on next 10m maxsize unlimited;2.建用户 create user hotel identified by hotel default tablespace hoteldata account unlock;//identified by 后面的是密码,前面的是用户名 3.用户授权
grant resource,connect,RECOVERY_CATALOG_OWNER to hotel;grant create table to hotel;alter user hotel quota unlimited ON OSDB;alter user hotel default tablespace hoteldata;4.删除表空间
DROP TABLESPACE hoteldata INCLUDING CONTENTS AND DATAFILES;5.删除用户
DROP USER hotel CASCADE 6.删除表的注意事项
在删除一个表中的全部数据时,须使用TRUNCATE TABLE 表名;因为用DROP TABLE,DELETE * FROM 表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。oracle sqlplus脚本建库总结(原创)******************************************************************/--查询表空间参数
select tablespace_name,min_extents,max_extents,pct_increase,status from dba_tablespaces;--查询数据文件信息
--autoextensible数据库已满后是否自动扩展
select tablespace_name,bytes,autoextensible,file_name from dba_data_files;/******************************************************************/--创建表空间
--一般信息
--DATAFILE:数据文件目录--存储
--AUTOEXTEND:数据文件满后自动扩展--ON NEXT:增量
--MAXSIZE UNLIMITED:最大容量无限制--SIZE:文件大小--存储
--启用事件记录:LOGGING为生成从做日志并可恢复,NOLOGGING为快速更新不生成日志且不可恢复
--MANAGEMENT LOCAL:本地管理--缺省:自动分配
--UNIFORM SIZE:统一分配
--MANAGEMENT DICTIONARY:在字典中管理--DEFAULT STORAGE:覆盖默认区值--INITIAL:初始大小--NEXT :下一个大小--MINEXTENTS:最小数量
--MAXEXTENTS UNLIMITED :最大数量不限制--PCTINCREASE:增量,单位“%”--MINIMUM EXTENT:最小区大小 CREATE TABLESPACE “TEST” NOLOGGING DATAFILE 'G:ORACLEORADATAMYORACLETEST.ora' SIZE 5M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 12K;--最好写成相对路径,免得出错 CREATE TABLESPACE “TEST” NOLOGGING DATAFILE '../DATABASE/TEST.ora' SIZE 5M REUSE--建议用'../oradata/TEST.ora' AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 12K;CREATE TABLESPACE “TEST” LOGGING DATAFILE 'G:ORACLEORADATAMYORACLETEST.ora' SIZE 5M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE(INITIAL 1K NEXT 2K MINEXTENTS 5 MAXEXTENTS 67 PCTINCREASE 4)MINIMUM EXTENT 3K;/******************************************************************/--增加表空间, 注意这里test.ora1不能与原表空间文件名称相同--添加一个新的大小为5M数据库文件test.ora1 alter tablespace mytesttablespace add datafile 'c:testtest.ora1' size 5M;/******************************************************************/--修改表空间数据库文件属性,myoracle为sid--将test.ora1数据库文件改为3M,其中resize可以是ONLINE, OFFLINE, RESIZE, AUTOEXTEND 或 END/DROP alter database myoracle datafile 'c:testtest.ora1' resize 3M;alter database myoracle datafile '$ORACLE_HOME/oradata/undo102.dbf' autoextend on next 10m maxsize 500M;/******************************************************************/ /*删除表空间
语法:drop tablespace tablespace_name including contents and datafiles;删除表空间时要系统不会删除表空间数据库文件,要彻底删除要手动删除 */ drop tablespace mytesttablespace including contents and datafiles;/******************************************************************/--创建用户--命令:
--CREATE USER 名称 IDENTIFIED BY 口令 DEFAULT TABLESPACE “默认表空间名” TEMPORARY TABLESPACE “TEMP” ACCOUNT UNLOCK--一般属性
--DEFAULT TABLESPACE :默认表空间名
--TEMPORARY TABLESPACE :临时表空间名,默认TEMP--ACCOUNT :用户状态,默认UNLOCK 未锁定;LOCK 锁定 CREATE USER “TEST” PROFILE “DEFAULT” IDENTIFIED BY “test” DEFAULT TABLESPACE “TEST” TEMPORARY TABLESPACE “TEMP” ACCOUNT UNLOCK;--可以写成
CREATE USER “TEST” PROFILE “DEFAULT” IDENTIFIED BY “test” DEFAULT TABLESPACE “TEST”;/******************************************************************/--用户授权
--grant “connect,resource,dba” to “someuser” with admin option;--WITH ADMIN OPTION :管理选项--授予usertest DBA权限
grant dba to “usertest” with admin option;--取消授权
--REVOKE “RESOURCE” FROM “SCOTT”;/******************************************************************/--建表
--在usertest方案下建表,注意表名不能用关键字,否则报错ORA-00903: 表名无效
--语法:
--create table [schema.](--
--data type:表示字段的数据类型
--default
CREATE TABLE “TEST”.“TEST”(“ID” NUMBER(10)DEFAULT 0 PRIMARY KEY, “NAME” VARCHAR2(20)NOT NULL, “INFO” VARCHAR2(1000))TABLESPACE “TEST”;/******************************************************************/--插入数据--语法:
--INSERT INTO tablename(column1,column2,…)VALUES(expression1,expression2,…);
INSERT INTO “TEST”.“TEST”(“ID” ,“NAME” ,“INFO”)VALUES(1 ,'testname' ,'');--也可以写成
INSERT INTO “TEST”.“TEST” VALUES(1 ,'testname' ,'');/******************************************************************/
第二篇:oracle表空间管理及操作实用案例
Oracle
表空间管理及操作详解(附带案例)
一:表空间概述
表空间是数据库的逻辑组成部分,从物理上讲,数据库数据存放在数据文件中;数据库逻辑上讲是由一个或者多个表空间组成,数据文件则是存放在表空间中,表空间有一个或者多个数据文件组成即表空间有数据文件构成的。
数据库,表空间,段,区,块,按大小排列依次是:数据库---》表空间-----》段-----》区----》块。
1.建立表空间的作用:
(1.)控制数据库占用的磁盘空间。(2).dba可以将不同的数据类型部署到不同的位置,这样有利于提高i/o性能,同时有利与备份和恢复等管理操作。
二:管理表空间和数据文件。
(1)建立表空间create tablespace;一般情况下建立表空间是特权用户或者dba来执行的,如果其他用户来创建表空间,则用户建必须要具有create tablespace的系统权限。(2)建立数据表空间
在建立数据库后,为便于管理表,最好建立自己的表空间。
create tablespace sp02 datafile 'd:testsp02.dbf' size 20m uniform size 128k 说明:执行完上述命令后,会建立名称为sp02的表空间,并为该表空间建立名称为sp02.dbf的数据文件,区的大小为128k。(3.)在表空间建表
create table tablesp02(ID number(5),name varchar2(20))tablespace sp02(4)显示当前用户拥有哪些表。
select * from tab;
(5).知道表空间名,显示该表空间包括的所有表。
select * from all_tables where tablespace_name='表空间名'。
注:拥有权限不同的用户在进行以上操作得到的结果可能不同。System可以查看得到某空间的所拥有表。(比如users表空间)(6)知道表名,查看该表属于那个表空间。
select TABLESPACE_NAME, TABLE_NAME from user_tables where TABLE_NAME='EMP';(7)知道表名,查看该表属于那个表空间,属于哪个用户。
select owner,TABLESPACE_NAME, TABLE_NAME from all_tables where TABLE_NAME='EMP';(8)改变表空间的状态 使表空间可读写
alter tablespace 表空间名 read write;
删除表空间,一般情况下由特权用户或者dba来操作。具有drop tablespace系统权限。
drop tablespace ‘表空间’includeing contens and datafiles;
说明:includeing contens表示删除表空间时,删除该空间的所有数据库对象而datafiles表示将数据库文件也删除。(9)改变表空间的状态(1)使用空间脱机
alter tablespace 表空间名 offline(2)使用空间联机
alter tablespace表空间名online(3)只读表空间
建立表空间时,表空间可以读写,如果不希望在表空间上执行update,delete,insert操作。那么可以将表空间修改为只读。alter talbespace sp01 read only;
三:移动数据文件:
(1)确定数据文件所在的表空间(知道表属于哪个表空间)Select tablespace_name from dba_data_files where file_name='D:TEST5.DBF';(2)使用表空间脱机
确保数据文件的一致性,将表空间转换为offline的状态。alter tablespace sp01 offline;
(3)使用命令移动数据文件到指定的目标位置。host move d:testsp01.dpf c:testsp01.dbf;(4)执行alter tablespace命令
在物理上移动了数据后,还必须执行alter tablespace命令对数据库文件进行逻辑修改。
alter tablespace sp01 rename datefile ‘d:sp01.dbf’ to 'c:sp01.dbf'(5)使得表空间联机
在移动了数据文件后,为了使用户可以访问该表空间,必须将其变为online状态:
alter tablespace sp01 online;
四:显示表空间信息:
查询数据视图字典dba_tablespace,显示表空间的信息:
select tablespace_name from dba_tablespaces 显示某个表空间的详细信息: select * from dba_tablespaces where TABLESPACE_NAME='SP05';显示表空间所包含的数据文件。查询数据字典视图dba_data_files。可显示表空间所包含的数据文件如下:
select file_name,bytes from dba_data_files where tablespace_name='SP05';常用表空间,undo表空间和临时表空间,非标准块的表空间。了解表空间的各个状态:如何改变表空间的的状态的方法。(online,offline,read write,read only)system是系统表空间,不能作为只读,如果是普通表空间,那么我们可以设为只读。
五:附加案例:建一个表空间,在表空间里面建表,并且增加表空间的存储空间。
1.建立表空间 create tablespace sp05 datafile 'd:testsp05.dbf' size 20m uniform size 128k 2.建表
create table tablesp05(ID number(5),name varchar2(20))tablespace sp02 3.insert into tablesp05 select * from tablesp05;(重复多步提示空间不足)
4,拓展表空间,扩大存储空间。
alter tablespace sp05 add datafile 'D:test5.dbf' size 20m;
拓展表空间的存储空间这里有三种方法:
(1)增加数据文件alter tablespace sp05 add datafile 'D:test5.dbf' size 20m;
(2)修改数据文件大小
alter database datafile 'd:testsp05.dbf' resize 50m;数据文件不要超过500m。(3)设置文件的自动增长 alter database datafile 'D:testSP05.dbf' autoextend on next 10m maxsize 500m;
第三篇:oracle 管理表空间和数据文件
oracle 管理表空间和数据文件
介绍ν
表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;
从逻辑上讲,数据库则是存放在表空间中,表空间由一个或多个数据文件组成。
数据库的逻辑结构
介绍ν
oracle 中逻辑结构包括表空间、段、区和块。
说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而
区又是由 oracle块构成的这样的一种结构,可以提高数据库的效率。
为了让大家明白,我们画图说明逻辑关系:看图:
表空间
介绍ν
表空间用于从逻辑上组织数据库的数据。数据库逻辑上是由一个或是多个表空间
组成的。通过表空间可以达到以下作用:
1.控制数据库占用的磁盘空间
2.dba 可以将不同数据类型部署到不同的位置,这样 利于提高 i/o性能,同
时利于备份和恢复等管理操作。(可以把索引,触发器单独放一个表空间中)。
建立表空间ν
建立表空间是使用 crate tablespace 命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是 dba 来执行的,如果用其它用户来创建表空间,则用
户必须要具 create tablespace 的系统权限。
建立数据表空间ν
在建立数据库后,为便于管理表,最好建立 自己的表空间 create tablespace data01 datafile 'd:testdada01.dbf' size 20m uniform size 128k;
说明:执行完上述命令后,会建立名称为 data01 的表空间,并为该表空间建立
名称为 data01.dbf 的数据文件,区的大小为 128k
ν 使用数据表空间(把表关联到表空间,如果没指定表空间,则默认在sys表空间里)create table mypart(deptno number(4), dname varchar2(14), loc varchar2(13))tablespace data01;
改变表空间的状态ν
当建立表空间时,表空间处于联机的(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以查询该表空间的数据,而且还可以在表
空间执行各种语句。但是在进行系统维护或是数据维护时,可能需要改变表空间的状态。一般情况下,由特权用户或是 dba 来操作。安全性考虑
1.使表空间脱机
alter tablespace 表空间名 offline;2.使表空间联机
alter tablespace 表空间名 online;3.只读表空间
当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update,delete,insert 操作,那么可以将表空间修改为只读
alter tablespace 表空间名 read only;
(修改为可写是 alter tablespace 表空间名 read write;)
改变表空间的状态ν
我们给大家举一个实例,说明只读特性:
1.知道表空间名,显示该表空间包括的所有表
select * from all_tables where tablespace_name=’表空间名’;
2.知道表名,查看该表属于那个表空间 select tablespace_name, table_name from user_tables where table_name=’emp’;
通过 2.我们可以知道 scott.emp 是在 system 这个表空间上,现在我们可以将
system 改为只读的但是我们不会成功,因为 system 是系统表空间,如果是普通
表空间,那么我们就可以将其设为只读的,给大家做一个演示,可以加
理解。
3.4.使表空间可读写
alter tablespace 表空间名 read write;
ν 删除表空间
一般情况下,由特权用户或是 dba 来操作,如果是其它用户操作,那么要求用户
具 drop tablespace 系统权限。
drop tablespace ‘表空间’ including contents and datafiles;
说明:including contents 表示删除表空间时,删除该空间的所有数据库对象,而 datafiles 表示将数据库文件也删除。
扩展表空间ν
表空间是由数据文件组成的,表空间的大小实际上就是数据文件相加后的大小。
那么我们可以想象,假定表employee 存放到data01 表空间上,初始大小就是
2M,当数据满 2M 空间后,如果在向 employee 表插入数据,这样就会显示空间不
足的错误。
案例说明:
1.建立一个表空间 sp01
2.在该表空间上建立一个普通表 mydment 其结构和 dept 一样
3.向该表中加入数据 insert into mydment select * from dept;4.当一定时候就会出现无法扩展的问题,怎么办?
5.就扩展该表空间,为其增加更多的存储空间。三种方法:
1.增加数据文件
SQL> alter tablespace sp01 add datafile ‘d:testsp01.dbf’ size 20m;
-----------------------Page 51-----------------------2.增加数据文件的大小
SQL> alter tablespace 表空间名 ‘d:testsp01.dbf’ resize 20m;
这里需要注意的是数据文件的大小不要超过 500m。
3.设置文件的自动增长。
SQL> alter tablespace 表空间名 ‘d:testsp01.dbf’ autoextend on next
10m maxsize 500m;
移动数据文件ν
有时,如果你的数据文件所在的磁盘损坏时,该数据文件将不能再使用,为了能
够重新使用,需要将这些文件的副本移动到其它的磁盘,然后恢复。
下面以移动数据文件 sp01.dbf为例来说明:
1.确定数据文件所在的表空间
select tablespace_name from dba_data_files where file_name=’d:testsp01.dbf’;
2.使表空间脱机
确保数据文件的一致性,将表空间转变为 offline 的状态。
alter tablespace sp01(表空间名)offline;3.使用命令移动数据文件到指定的目标位置
host move d:testsp01.dbf c:testsp01.dbf 4.执行 alter tablespace 命令
在物理上移动了数据后,还必须执行alter tablespace 命令对数据库文件进行
逻辑修改: alter tablespace sp01 rename datafile ‘d:testsp01.dbf’ to
‘c:testsp01.dbf’;
5.使得表空间联机
在移动了数据文件后,为了使用户可以访问该表空间,必须将其转变为 online 状态。
alter tablespace sp01(表空间名)online;
显示表空间信息ν
查询数据字典视图 dba_tablespaces,显示表空间的信息:
select tablespace_name from dba_tablespaces;
显示表空间所包含的数据文件ν
查询数据字典视图 dba_data_files,可显示表空间所包含的数据文件,如下:
select file_name, bytes from dba_data_files where tablespce_name=’表
空间’;
表空间小结ν
1.了解表空间和数据文件的作用
2.掌握常用表空间,undo 表空间和临时表空间的建立方法
3.了解表空间的各个状态(online, offline, read write, read only)的作用,及如何改变表空间的状态的方法。
4.了解移动数据文件的原因,及使用alter tablespace 和 alter datatable 命令移动数据文件的方法。
-----------------------Page 52-----------------------
其它表空间ν
除了最常用的数据表空间外,还有其它类型表空间:
1.索引表空间 2.undo 表空间
3.临时表空间
4.非标准块的表空间
这几种表空间,大家伙可以自己参考书籍研究,这里我就不讲。
其它说明ν
关于表空间的组成部分 段/区/块,我们在后面给大家讲解。
第四篇:Oracle表空间和数据文件的关系
数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成: 数据文件和控制文件。数据库的文件为数据库提供真正的物理存储。
每一个Oracle数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表,索引等)的数据物理地存储在数据库地数据文件中。数据文件通常为*.dbf格式,例如: userCIMS.dbf.数据文件有一下特征:①、一个数据文件仅与一个数据库联系;②、一旦建立, 数据文件只增不减;③、一个表空间(数据库存储地逻辑单位)由一个或多个数据文件组成。
其次, 我们再来叙述一下Oracle的逻辑结构: Oracle的逻辑结构包括表空间(tablespace), 段(segment), 数据块(data block)以及模式对象(schema object)。
Oracle数据库在逻辑上是由多个表空间组成的, 表空间在物理上包含一个或者多个数据文件。而数据文件大小是块大小的整数倍;表空间中存储的对象叫段, 比如数据段, 索引段和回退段。段由区组成, 区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。每个区的大小是数据块大小的整数倍,取得大小可以不同;数据块是数据库中的最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。块的大小由参数DB_BLOCK_SIZE设置,其值影设置为操作系统块大小的整数倍。
⑴ 表空间(TABLESPACE)表空间是数据库中最大的逻辑单位,每一个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系。每一个数据库都有一个SYSTEM表空间,该表空间是在数据库创建或数据库安装时自动创建的,用于存储系统的数据字典表,程序系统单元,过程函数,包和触发器等,也可用于存储用户数据表,索引对象。表空间具有在线(online)和离线(offline)属性,可以将除SYSTEM以外的任何表空间置为离线。⑵ 段(SEGMENT)数据库的段可以分为4类:数据段,索引段,回退段和临时段。⑶ 区
区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区存储在段中,它由连续的数据块组成。⑷ 数据块
数据块是数据库中最小的数据组织单位与管理单位,是数据库文件磁盘存储空间单位,也是数据库I/O的最小单位,数据块大小由DB_BLOCK_SIZE参数决定,不同的ORACLE版本BD_BLOCK_SIZE的默认值是不同的。查询DB_BLOCK_SIZE可以使用sql:
select name, value from v$parameter where name = 'db_block_size';⑸ 模式对象
模式对象是一种应用,包括:表、聚簇、试图、索引序列生成器、同义词、哈希、程序单元、数据库链的等。
最后说一下ORACLE的用户、表空间和数据文件的关系:
一个用户可以使用一个或多个表空间,一个表空间也可以提供多个用户使用。用户和表空间没有隶属关系,表空间是一个用来管理数据存储的逻辑概念,表空间只是和数据文件发生关系,数据文件是物理的。一个表空间可以包含多个数据文件,而一个数据文件只能隶属于一个表空间。
总结一下:解释数据库、表空间、数据文件、表、数据的最好办法就是想象一个装满东西的柜子。数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,数据夹中的纸是表,写在纸上的信息就是数据。
第五篇:oracle常用语句
Oracel 中常使用的语法(部分)
Oracel 中常使用的语法
2、显示当前连接用户 :SQL> show user3、查看系统拥有哪些用户 :SQL> select * from all_users;
4、新建用户并授权:SQL> create user a identified by a;(默认建在SYSTEM表空间下)
SQL> grant connect,resource to a;
5、连接到新用户 :SQL> conn a/a6、查询当前用户下所有对象:SQL> select * from tab;
7、建立第一个表 :SQL> create table a(a number);
8、查询表结构SQL> desc a9、插入新记录SQL> insert into a values(1);
10、查询记录SQL> select * from a;
11、更改记录SQL> update a set a=2;
12、删除记录SQL> delete from a;
13、回滚SQL> roll;或SQL> rollback;
14、提交SQL> commit;
用户授权:
GRANT ALTER ANY INDEX TO “user_id ”
GRANT “dba ” TO “user_id ”;
ALTER USER “user_id ” DEFAULT ROLE ALL
创建用户:
CREATE USER “user_id ” PROFILE “DEFAULT ” IDENTIFIED BY “ DEFAULT TABLESPACE
”USERS “ TEMPORARY TABLESPACE ”TEMP “ ACCOUNT UNLOCK;GRANT ”CONNECT “ TO ”user_id “;
用户密码设定:
ALTER USER ”CMSDB “ IDENTIFIED BY ”pass_word “
表空间创建:
CREATE TABLESPACE ”table_space “ LOGGING DATAFILE
'C:ORACLEORADATAdbstable_space.ora' SIZE 5M
----------
1、查看当前所有对象:SQL > select * from tab;
2、建一个和a表结构一样的空表
SQL > create table b as select * from a where 1=2;
SQL > create table b(b1,b2,b3)as select a1,a2,a3 from a where 1=2;
3、察看数据库的大小,和空间使用情况
SQL > col tablespace format a20
SQL > select b.file_id文件ID,b.tablespace_name表空间,b.file_name物理文件名,b.bytes总字节数,(b.bytes-sum(nvl(a.bytes,0)))已使用,sum(nvl(a.bytes,0))剩余,sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.file_id,b.bytes order by b.tablespace_name /
dba_free_space--表空间剩余空间状况
dba_data_files--数据文件空间占用情况
4、查看现有回滚段及其状态 : SQL > col segment format a30
SQL > SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;
5、查看数据文件放置的路径 :SQL > col file_name format a50
SQL > select tablespace_name,file_id,bytes/1024/1024,file_name fromdba_data_files order by file_id;
6、显示当前连接用户 :SQL > show user7、把SQL*Plus当计算器 :SQL > select 100*20 from dual;
8、连接字符串:SQL > select 列1 | |列2 from 表1;
SQL > select concat(列1,列2)from 表1;
9、查询当前日期和时间: SQL > select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss')from dual;
10、用户间复制数据:SQL > copy from user1 to user2 create table2 using select * from table1;
11、视图中不能使用order by,但可用group by代替来达到排序目的SQL > create view a as select b1,b2 from b group by b1,b2;
12、通过授权的方式来创建用户 :SQL > grant connect,resource to test identified by test;
SQL > conn test/test13、查出当前用户所有表名: select unique tname from col;
---------
/* 向一个表格添加字段 */alter table alist_table add address varchar2(100);
/* 修改字段 属性 字段为空 */alter table alist_table modify address varchar2(80);
/* 修改字段名字 */
create table alist_table_copy as select ID,NAME,PHONE,EMAIL, QQ as QQ2,/*qq 改为qq2*/
ADDRESS from alist_table;drop table alist_table;
rename alist_table_copy to alist_table /* 修改表名 */
空值处理,有时要求列值不能为空 :create table dept(deptno number(2)not null, dname char(14), loc char(13));
在基表中增加一列: alter table dept add(headcnt number(3));
修改已有列属性 :alter table dept modify dname char(20);
注:只有当某列所有值都为空时,才能减小其列值宽度。只有当某列所有值都为
空时,才能改变其列值类型。
只有当某列所有值都为不空时,才能定义该列为not null。
例:alter table dept modify(loc char(12));alter table dept modify loc char(12);
alter table dept modify(dname char(13),loc char(12));
查找未断连接 :
select process,osuser,username,machine,logon_time ,sql_text from v$session a,v$sqltext b where a.sql_address=b.address;
---
1.以USER_开始的数据字典视图包含当前用户所拥有的信息, 查询当前用户所拥有的表信息:
select * from user_tables;
2.以ALL_开始的数据字典视图包含ORACLE用户所拥有的信息, 查询用户拥有或有权访问的所有表信息:
select * from all_tables;
3.以DBA_开始的视图一般只有ORACLE数据库管理员可以访问:select * from dba_tables;
4.查询ORACLE用户:
conn sys/change_on_installselect * from dba_users;
conn system/manager;select * from all_users;
5.创建数据库用户:CREATE USER user_name IDENTIFIED BY password;GRANT CONNECT TO user_name;GRANT RESOURCE TO user_name;
授权的格式: grant(权限)on tablename to username;
删除用户(或表):drop user(table)username(tablename)(cascade);
6.向建好的用户导入数据表 :
IMP SYSTEM/MANAGER FROMUSER = FUSER_NAME TOUSER = USER_NAME FILE = C:EXPDAT.DMPCOMMIT = Y
7.索引: create index [index_name] on [table_name](”column_name ")