oracle常用经典sql查询
1、删除重复记录
delete from wr_recordformtable a
where rowid!=
(select max(rowid)
from wr_recordformtable t
where
t.pid=a.pid and t.tablename=a.tablename
)
2、获得视图执行的时间,
精确获得时间
create table test_view (viewname varchar2(32),d integer,cn integer);
create or replace procedure ppp is
cursor c1 is
select object_name
from user_objects o
where o.object_type = 'VIEW' and o.status = 'VALID';
sqlstr varchar2(1000);
d1 timestamp;
d2 timestamp;
d integer;
num integer;
dstr varchar2(100);
begin
delete from test_view;
commit;
for rr in c1 loop
begin
d1 := systimestamp;
sqlstr := 'select count(*) from ' || rr.object_name;
execute immediate sqlstr
into num;
d2 := systimestamp;
dstr := to_char((d2 - d1), 'hh24:mi:ssx');
dstr := substr(dstr, 9, length(dstr) - 9);
d := to_number(substr(dstr, 1, 2)) * 3600 * 1000 +
to_number(substr(dstr, 4, 2)) * 60 * 1000 +
to_number(substr(dstr, 7, 2)) * 1000 +
to_number(substr(dstr, 10, 3));
dbms_output.put_line(dstr || '--' || d);
insert into test_view values (rr.object_name, d, num);
commit;
exception
when others then
dbms_output.put_line(sqlstr || ':' || sqlcode || ':' ||
sqlerrm);
end;
end loop;
3、返回rownum在
4-10之间的数据
select rownum,month,sell from sale where rownum<10
minus
select rownum,month,sell from sale where rownum<5;
4、查询当前用户下所有表
的记录数
select 'select '''||tname||''',count(*) from '||tname||';' from tab
where tabtype='TABLE';
5、快速编译所有视图
----当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,
----因为该表空间视图到其它表空间的表的连接会出现问题,可以利用PL/SQL的语言特性,快速编译。
SQL> SPOOL ON.SQL
SQL> SELECT'ALTER VIEW '||TNAME||' COMPILE;' FROM TAB;
SQL> SPOOL OFF
然后执行ON.SQL即可。
SQL> @ON.SQL
6、 如何删除表中的列?
alter table 表1 drop column 列1;
7、查询primary
key和forgen key的关系表
select
a.owner 外键拥有者,
a.table_name 外键表,
c.column_name 外键列,
b.owner 主键拥有者,
b.table_name 主键表,
d.column_name 主键列
from
user_constraints a,
user_constraints b,
user_cons_columns c,
user_cons_columns d
where
a.r_constraint_name=b.constraint_name
and a.constraint_type='R'
and b.constraint_type='P'
and a.r_owner=b.owner
and a.constraint_name=c.constraint_name
and b.constraint_name=d.constraint_name
and a.owner=c.owner
and a.table_name=c.table_name
and b.owner=d.owner
and b.table_name=d.table_name
/
8、查询重复记录:
法一: 用Group by语句 此查找很快的
select count(num), max(name) from student
--查找表中num列重复的,列出重复的记录数,并列出他的name属性
group by num
having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次
delete from student(上面Select的)
这样的话就把所有重复的都删除了。-----慎重
法二:当表比较大(例如10万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法:
---- 执行下面SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录
SELECT * FROM EM5_PIPE_divFAB
WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_divFAB D
--D相当于First,Second
WHERE EM5_PIPE_divFAB.DRAWING=D.DRAWING AND
EM5_PIPE_divFAB.DSNO=D.DSNO);
9、Oracle中如何实
现某一字段自动增加1?
实现方法:
建立一个最小为1,最大为999999999的一个序列号会自动循环的序列
create sequence 序列名
increment by 1
start with 1
maxvalue 999999999
cycle;
当向表中插入数据时,SQL语句写法如下:
SQL> insert into 表名 values(序列名.nextval,列1值,列2值);
10、如何查看什么时间有
哪些数据库对象结构被修改过?
SELECT OBJECT_NAME, --对象名
OBJECT_TYPE, --对象类型
TO_CHAR(CREATED, 'YYYY-Mon-DD HH24:MI')
CREATE_TIME, --创建时间
TO_CHAR(LAST_DDL_TIME, 'YYYY-Mon-DD HH24:MI') MOD_TIME,
--修改时间
TIMESTAMP, --时间戳
STATUS --状态
FROM USER_OBJECTS
WHERE to_char(LAST_DDL_TIME,'yyyymmdd')>'20020101';
11、获得一个表占的空
间
select s.*,bytes/1024/1024 from user_segments s
一般blob占的空间比较
大,通过如下表,可以获得LOBSEGMENT是哪个表的那个字段
select * from user_lobs
来源:http://shylhd.iteye.com/blog/445709
分享到:
相关推荐
本篇文章将基于"oracle常用查询语句示例"这一主题,深入探讨在Oracle中执行多表查询和单表中复杂查询的方法。 首先,我们来看单表查询。在Oracle中,基础的SELECT语句用于从单个表中检索数据。例如: ```sql ...
Oracle 常用查询语句 本文总结了十个常用的 Oracle 查询语句,涵盖了查看表空间、回滚段、控制文件、日志文件、表空间使用情况、数据库对象、数据库版本、数据库创建日期、归档方式、长时间运行的 SQL 语句和数据表...
oracle常用查询 问题+答案 觉得是初学 比较好的东西。
Oracle常用的sql语句文件以及说明(doc、txt)文件 例如:analyze分析表、oracle 常用表和视图、Select Start with ... Connect by 分层次输出、SQL语句优化、函数的使用和说明。
Oracle 查询语句大全-精华版 Oracle 查询语句大全是 Oracle 数据库管理系统中最基本也是最重要的组成部分,用于管理和维护数据库。本文将详细介绍 Oracle 查询语句的使用方法和实践操作。 一、创建用户和授权 在 ...
根据提供的信息,我们可以总结出以下Oracle数据库中常用的SQL查询语句及它们的功能: ### 1. 查询表空间及其总大小 ```sql SELECT t.tablespace_name, ROUND(SUM(bytes / (1024 * 1024)), 0) AS ts_size FROM dba...
Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句Oracle常用脚本与语句...
本压缩包“oracle常用经典sql查询.rar”显然是一份关于如何在Oracle环境中高效运用SQL查询的教程资料,适合数据库管理员、开发人员以及对Oracle数据库感兴趣的用户学习。 首先,我们来探讨SQL的基础概念。SQL,全称...
3. 数据查询语言(DQL):以SELECT为主,用于检索数据,是最常用的部分。 4. 数据控制语言(DCL):涉及权限管理,如GRANT和REVOKE,用于分配和撤销用户权限。 5. 事务控制:如COMMIT、ROLLBACK和SAVEPOINT,用于...
以下是一些常用的Oracle SQL查询,这些查询涵盖了从基础的表空间信息到复杂的数据库对象状态和性能监控。 1. **查看表空间的名称及大小**: 这个查询通过`dba_tablespaces`和`dba_data_files`视图获取每个表空间的...
本资源“oracle常用经典sql查询”汇集了Oracle环境中的一些常见且实用的SQL查询语句,帮助用户提高数据库操作效率。以下是对这些经典查询语句的详细解读: 1. **基本查询操作** - `SELECT * FROM table_name;`:这...
oracle常用sql查询.pdf.rar
根据给定的文件信息,以下是对“oracle常用经典SQL查询方案”的详细解析,涉及的知识点主要包括Oracle数据库中的数据字典视图、空间管理、对象管理、版本查询、数据库模式、性能监控等方面。 ### 1. 查询表空间大小...
以下是一些Oracle常用的经典SQL查询知识点,这些知识将帮助你更高效地操作Oracle数据库。 1. **基本查询操作**: - `SELECT`语句:用于从表中选择数据,如`SELECT column1, column2 FROM table_name;` - `WHERE`...
### Oracle常用命令详解 #### 一、Oracle的启动与关闭 **1. 在单机环境下的启动与关闭** - **启动Oracle系统** - **切换用户:** 首先需要切换到Oracle用户环境。 ```bash su - oracle ``` - **使用`svrmgrl`...
oracle常用函数oracle常用函数oracle常用函数oracle常用函数oracle常用函数oracle常用函数oracle常用函数
ORACLE常用傻瓜问题1000问: 1. Oracle安裝完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS WEB CACHE的初始默认用户和密码...
oracle 常用命令大全 oracle dba 常用命令 1 运行 SQLPLUS 工具 sqlplus 2 以 OS 的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直接进入 SQLPLUS 命令提示符 sqlplus /nolog 5 在命令提示符以 OS 身份...