查看Oracle表空间SQL语句

合集下载

oracle查询表语句

oracle查询表语句

oracle查询表语句查询所有数据:SELECT * FROM 表名;查询指定列数据:SELECT 列名1, 列名2, 列名3 FROM 表名;带条件查询:SELECT 列名1, 列名2 FROM 表名 WHERE 条件;排序查询:SELECT 列名1, 列名2 FROM 表名 ORDER BY 列名ASC/DESC;聚合查询:SELECT 列名, 聚合函数(列名) FROM 表名 GROUP BY 列名;连接查询:SELECT 表1.列名, 表2.列名 FROM 表1 JOIN 表2 ON 表1.关联列 = 表2.关联列;子查询:SELECT 列名 FROM 表名 WHERE 列名 IN (SELECT 列名FROM 表名 WHERE 条件);复杂查询:SELECT 列名 FROM 表名 WHERE 条件 UNION SELECT 列名FROM 表名 WHERE 条件;其他:- 查询结果去重:SELECT DISTINCT 列名 FROM 表名;- 限制查询结果行数:SELECT * FROM 表名 LIMIT num;- 分页查询:SELECT * FROM 表名 LIMIT num OFFSET offset;- 对查询结果取别名:SELECT 列名 AS 别名 FROM 表名;- 对查询结果进行计数:SELECT COUNT(*) FROM 表名;- 对查询结果进行求和、平均值、最大值、最小值等计算:SELECT SUM(列名) FROM 表名;SELECT AVG(列名) FROM 表名;SELECT MAX(列名) FROM 表名;SELECT MIN(列名) FROM 表名;注意:其中"表名"需要替换为实际表的名称,"列名"需要替换为实际列的名称,"条件"需要替换为实际查询条件。

oracle空表查询语句

oracle空表查询语句

oracle空表查询语句
摘要:
1.空表查询概述
2.Oracle 数据库中的空表查询
3.Oracle 空表查询语句
4.总结
正文:
1.空表查询概述
在数据库查询中,空表查询是指查询结果为空的表。

空表查询通常用于确定某个表中是否有数据,或者用于检查表结构是否正确。

在Oracle 数据库中,可以使用SELECT 语句进行空表查询。

2.Oracle 数据库中的空表查询
在Oracle 数据库中,可以使用如下查询语句进行空表查询:
```
SELECT * FROM table_name WHERE ROWNUM = 0;
```
这里的`table_name`是待查询的表名。

使用`ROWNUM`函数可以限制查询结果的行数为0,从而实现空表查询。

3.Oracle 空表查询语句
在实际应用中,空表查询语句可能需要结合其他条件进行,例如查询某个特定条件的空表:
```
SELECT * FROM table_name WHERE column_name IS NULL;
```
这里的`column_name`是待查询的列名。

通过将查询条件设置为`IS NULL`,可以筛选出该列值为空的记录,从而实现空表查询。

4.总结
Oracle 数据库中的空表查询可以通过`SELECT`语句结合`ROWNUM`或特定列条件来实现。

常用查询Oracle的表,视图,存储过程,用户等SQL命令

常用查询Oracle的表,视图,存储过程,用户等SQL命令

常⽤查询Oracle的表,视图,存储过程,⽤户等SQL命令有时候需要导出某⽤户下的所有table、view、sequence、trigger等信息,下⾯的SQL可以将这些信息select出来:select * from user_tables;select * from user_views;select * from user_sequences;select * from user_triggers;查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看⽤户下所有的表 SQL>select * from user_tables;1、⽤户 查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 显⽰当前会话所具有的权限 SQL>select * from session_privs; 显⽰指定⽤户所具有的系统权限 SQL>select * from dba_sys_privs where grantee=’GAME’;2、表 查看⽤户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,’LOG’)>0; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper(‘&table_name’); 查看某表的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&table_name’); 查看放在ORACLE的内存区⾥的表 SQL>select table_name,cache from user_tables where instr(cache,’Y')>0;3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper(‘&index_name’); 查看索引的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&index_name’);4、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences;5、视图 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩ SQL>select text from user_views where view_name=upper(‘&view_name’);6、同义词 查看同义词的名称 SQL>select * from user_synonyms;7、约束条件 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper(‘&table_name’); SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper(‘&table_owner’) and c.table_name = upper(‘&table_name’) and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;8、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type=’FUNCTION’; SQL>select object_name,status from user_objects where object_type=’PROCEDURE’; 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper(‘&plsql_name’);。

【总结】Oracle数据库查看表空间和增加表空间

【总结】Oracle数据库查看表空间和增加表空间

【总结】Oracle数据库查看表空间和增加表空间⼀、Oracle查看表空间的名称及其⼤⼩查看表空间的名称及其⼤⼩的SQL语句:select t1.tablespace_name,round(sum(bytes/(1024*1024)),0) tablespace_Size_MBfrom dba_tablespaces t1, dba_data_files t2where t1.tablespace_name = t2.tablespace_namegroup by t1.tablespace_name;查询结果:TABLESPACE_NAME TABLESPACE_SIZE_MB------------------------------ ------------------DLOTTEY 276480SYSAUX 48450UNDOTBS1 20000INDEXMT 10240USERS 1041SYSTEM 10240UNDOTBS2 20000MMLOTTERY 2150408 rows selected.⼆、Oracle查看表空间的具体使⽤情况⽅法1:(未排序)select a.tablespace_name "tablespace_name",totalspace "totalspaceM",freespace "freespaceM",round((1-freespace/totalspace)*100,2) "round%"from(select tablespace_name,round(sum(bytes)/1024/1024) totalspace from dba_data_files group by tablespace_name) a,(select tablespace_name,round(sum(bytes)/1024/1024) freespace from dba_free_space group by tablespace_name) bwhere a.tablespace_name=b.tablespace_name;查询结果:tablespace_name totalspaceM freespaceM round%------------------------ ----------- ---------- ----------DLOTTEY 276480 232415 15.94SYSAUX 48450 9683 80.01UNDOTBS1 20000 19741 1.3INDEXMT 10240 10024 2.11USERS 1041 138 86.74SYSTEM 10240 4344 57.58UNDOTBS2 20000 19601 2MMLOTTERY 215040 36279 83.138 rows selected.⽅法⼆:(查询结果排序) select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"from(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) bwhere a.tablespace_name=b.tablespace_nameorder by ((a.bytes-b.bytes)/a.bytes) desc;查询结果:TABLESPACE_NAME Sum MB used MB free MB percent_used---------------------- ---------- ---------- ---------- ------------USERS 1041.25 903.375 137.875 86.76MMLOTTERY 215040 178761 36279 83.13SYSAUX 48450 38767 9683 80.01SYSTEM 10240 5896.125 4343.875 57.58DLOTTEY 276480 44065.4375 232414.563 15.94INDEXMT 10240 215.625 10024.375 2.11UNDOTBS2 20000 399.3125 19600.6875 2UNDOTBS1 20000 257.5 19742.5 1.298 rows selected.三、Oracle查看表空间物理⽂件的名称及⼤⼩set lines 150;col tablespace_name for a20;col file_name for a60;1、查询所有的表空间SQL语句:select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space_MBfrom dba_data_filesorder by tablespace_name;2、查询指定的表空间SQL语句:select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space_MBfrom dba_data_fileswhere tablespace_name = 'MMLOTTERY'order by tablespace_name;查询结果:TABLESPACE_NAME FILE_ID FILE_NAME TOTAL_SPACE_MB------------------- ---------- ------------------------------------------- --------------MMLOTTERY 18 +DATA/ora11g/datafile/mmlottery01.dbf 30720MMLOTTERY 19 +DATA/ora11g/datafile/mmlottery02.dbf 30720MMLOTTERY 20 +DATA/ora11g/datafile/mmlottery03.dbf 30720MMLOTTERY 22 +DATA/ora11g/datafile/mmlottery04.dbf 30720MMLOTTERY 23 +DATA/ora11g/datafile/mmlottery05.dbf 30720MMLOTTERY 26 +DATA/ora11g/datafile/mmlottery06.dbf 30720MMLOTTERY 27 +DATA/ora11g/datafile/mmlottery07.dbf 307207 rows selected.四、Oracle查看表真实占⽤的空间SQL语句:select t.owner,t.segment_name,t.segment_type,sum(t.bytes/1024/1024) used_MBfrom dba_segments twhere owner = 'MMLOTTERY'group by owner,segment_name,segment_typeorder by used_MB desc;查询结果:OWNER SEGMENT_NAME SEGMENT_TYPE USED_MB------------------- -------------------------------- ------------------ ----------MMLOTTERY TB_ORIGINAL_ORDERDETAILS TABLE 1792MMLOTTERY TB_LOTTERY_SALEDETAIL TABLE 1472MMLOTTERY TB_LOTTERYSCHEMEINFO_ADD TABLE 1280MMLOTTERY TEST_007 TABLE 1152MMLOTTERY TB_ACCOUNT_OPERATE_DETAIL TABLE 808MMLOTTERY PK14 INDEX 377MMLOTTERY PK14_11 INDEX 312MMLOTTERY PK14_13 INDEX 200MMLOTTERY PK14_12 INDEX 160MMLOTTERY TB_BONUS_ORDERDETAILS TABLE 160MMLOTTERY TB_WINBONUS_DETAIL TABLE 14411 rows selected.五、Oracle 增加表空间语法:alter tablespace {表空间名字} add datafile '物理数据⽂件路径' SIZE 『初始⼤⼩M』 AUTOEXTEND ON NEXT 『⾃动扩展⼤⼩M』例⼦:alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m;注意:如果添加表空间的⽂件名重复,那么会报错,如下:SQL> alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m;alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m*ERROR at line 1:ORA-01537: cannot add file'+DATA/ora11g/datafile/mmlottery08.dbf' - file already part of database若 datafile 加错到表空间,则执⾏删除操作。

Oracle 表空间查询与操作方法 电脑资料

Oracle 表空间查询与操作方法 电脑资料

Oracle 表空间查询与操作方法电脑资料一,1.查询oracle表空间的使用情况select b.fileid 文件ID,b.tablespacename 表空间,b.filename 物理文件名,b.bytes 总字节数,(b.bytes-sum(nvl(a.bytes,0))) 已使用,sum(nvl(a.bytes,0)) 剩余,sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比from dbafreespace a,dbadatafiles bwhere a.fileid=b.fileidgroup by b.tablespacename,b.filename,b.fileid,b.bytesorder by b.tablespacename2.查询oracle系统用户的默认表空间和临时表空间select defaulttablespace,temporarytablespace from dbausers 3.查询单张表的使用情况select segmentname,bytes from dbasegments where segmentname = 'RESTDEVTFACTDAY' and wner = USERRESTDEVTFACTDAY是您要查询的表名称4.查询所有用户表使用大小的前三十名select * from (select segmentname,bytes from dbasegments where wner = USER order by bytes desc ) where rownum <= 30 5.查询当前用户默认表空间的使用情况selecttablespacename,sum(totalContent),sum(usecontent),sum(sparec ontent),avg(sparepercent)from(SELECT b.fileid as id,b.tablespacename as tablespacename,b.bytes as totalContent,(b.bytes-sum(nvl(a.bytes,0))) as usecontent,sum(nvl(a.bytes,0)) as sparecontent,sum(nvl(a.bytes,0))/(b.bytes)*100 as sparepercentFROM dbafreespace a,dbadatafiles bWHERE a.fileid=b.fileid and b.tablespacename = (select defaulttablespace from dbausers where username = user) group by b.tablespacename,b.filename,b.fileid,b.bytes)GROUP BY tablespacename6.查询用户表空间的表select * from usertables=========================================================== =======================CREATE TABLESPACE testDATAFILE 'c:/oracle/oradata/db/test01.dbf' SIZE 50M UNIFORM. SIZE 1M; #指定区尺寸为128k,如不指定,区尺寸默认为64k或CREATE TABLESPACE testDATAFILE 'c:/oracle/oradata/db/test01.dbf' SIZE 50M MINIMUM EXTENT 50K EXTENT MANAGEMENT LOCALDEFAULT STORAGE (INITIAL 50K NEXT 50K MAXEXTENTS 100 PCTINCREASE 0);可从dbatablespaces中查看刚创立的表空间的信息CREATE UNDO TABLESPACE testundoDATAFILE 'c:/oracle/oradata/db/testundo.dbf' SIZE 50M UNDO表空间的EXTENT是由本地的,而且在创立时的SQL语句中只能使用DATAFILE和EXTENT MANAGEMENT子句。

Oracle查询表空间使用情况

Oracle查询表空间使用情况

Oracle查询表空间使⽤情况 --查询表空间使⽤情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间⼤⼩(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使⽤空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使⽤⽐", F.TOTAL_BYTES "空闲空间(M)", F.MAX_BYTES "最⼤块(M)" FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1; --查询表空间的free space select tablespace_name, count(*) as extends, round(sum(bytes) / 1024 / 1024, 2) as MB, sum(blocks) as blocks from dba_free_space group by tablespace_name; --查询表空间的总容量 select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name; --查询表空间使⽤率 select total.tablespace_name, round(total.MB, 2) as Total_MB, round(total.MB - free.MB, 2) as Used_MB, round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_free_space group by tablespace_name) free, (select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name) total where free.tablespace_name = total.tablespace_name;1.查找当前表级锁的SQL如下:select sess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_modefrom v$locked_object lo,dba_objects ao,v$session sesswhere ao.object_id = lo.object_id and lo.session_id = sess.sid;2.杀掉锁表进程:alter system kill session '436,35123';3.RAC环境中锁查找:SELECT inst_id,DECODE(request,0,'Holder: ','Waiter: ')||sid sess,id1, id2, lmode, request, type,block,ctimeFROM GV$LOCKWHERE (id1, id2, type) IN(SELECT id1, id2, type FROM GV$LOCK WHERE request>0)ORDER BY id1, request;4.监控当前数据库谁在运⾏什么SQL语句select osuser, username, sql_textfrom v$session a, v$sqltext bwhere a.sql_address =b.address order by address, piece;5.找使⽤CPU多的⽤户sessionselect a.sid,spid,status,substr(a.program,1,40) prog, a.terminal,osuser,value/60/100 value from v$session a,v$process b,v$sesstat cwhere c.statistic#=12 andc.sid=a.sid anda.paddr=b.addrorder by value desc;6.查看死锁信息SELECT (SELECT usernameFROM v$sessionWHERE SID = a.SID) blocker, a.SID, 'is blocking',(SELECT usernameFROM v$sessionWHERE SID = b.SID) blockee, b.SIDFROM v$lock a, v$lock bWHERE a.BLOCK = 1 AND b.request > 0 AND a.id1 = b.id1 AND a.id2 = b.id2;7.具有最⾼等待的对象SELECT o.OWNER,o.object_name, o.object_type, a.event,SUM (a.wait_time + a.time_waited) total_wait_timeFROM v$active_session_history a, dba_objects oWHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATEAND a.current_obj# = o.object_idGROUP BY o.OWNER,o.object_name, o.object_type, a.eventORDER BY total_wait_time DESC;SELECT a.session_id, s.osuser, s.machine, s.program, o.owner, o.object_name,o.object_type, a.event,SUM (a.wait_time + a.time_waited) total_wait_timeFROM v$active_session_history a, dba_objects o, v$session sWHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATEAND a.current_obj# = o.object_idAND a.session_id = s.SIDGROUP BY o.owner,o.object_name,o.object_type,a.event,a.session_id,s.program,s.machine,s.osuserORDER BY total_wait_time DESC;8.查询当前连接会话数select s.value,s.sid,ernamefromv$sesstat S,v$statname N,v$session Awheren.statistic#=s.statistic# andname='session pga memory'and s.sid=a.sidorder by s.value;9.等待最多的⽤户SELECT s.SID, ername, SUM (a.wait_time + a.time_waited) total_wait_time FROM v$active_session_history a, v$session sWHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATE GROUP BY s.SID, ernameORDER BY total_wait_time DESC;10.等待最多的SQLSELECT a.program, a.session_id, er_id, ername, s.sql_text,SUM (a.wait_time + a.time_waited) total_wait_timeFROM v$active_session_history a, v$sqlarea s, dba_users dWHERE a.sample_time BETWEEN SYSDATE - 30 / 2880 AND SYSDATEAND a.sql_id = s.sql_idAND er_id = er_idGROUP BY a.program, a.session_id, er_id, s.sql_text, ername;11.查看消耗资源最多的SQLSELECT hash_value, executions, buffer_gets, disk_reads, parse_callsFROM V$SQLAREAWHERE buffer_gets > 10000000 OR disk_reads > 1000000ORDER BY buffer_gets + 100 * disk_reads DESC;12.查看某条SQL语句的资源消耗SELECT hash_value, buffer_gets, disk_reads, executions, parse_callsFROM V$SQLAREAWHERE hash_Value = 228801498 AND address = hextoraw('CBD8E4B0'); 13.查询会话执⾏的实际SQLSELECT a.SID, ername, s.sql_textFROM v$session a, v$sqltext sWHERE a.sql_address = s.addressAND a.sql_hash_value = s.hash_valueAND a.status = 'ACTIVE'ORDER BY ername, a.SID, s.piece;14.显⽰正在等待锁的所有会话SELECT * FROM DBA_WAITERS;。

oracle数据库查询语句大全

oracle数据库查询语句大全

oracle数据库查询语句大全oracle数据库查询语句大全1.select*from table_name where rownum>begin and rownum<end< p="">2.sql="select*from table"con.prepareCall("SELECT*FROM(SELECT A.*,rownum r FROM("+sql+")A WHERE rownum<="+intPage*intPageSize+")B WHERE r>"+(intPage-1)*intPageSize);今天想查询一下Oracle数据库下所有的表名或某个用户下的所有表,半天没想起来.还是在网上找到了答案.select table_name from all_tables;//所有的表明select table_name from user_all_tables;//用户的所有的表一下是转贴的sql语句的帖子.select*from user_objects;//查询所有的表select*from dba_tables;//查询所有的表select*from all_tables;//查询所有的表select*from user_users//查出一个用户select*from all_users//查询所有用户select*from dba_users//查询所有用户select name,dbid from v$database;//查询数据库名和它的ID select*from/doc/b213452367.html,er_tab_columns;//查询表名,并显示列名describe表名//查询表结构select*from/doc/b213452367.html,er_tab_columns where table_name=表名//查询指定表名的字段2:查询数据库参数show parameter db;3:查询数据库的实例名select instance_name from v$instance;4:数据库域名数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用select value from v$parameter where name='db_domain'show parameter domain5:数据库服务名如果数据库有域名,则数据库服务名就是全局数据库名,如果该数据库没有定义域名,则数据库服务名与数据库名相同show parameter service_name6:显示当前用户show user7:直接登陆sqlplus"/as sysdba"8:当前ORACLE系统时间select sysdate from dual;9:查询数据库字典v$nls_parameter产看字符集相关参数select*from v$nls_parameters;//*************oracle基本操作语句(适合初学者)oracle操作语句:1.创建表create table表名(列名1类型,列名2类型);2.修改类属性alter table表名modify(列名类型);3.添加列alter table表名add(列名类型);4.添加主键约束和非空约束alter table表名add constraint pk_表名primary key(列名); alter table表名modify(列名not null);5.删除主键约束alter table表名drop primary key;alter table表名drop constraint pk_表名;6.失效约束alter table表名disable primary key;alter table表名disable constraint pk_表名;7.有效约束alter table表名enable primary key;alter table表名enable constraint pk_表名;8.删除列alter table表名drop column列名;9.设置某列不可用,然后删除alter table表名set unused(列名);alter table表名drop unused columns;10.修改表名rename表名1to表名2alter表名1rename to表名2;11.截断表truncate table表名;12.截断表保留行空间truncate table表名resue storage;13.查看表结构desc table表名;14.删除表drop table表名;15.插入记录例:insert into表名values(内容1,内容2,内容3,内容4);16.带参数对话方式插入行例:insert into表名values(&列名1,&列名2);insert into表名values(内容1,内容2);17.插入某几列记录insert into表名(列名1,列名2)values(内容1,内容2);18.为列插入空值(其列不能为not null)insert into表名values(内容1,null,null);19.创建表(包括主键及外键设置)方法一create table表名(列名1类型constraint pk_表名primary key,列名2类型not null,列名3类型constraint fk_表名reference表名(列名),列名3类型constraint ck_表名check(列名3in(''内容1'',''内容2'',''内容3'')) );20.查询所有行select*from表名;21.查询某几列select列名1,列名2from表名;22.重复行消除select distict列名from表名;23.where语句查询select*from表名where条件order by列名;(注:如number类型查出自动按升序排列,如要按降序排列,则select*from表名where条件order by列名desc;)24.创建表,方法二create table表名(列名1类型primary key,列名2类型not null,列名3类型check(列名3in('''','''','''')),列名4类型refernce表名(列名));25.修改列=‘?’的数据update表名set(列=?)where列=‘?’; 26.删除行delete from表名where条件;27.事务处理--事务处理update表名set列名(日期)=''30-5月-98''where条件;savepoint mark1;delete from表名where条件;savepoint mark2;rollback to savepoint mark1;rollback;28.建立用户user1,密码为password授予用户connect,resource的权限connect角色用于登录resource角色用于建表等.connect system/managercreate user user1identified by password;grant connect,resource to password;29.数据控制语言connect scott/tiger30.把对表1查询和修改的权限授予user1grant select,update on表1to user1;31.把对表表1中列1和列2修改的权限授予user1grant update(列1,列2)on表1to user1;32.把对表表1查询的权限授予用户user1并且user1用户还可以把这个权限授予别的用户(with grant option) grant select on表1to user1with grant option;33.从用户user1撤销对表1查询和修改的权限revoke select,update on表1from user1;</end<>。

查询表空间使用情况的sql语句

查询表空间使用情况的sql语句

查询表空间使用情况的sql语句查询表空间使用情况的SQL语句可以根据不同的数据库管理系统而有所不同。

以下是针对不同数据库管理系统的查询表空间使用情况的SQL语句示例:对于Oracle数据库:sql.SELECT tablespace_name,。

ROUND(SUM(bytes) / 1024 / 1024, 2)total_space_mb,。

ROUND(SUM(bytes NVL(used_bytes, 0)) / 1024 / 1024, 2) free_space_mb,。

ROUND(NVL(used_bytes, 0) / 1024 / 1024, 2) used_space_mb,。

ROUND((NVL(used_bytes, 0) / SUM(bytes)) 100, 2) used_percent.FROM (SELECT tablespace_name, bytes,。

(SELECT SUM(bytes)。

FROM dba_free_space.WHERE tablespace_name =df.tablespace_name) used_bytes.FROM dba_data_files df)。

GROUP BY tablespace_name;对于MySQL数据库:sql.SELECT table_schema "Database Name",。

SUM(data_length + index_length) / 1024 / 1024 "Database Size (MB)",。

SUM(data_free) / 1024 / 1024 "Free Space (MB)"FROM information_schema.tables.GROUP BY table_schema;对于SQL Server数据库:sql.SELECT.name AS [File Name],。

oracle表结构查询语句

oracle表结构查询语句

oracle表结构查询语句Oracle是一种关系型数据库管理系统,它具有强大的数据操作和查询功能。

在Oracle中,表是存储数据的基本单位,表结构查询语句用于查看表的结构信息,包括表名、字段名、字段类型、字段长度等。

下面列举了10个符合要求的Oracle表结构查询语句。

1. 查询指定表的所有字段名和字段类型```sqlSELECT COLUMN_NAME, DATA_TYPEFROM ALL_TAB_COLUMNSWHERE TABLE_NAME = '表名'```这条语句通过查询ALL_TAB_COLUMNS视图,可以获取指定表的所有字段名和字段类型。

2. 查询指定表的所有字段名和字段长度```sqlSELECT COLUMN_NAME, DATA_LENGTHFROM ALL_TAB_COLUMNSWHERE TABLE_NAME = '表名'```这条语句通过查询ALL_TAB_COLUMNS视图,可以获取指定表的所有字段名和字段长度。

3. 查询指定表的主键字段名```sqlSELECT COLUMN_NAMEFROM ALL_CONSTRAINTS C, ALL_CONS_COLUMNS CC WHERE C.TABLE_NAME = '表名'AND C.CONSTRAINT_TYPE = 'P'AND C.CONSTRAINT_NAME = CC.CONSTRAINT_NAMEAND CC.TABLE_NAME = '表名'```这条语句通过查询ALL_CONSTRAINTS和ALL_CONS_COLUMNS 视图,可以获取指定表的主键字段名。

4. 查询指定表的外键字段名和关联表名```sqlSELECT A.COLUMN_NAME, B.TABLE_NAMEFROM ALL_CONSTRAINTS A, ALL_CONSTRAINTS B WHERE A.TABLE_NAME = '表名'AND A.CONSTRAINT_TYPE = 'R'AND A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND B.TABLE_NAME != '表名'```这条语句通过查询ALL_CONSTRAINTS视图,可以获取指定表的外键字段名和关联表名。

Oracle中查询表的大小、表的占用情况和表空间的大小

Oracle中查询表的大小、表的占用情况和表空间的大小

Oracle中查询表的⼤⼩、表的占⽤情况和表空间的⼤⼩有两种含义的表⼤⼩。

⼀种是分配给⼀个表的物理空间数量,⽽不管空间是否被使⽤。

可以这样查询获得字节数:select segment_name, bytesfrom user_segmentswhere segment_type = 'TABLE';或者Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name另⼀种表实际使⽤的空间。

这样查询:analyze table emp compute statistics;select num_rows * avg_row_lenfrom user_tableswhere table_name = 'EMP';查看每个表空间的⼤⼩Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name1.查看剩余表空间⼤⼩SELECT tablespace_name 表空间,sum(blocks*8192/1000000) 剩余空间M FROM dba_free_space GROUP BY tablespace_name;2.检查系统中所有表空间总体空间select ,sum(a.bytes/1000000)总空间 from v$datafile a,v$tablespace b where a.ts#=b.ts# group by ; 1、查看Oracle数据库中表空间信息的⼯具⽅法: 使⽤oracle enterprise manager console⼯具,这是oracle的客户端⼯具,当安装oracle服务器或客户端时会⾃动安装此⼯具,在windows操作系统上完成oracle安装后,通过下⾯的⽅法登录该⼯具:开始菜单——程序——Oracle-OraHome92——Enterprise Manager Console(单击)——oracle enterprise manager console登录——选择‘独⽴启动’单选框——‘确定’ —— ‘oracle enterprise manager console,独⽴’ ——选择要登录的‘实例名’ ——弹出‘数据库连接信息’ ——输⼊’⽤户名/⼝令’ (⼀般使⽤sys⽤户),’连接⾝份’选择选择SYSDBA——‘确定’,这时已经成功登录该⼯具,选择‘存储’ ——表空间,会看到如下的界⾯,该界⾯显⽰了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间⼤⼩,已使⽤的表空间⼤⼩及表空间利⽤率。

oracle的sql语句

oracle的sql语句

oracle的sql语句Oracle的SQL语句可以用于查询、插入、更新和删除数据库中的数据。

以下是一些常见的Oracle SQL语句示例:1. 查询数据:- 查询所有记录:SELECT * FROM 表名;- 查询指定列:SELECT 列名1, 列名2 FROM 表名;- 带条件查询:SELECT * FROM 表名 WHERE 条件;- 排序查询:SELECT * FROM 表名 ORDER BY 列名ASC/DESC;- 分组查询:SELECT 列名, COUNT(*) FROM 表名GROUP BY 列名;2. 插入数据:- 插入单条记录:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);- 插入多条记录:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2), (值3, 值4), ...;3. 更新数据:- 更新单个字段:UPDATE 表名 SET 列名 = 新值WHERE 条件;- 更新多个字段:UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新值2 WHERE 条件;4. 删除数据:- 删除所有记录:DELETE FROM 表名;- 删除满足条件的记录:DELETE FROM 表名 WHERE 条件;5. 聚合函数:- 计算总数:SELECT COUNT(*) FROM 表名;- 计算平均值:SELECT AVG(列名) FROM 表名;- 计算最大值:SELECT MAX(列名) FROM 表名;- 计算最小值:SELECT MIN(列名) FROM 表名;- 计算求和:SELECT SUM(列名) FROM 表名;这些只是一些常见的Oracle SQL语句示例,实际使用中还可以结合其他语句和函数进行更复杂的查询和操作。

oracle sql 查询表的定义 语句

oracle sql 查询表的定义 语句

文章标题:Oracle SQL查询表的定义语句1. 概述在Oracle数据库中,表是存储数据的一个重要组成部分。

我们经常需要查询表的定义,包括表的结构、列名、数据类型等信息。

本文将介绍如何使用Oracle SQL查询表的定义语句,帮助读者更好地理解和使用表的信息。

2. 查询数据库中所有表的定义要查询数据库中所有表的定义,可以使用以下SQL语句:```sqlSELECT table_name, column_name, data_type, data_length FROM user_tab_columns;```这条语句将返回当前用户下所有表的表名,列名,数据类型和数据长度等信息。

用户也可以根据需要添加其他列的信息。

3. 查询特定表的定义如果用户想查询特定表的定义,可以使用以下SQL语句:```sqlDESC table_name;```这条语句将返回指定表的结构,包括列名,数据类型,空值约束和主键等信息。

用户可以通过DESCRIBE或DESC命令来执行该语句。

4. 查询表的主键用户还可以使用以下SQL语句来查询表的主键信息:```sqlSELECT user_cons_columns.column_name, user_constr本人nts.constr本人nt_typeFROM user_cons_columnsJOIN user_constr本人nts ON user_cons_columns.constr本人nt_name = user_constr本人nts.constr本人nt_name WHERE user_cons_columns.table_name = '表名' ANDuser_constr本人nts.constr本人nt_type = 'P';```这条语句将返回指定表的主键列名和主键约束类型信息。

用户可以根据需要修改表名和约束类型来查询不同类型的约束。

oracle数据库表空间扩容步骤

oracle数据库表空间扩容步骤

oracle数据库表空间扩容步骤扩容Oracle数据库表空间的步骤如下:1. 检查表空间的当前使用情况:使用以下查询语句可以查看表空间的当前使用情况。

```SELECTtablespace_name,round((1 - (sum(bytes) / (maxbytes))) * 100, 2)"Used_percentage"FROMdba_data_filesGROUP BYtablespace_name,maxbytes;```2. 确定需要扩容的表空间:根据查询结果,确定需要扩容的表空间。

3. 确定扩容的方式:有两种扩容方式,分别是自动扩容和手动扩容。

- 自动扩容:在表空间的数据文件达到其最大容量时,Oracle 会自动增加数据文件的大小。

如果使用自动扩容方式,需要确认表空间的自动扩容设置是否已开启。

- 手动扩容:手动扩容需要手动添加一个新的数据文件到表空间中。

4. 自动扩容:如果使用自动扩容方式,可以通过以下命令检查自动扩容设置是否已开启。

```SELECTautoextensibleFROMdba_data_filesWHEREtablespace_name = '<表空间名称>';```如果自动扩容设置为“YES”,则表示已开启自动扩容。

如果自动扩容设置为“NO”,则需要使用手动扩容方式。

5. 手动扩容:如果使用手动扩容方式,可以通过以下命令向表空间添加一个新的数据文件。

```ALTER TABLESPACE <表空间名称> ADD DATAFILE '<数据文件路径>' SIZE <新数据文件大小>;```其中,<表空间名称>是需要扩容的表空间的名称,<数据文件路径>是新的数据文件的路径,<新数据文件大小>是新的数据文件的大小。

6. 检查扩容结果:可以使用之前的查询语句再次检查表空间的使用情况,确认扩容是否成功。

oracle查询表结构sql语句

oracle查询表结构sql语句

oracle查询表结构sql语句1. 查询表结构的SQL语句在Oracle数据库中,可以使用以下SQL语句查询表的结构信息:1.1. 查询所有表的结构```SELECT owner, table_name, column_name, data_type, data_length, nullableFROM all_tab_columnsORDER BY owner, table_name, column_id;```该语句会返回所有表的所有列的结构信息,包括所属用户(owner)、表名(table_name)、列名(column_name)、数据类型(data_type)、数据长度(data_length)和是否可为空(nullable)等。

1.2. 查询指定表的结构```SELECT column_name, data_type, data_length, nullableFROM all_tab_columnsWHERE owner = 'SCHEMA_NAME' AND table_name = 'TABLE_NAME' ORDER BY column_id;```将上述语句中的'SCHEMA_NAME'替换为要查询表所属的用户,'TABLE_NAME'替换为要查询的表名,可以获取指定表的结构信息。

1.3. 查询表的主键信息```SELECT cols.table_name, cols.column_name, cons.constraint_nameFROM all_constraints cons, all_cons_columns colsWHERE cons.constraint_type = 'P'AND cons.constraint_name = cols.constraint_nameAND cons.owner = cols.ownerAND cols.table_name = 'TABLE_NAME'AND cols.owner = 'SCHEMA_NAME';```将上述语句中的'SCHEMA_NAME'替换为要查询表所属的用户,'TABLE_NAME'替换为要查询的表名,可以获取指定表的主键信息。

在Oracle数据库中执行SQL查询

在Oracle数据库中执行SQL查询

在Oracle据库中执行SQL询
在Oracle数据库中执行SQL查询需要使用SQL Plus或SQL开发工具等工具。

以下是使用SQL Plus执行SQL查询的步骤:
1.打开终端或命令提示符窗口,并输入以下命令以连接到Oracle数据库:bash复制代码
sqlplus username/password@hostname:port/service_name
其中,username是您在Oracle数据库中的用户名,password是您的密码,hostname 是数据库所在的主机名,port是数据库监听的端口号,service_name是Oracle服务名称。

2. 连接成功后,您将看到SQL*Plus提示符。

现在,您可以在提示符下输入SQL查询语句并按下回车键执行查询。

例如,要查询名为"employees"的表中的所有记录,可以输入以下命令:
sql复制代码
SELECT * FROM employees;
3.查询结果将显示在屏幕上。

您可以按需使用SQL语句进行过滤、排序、聚
合等操作。

4.要退出SQL*Plus,请输入以下命令:
sql复制代码
EXIT;
这将关闭与Oracle数据库的连接并返回到终端或命令提示符窗口。

Oracle---SQL语句大全—查看表空间

Oracle---SQL语句大全—查看表空间

Oracle---SQL语句⼤全—查看表空间SQL语句⼤全—查看表空间(⼀)查看表空间的名称及⼤⼩:SQL> SELECT T.TABLESPACE_NAME, ROUND(SUM(BYTES/(1024 * 1024)), 0) TS_SIZEFROM DBA_TABLESPACES T, DBA_DATA_FILES DWHERE T.TABLESPACE_NAME = D.TABLESPACE_NAMEGROUP BY T.TABLESPACE_NAME;查看表空间物理⽂件的名称及⼤⼩:SQL> SELECT TABLESPACE_NAME,FILE_ID,FILE_NAME,ROUND(BYTES / (1024 * 1024), 0) TOTAL_SPACEFROM DBA_DATA_FILESORDER BY TABLESPACE_NAME;查看回滚段名称及⼤⼩:SQL> SELECT SEGMENT_NAME,TABLESPACE_NAME,R.STATUS,(INITIAL_EXTENT / 1024) INITIALEXTENT,(NEXT_EXTENT / 1024) NEXTEXTENT,MAX_EXTENTS,V.CUREXT CUREXTENTFROM DBA_ROLLBACK_SEGS R, V$ROLLSTAT VWHERE R.SEGMENT_ID = N(+)ORDER BY SEGMENT_NAME;如何查看某个回滚段⾥⾯,跑的什么事物或者正在执⾏什么sql语句:SQL> SELECT D.SQL_TEXT, FROM V$ROLLNAME A, V$TRANSACTION B, V$SESSION C, V$SQLTEXT DWHERE N = B.XIDUSNAND B.ADDR = C.TADDRAND C.SQL_ADDRESS = D.ADDRESSAND C.SQL_HASH_VALUE = D.HASH_VALUEAND N = 1;(备注:你要看哪个,就把usn=?写成⼏就⾏了)查看控制⽂件:SQL> SELECT * FROM V$CONTROLFILE;查看⽇志⽂件:SQL> COL MEMBER FORMAT A50SQL>SELECT * FROM V$LOGFILE;如何查看当前SQL*PLUS⽤户的sid和serial#:SQL>SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE AUDSID=USERENV('SESSIONID');如何查看当前数据库的字符集:SQL>SELECT USERENV('LANGUAGE') FROM DUAL;SQL>SELECT USERENV('LANG') FROM DUAL;怎么判断当前正在使⽤何种SQL优化⽅式:⽤EXPLAIN PLAN產⽣EXPLAIN PLAN¡檢查PLAN_TABLE中ID=0的POSITION列的值SQL>SELECT DECODE(NVL(POSITION,-1),-1,'RBO',1,'CBO') FROM PLAN_TABLE WHERE ID=0;如何查看系统当前最新的SCN号:SQL>SELECT MAX(KTUXESCNW * POWER(2,32) + KTUXESCNB) FROM X$KTUXE;在ORACLE中查找TRACE⽂件的脚本:SQL>SELECT U_DUMP.VALUE || '/' || INSTANCE.VALUE || '_ORA_' ||V$PROCESS.SPID || NVL2(V$PROCESS.TRACEID, '_' || V$PROCESS.TRACEID, NULL ) || '.TRC'"TRACE FILE" FROM V$PARAMETERU_DUMP CROSS JOIN V$PARAMETER INSTANCE CROSS JOIN V$PROCESS JOIN V$SESSION ON V$PROCESS.ADDR =V$SESSION.PADDR WHERE U_ = 'USER_DUMP_DEST' AND = 'INSTANCE_NAME' AND V$SESSION.AUDSID=SYS_CONTEXT('USERENV','SESSIONID');SQL>SELECT D.VALUE || '/ORA_' || P.SPID || '.TRC' TRACE_FILE_NAMEFROM (SELECT P.SPID FROM SYS.V_$MYSTAT M,SYS.V_$SESSION S,SYS.V_$PROCESS P WHERE M.STATISTIC# = 1 ANDS.SID = M.SID AND P.ADDR = S.PADDR) P,(SELECT VALUE FROM SYS.V_$PARAMETER WHERE NAME ='USER_DUMP_DEST') D;如何查看客户端登陆的IP地址:SQL>SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM DUAL;如何在⽣产数据库中创建⼀个追踪客户端IP地址的触发器:SQL>CREATE OR REPLACE TRIGGER ON_LOGON_TRIGGER AFTER LOGON ON DATABASEBEGINDBMS_APPLICATION_INFO.SET_CLIENT_INFO(SYS_CONTEXT('USERENV', 'IP_ADDRESS'));END;REM 记录登陆信息的触发器CREATE OR REPLACE TRIGGER LOGON_HISTORYAFTER LOGON ON DATABASE --WHEN (USER='WACOS') --ONLY FOR USER 'WACOS'BEGININSERT INTO SESSION_HISTORY SELECT USERNAME,SID,SERIAL#,AUDSID,OSUSER,ACTION,SYSDATE,NULL,SYS_CONTEXT('USERENV','IP_ADDRESS'),TERMINAL,MACHINE,PROGR = USERENV('SESSIONID');END;查询当前⽇期:SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD,HH24:MI:SS') FROM DUAL;查看所有表空间对应的数据⽂件名:SQL>SELECT DISTINCT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM DBA_DATA_FILES;查看表空间的使⽤情况:SQL>SELECT SUM(BYTES)/(1024*1024) AS FREE_SPACE,TABLESPACE_NAMEFROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;SQL>SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE CWHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;COLUMN TABLESPACE_NAME FORMAT A18;COLUMN SUM_M FORMAT A12;COLUMN USED_M FORMAT A12;COLUMN FREE_M FORMAT A12;COLUMN PTO_M FORMAT 9.99;SELECT S.TABLESPACE_NAME,CEIL(SUM(S.BYTES/1024/1024))||'M' SUM_M,CEIL(SUM(EDSPACE/1024/1024))||'M'USED_M,CEIL(SUM(S.FREESPACE/1024/1024))||'M' FREE_M, SUM(EDSPACE)/SUM(S.BYTES)PTUSED FROM (SELECT B.FILE_ID,B.TABLESPACE_NAME,B.BYTES, (B.BYTES-SUM(NVL(A.BYTES,0))) USEDSPACE, SUM(NVL(A.BYTES,0)) FREESPACE, (SUM(NVL(A.BYTES,0))/(B.BYTES)) * 100 FREEPERCENTRATIO FROM SYS.DBA_FREE_SPACE A,SYS.DBA_DATA_FILESB WHERE A.FILE_ID(+)=B.FILE_ID GROUP BY B.FILE_ID,B.TABLESPACE_NAME,B.BYTES ORDER BY B.TABLESPACE_NAME)S GROUP BY S.TABLESPACE_NAME ORDER BY SUM(S.FREESPACE)/SUM(S.BYTES) DESC;查看数据⽂件的hwm(可以resize的最⼩空间)和⽂件头⼤⼩:SELECT V1.FILE_NAME,V1.FILE_ID,NUM1 TOTLE_SPACE,NUM3 FREE_SPACE,NUM1-NUM3 "USED_SPACE(HWM)",NVL(NUM2,0) DATA_SPACE,NUM1-NUM3-NVL(NUM2,0) FILE_HEADFROM(SELECT FILE_NAME,FILE_ID,SUM(BYTES) NUM1 FROM DBA_DATA_FILES GROUP BY FILE_NAME,FILE_ID) V1,(SELECT FILE_ID,SUM(BYTES) NUM2 FROM DBA_EXTENTS GROUP BY FILE_ID) V2,(SELECT FILE_ID,SUM(BYTES) NUM3 FROM DBA_FREE_SPACE GROUP BY FILE_ID) V3WHERE V1.FILE_ID=V2.FILE_ID(+) AND V1.FILE_ID=V3.FILE_ID(+);数据⽂件⼤⼩及头⼤⼩:SELECT V1.FILE_NAME,V1.FILE_ID,NUM1 TOTLE_SPACE,NUM3 FREE_SPACE,NUM1-NUM3 USED_SPACE,NVL(NUM2,0) DATA_SPACE,NUM1-NUM3-NVL(NUM2,0) FILE_HEADFROM(SELECT FILE_NAME,FILE_ID,SUM(BYTES) NUM1 FROM DBA_DATA_FILES GROUP BY FILE_NAME,FILE_ID) V1,(SELECT FILE_ID,SUM(BYTES) NUM2 FROM DBA_EXTENTS GROUP BY FILE_ID) V2,(SELECT FILE_ID,SUM(BYTES) NUM3 FROM DBA_FREE_SPACE GROUP BY FILE_ID) V3WHERE V1.FILE_ID=V2.FILE_ID(+)AND V1.FILE_ID=V3.FILE_ID(+);(运⾏以上查询,我们可以如下信息:Totle_pace:该数据⽂件的总⼤⼩,字节为单位Free_space:该数据⽂件的剩于⼤⼩,字节为单位Used_space:该数据⽂件的已⽤空间,字节为单位Data_space:该数据⽂件中段数据占⽤空间,也就是数据空间,字节为单位File_Head:该数据⽂件头部占⽤空间,字节为单位)。

oracle sql查看表的建表语句

oracle sql查看表的建表语句

一、概述在使用Oracle数据库时,有时候我们需要查看某张表的建表语句。

这对于了解表的结构以及进行数据库设计和维护工作非常有帮助。

本文将介绍如何使用Oracle SQL语句查看表的建表语句。

二、使用工具在Oracle数据库中,我们可以使用SQL*Plus或者SQL Developer 等工具来执行SQL语句。

这些工具都提供了方便的界面和功能,可用于查询和管理数据库中的对象。

三、查看建表语句的SQL语句要查看表的建表语句,我们可以通过以下SQL语句来实现:```SELECT dbms_metadata.get_ddl('TABLE', 'TABLE_NAME','SCHEMA_NAME')FROM dual;```在这个SQL语句中,我们使用了dbms_metadata.get_ddl函数来获取表的建表语句。

其中,TABLE_NAME是要查看的表的名称,SCHEMA_NAME是表所在的模式名称。

四、示例下面通过一个示例来演示如何使用以上SQL语句来查看表的建表语句。

假设有一个名为EMPLOYEE的表,它存储了员工的基本信息。

我们可以使用以下SQL语句来查看这个表的建表语句:```SELECT dbms_metadata.get_ddl('TABLE', 'EMPLOYEE', 'HR') FROM dual;```其中,'EMPLOYEE'是表的名称,'HR'是表所在的模式名称。

五、注意事项在使用以上SQL语句时,需要注意以下几点:1. 需要有适当的权限来执行dbms_metadata.get_ddl函数。

通常情况下,只有具有DBA权限或者CREATE ANY TABLE权限的用户才能执行该函数。

2. 在执行SQL语句时,需要替换相应的表名称和模式名称。

3. 如果要查看其他类型的对象(如索引、触发器等)的建表语句,可以修改SQL语句中的参数。

Oracle查看当前用户的缺省表空间

Oracle查看当前用户的缺省表空间

Oracle查看当前用户的缺省表空间1 PL/SQL代表 A PROCEDURAL LANGUAGE/SQL B PROGRAM LANGUAGE SQL C POWER LANGUAGE SQL D 都不对2 _____引擎执行PL/SQL块A SQL B PL/SQL C ORACLE D 都不对3 一个对象可以呈现多种形式的能力称为A 多态B 继承C 封装D 以上都不对4 PLSQL块是由哪几个如果在Oracle启动或者关闭的过程中进行操作,有可能出现这个错误,如果是这种情况之需要等一下再进行操作就可以了。

不过有的情况是因为Oracle一直无法完成启动或者关闭的操作,这样用户会一直收到这个提示,解决方法如下:1. sqlplus /nolog 2. connect as1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。

2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。

类如:101a1001 101a1001 102a1002 101.以下命令哪个是SQL*PLUS 命令? A.UPDATE B.EDITC.SELECTD.ALTER TABLE 2.用SQLPLUS的_____命令可以查看表的结构信息,包括列的名称和数据类型A DESCRIPTION B DESC C SHOW TABLE D SHOW USER 3. Oracle的前端工具是: ASQL*PLUS B C++ C PL/SQL D JAVA1. 如何建立一个备份控制文件?解答:Alter database backup control file to trace.2. 给出数据库正常启动所经历的几种状态? 解答:STARTUP NOMOUNT –数据库实例启动STARTUP MOUNT –数据库装载STARTUP OPEN –数据库打开3. 哪个column可以用来区1. ORACLE用来判断列值是否为空的操作符是____ A ==NULLB IS NULLC AS NULLD NULLIS 2 分析以下的SQL命令SELECT i.id_number, m.id_number FROM inventory i, manufacturer m WHERE i.manufacturer_id = m.id_number ORDER BY inventory.description; 如。

在oracle11g中使用oraclesqldeveloper创建、查看表空间的命令

在oracle11g中使用oraclesqldeveloper创建、查看表空间的命令

在oracle11g中使⽤oraclesqldeveloper创建、查看表空间的命令通过pl/sql登录到Oracle数据库上,然后执⾏菜单:⽂件/新建/命令窗⼝,打开⼀个命令窗⼝然后在该命令窗⼝中执⾏脚本创建和删除表空间创建表空间Sql>create tablespace histdb datafile 'D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf' size 200m autoextend on next 10m maxsize unlimited;Sql>alter database datafile 'D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf' autoextend on;1) DATAFILE: 表空间数据⽂件存放路径2) SIZE: 起初设置为200M3) UNIFORM: 指定区尺⼨为128k,如不指定,区尺⼨默认为64k4) 空间名称histdb 与数据⽂件名称 histdb.dbf 不要求相同,可随意命名.5) AUTOEXTEND ON/OFF 表⽰启动/停⽌⾃动扩展表空间6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf ' resize 500m; //⼿动修改数据⽂件⼤⼩为500M删除表空间DROP TABLESPACE histdb INCLUDING CONTENTS AND DATAFILES;查看selectb.file_name 物理⽂件名,b.tablespace_name 表空间,b.bytes/1024/1024 ⼤⼩M,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使⽤M,substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利⽤率from dba_free_space a,dba_data_files bwhere a.file_id=b.file_idgroup by b.tablespace_name,b.file_name,b.bytesorder by b.tablespace_name。

查看ORACLE数据库及表信息

查看ORACLE数据库及表信息

查看ORACLE数据库及表信息-- 查看ORACLE 数据库中本⽤户下的所有表SELECT table_name FROM user_tables;-- 查看ORACLE 数据库中所有⽤户下的所有表select user,table_name from all_tables;-- 查看ORACLE 数据库中本⽤户下的所有列select table_name,column_name from user_tab_columns;-- 查看ORACLE 数据库中本⽤户下的所有列select user,table_name,column_name from all_tab_columns;-- 查看ORACLE 数据库中的序列号select * from user_sequences;-- 上⾯的所有对象,都可以通过下⾯的SQL语句查询得到-- 查询所有的⽤户⽣成的ORACLE对象SELECT * FROM user_objects;-- 查看ORACLE 数据库中所有表的注释select table_name,comments from user_tab_comments;-- 查看ORACLE 数据库中所有列的注释select table_name,column_name,comments from user_col_comments;-- 给表加ORACLE的注释COMMENT ON TABLE aa10 IS '系统参数表';-- 给列加ORACLE的注释COMMENT ON COLUMN aa10.aaa100 IS '参数类别';-- 查看表中列的属性,包括数据类型,是否⾮空等DESC aa10;-- 通过系统表,查看表中列的属性,包括数据类型,是否⾮空等SELECT table_name,COLUMN_ID,column_name,data_type,data_length,DATA_PRECISION,NULLABLEFROM user_tab_columnsORDER BY table_name,COLUMN_ID;--查看所有表空间selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name--查看未使⽤表空间⼤⼩selecttablespace_name,sum(bytes)/1024/1024 from dba_free_space group bytablespace_name;-- 查看数据库中表、索引占⽤的数据库空间⼤⼩SELECT * FROM user_segments;-- 查看所有表的记录数CREATE TABLE table_count(table_name VARCHAR2(50),columns NUMBER(20));-- 通过PB运⾏下⾯的语句,得到结果集,将结果集在PB下执⾏,最后提交select 'insert into table_count values('''||table_name||''', (select count(1)from '||table_name||'));//'||comments from user_tab_comments; -- 所有表的记录都在table_count了SELECT * FROM table_count;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

查看Oracle表空间SQL语句
1.查看所有表空间大小
SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024tablespacesize_M FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME;
2.未使用的表空间大小
SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024TABSPACE_FREE_SIZE_M FROM DBA_FREE_SPACE
group by TABLESPACE_NAME;
3.所有使用空间可以这样计算
SELECT a.tablespace_name,a.total,b.free,a.total-b.free used from
(SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024TOTAL FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME)A,
(SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024FREE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME)B
where a.tablespace_name=b.tablespace_name;
4.下面这条语句查看所有段的大小
select segment_nam,sum(bytes)/1024/1024from USER_EXTENTS GROUP BY segment_name;
5.在命令行情况下如何将结果放到一个文件里用到了telnet
SET TRIMSPOOL ON
SET LINESIZE2000
SET PAGESIZE2000
SET NEWPAGE1
SET HEADING OFF
SET TERM OFF
SPOOL D:\EXP.TXT
SELECT*FROM V$DATABASE;
spool off
6.查看当前正在使用的临时表空间大小
SELECT ERNAME,SE.SID,SU.BLOCKS*TO_NUMBER(RTRIM(P.VALUE))AS SPACE,tablespace,segtype,sql_text
FROM V$SORT_USAGE SU,V$PARAMETER P,V$SESSION SE,V$SQL S
WHERE ='db_block_size'
AND SU.SESSION_ADDR=SE.SADDR
AND S.HASH_VALUE=SU.SQLHASH
AND S.ADDRESS=SU.SQLADDR
order by ername,se.sid;
7.查询所有的表空间
SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;
8.查看表空间中分布的用户信息
SELECT TABLESPACE_NAME,OWNER,SUM(BYTES)FROM DBA_SEGMENTS
GROUP BY TABLESPACE_NAME,OWNER;
9.查看表空间已经使用的百分比
SELECT A.TABLESPACE_NAME,A.BYTES/1024/1024"Sum MB",(A.BYTES-B.BYTES)/1024/1024"used MB",B.BYTES/1024/1024"free MB", round(((a.bytes-b.bytes)/a.bytes)*100,2)"percent_used"FROM
(SELECT TABLESPACE_NAME,SUM(BYTES)BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME)A,
(SELECT TABLESPACE_NAME,SUM(BYTES)BYTES,MAX(BYTES)LARGEST FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME)B
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME
ORDER BY((A.BYTES-B.BYTES)/A.BYTES)DESC;
--"Sum MB"表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小
--比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB"就是700MB
--"userd MB"表示表空间已经使用了多少
--"free MB"表示表空间剩余多少
--”percent_user"表示已经使用的百分比
10.比如从9中查看到MLOG_NORM_SPACE表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数据文件
--每个数据文件是否自动扩展,可以自动扩展的最大值
SELECT FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024"byte MB",MAXBYTES/1024/1024"maxbytes MB"FROM DBA_DATA_FILES
where tablespace_name='EXAMPLE';
11.查看xxx表空间是否为自动扩展
SELECT
FILE_ID,FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE,INCREMENT_BY FROM DBA_DATA_FILES
order by file_id desc;
12.比如MLOG_NORM_SAPCE表空间目前的大小为19G,但是最大每个数据文件只能为20GB,数据文件快要写满,
--可以境加表空间的数据文件,用操作系统unix,linux中的df-g命令
--获取创建表空间的语句
SELECT DBMS_METADATA.GET_DDL('TABLESPACE','EXAMPLE')from dual;
13.确认磁盘空间足够,增加一个数据文件
ALTER TABLESPACE MLOG_NORM_SPACE
ADD DATAFILE'/orace/Mlog_Norm_data001.dbf'
SIZE10M AUTOEXTEND ON MAXSIZE20G;
14.验证已经增加的数据文件
SELECT FILE_NAME,FILE_ID,TABLESPACE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='MLOG_NORM_SPACE';
15.删除表空间数据文件
ALTER TABLESPACE MLOG_NORM_SPACE
drop datafile'/orace/Mlog_Norm_data001.dbf';
16.确定控制文件的名称与大小
select name,block_size*file_size_blks bytes from v$controlfile;
17.确定联机重做日志文件成员的名称和大小
select member,bytes from v$log join v$logfile using(group#);
18.确定数据文件和临时文件的名称和大小
SELECT NAME,BYTES FROM V$DATAFILE
UNION ALL
select name,bytes from V$TEMPFILE;。

相关文档
最新文档