`

oracle 常用sql语句积累

 
阅读更多
1.删除重复列
delete from t t1 where t1.rowid not in(select min(rowid) from t t2 where t1.age=t2.age)


2.获得年龄最大的前三名
select age from (select age from t order by age desc) where rownum<=3


3.解锁表
SELECT /*+ rule */
s.username,
decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
o.owner,
o.object_name,
o.object_type,
s.sid,
s.serial#,
s.terminal,
s.machine,
s.program,
s.osuser
FROM v$session s, v$lock l, dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT Null ;
--kill session语句
alter system kill session's.sid,s.serial#';


4.按照特定的顺序排序
select name from user order by decode(name,'张三',0), decode(name,'李四',1) ;


5.分区 范围分区,散列分区,列表分区和复合分区
create table t
(
id int
)
partition by range(id)
(
partition p1 values less than(60),partition p2 values less than(100)
) ;
create table graderecord
(
sno varchar2(10),
sname varchar2(20),
dormitory varchar2(3),
grade int
)
partition by hash(sno)
(
partition p1,
partition p2,
partition p3
);
select * from t partition(p2) ;


6.//查询列的注释
select t.table_name as 列名, t.comments as 注释
from user_col_comments t
where t.table_name = 'GPS_LOCATIONTEMP'
and t.column_name = 'CLIENTEVENTID' ;


7.//单引号拼接 ''表示一个单引号
select 'abcd'''||'abd'||'''abcd''' as res from dual;
select * from s t where t.c = ''||chr(39)||''; --也是查询单引号的语句
select * from s t where t.c = ''''; --这条语句和上面的是一样的


8.//行转列
select
Student,
sum(case Course when '数学' then Score else null end) 数学,
sum(case Course when '物理' then Score else null end) 物理,
sum(case Course when '英语' then Score else null end) 英语,
sum(case Course when '语文' then Score else null end) 语文
from
TEST
group by Student ;


9. 子父关系查询
select a.eventid as grouppeventid,a.groupname as groupName
from (select t.eventid,
t.groupname,
t.grouppeventid
from gps_groups t
connect by prior t.eventid = t.grouppeventid
start with t.grouppeventid is null
) a
where 1 = 1 ;


10. id必须显示 而数量则不一定显示 用left join
SELECT T.GROUPPEVENTID AS GROUPPEVENTID, count(p.origineventid)
FROM REP_STATICS T
left join gps_person p
on t.personid = p.origineventid
AND P.HISTORICALSTATE = 1
AND P.JASSTATUS < 3
and p.persontype = '1'
WHERE T.STATICSDATE = '2012-11-23'
GROUP BY T.GROUPPEVENTID;

11.约束示例
create table s(sex varchar2(2)) ;
alter table s add constraints s_cons check (sex in('男','女')) ;
insert into s values('33') ;


12.表名必须得大写
select * from user_constraints t where t.table_name ='S';
alter table s enable constraint s_cons ;
alter table s disable constraint s_cons ;


13.删除约束
alter table s drop constraint s_cons ;


14.某月的下个月
select add_months(t.createddate,1) from gps_person t where t.origineventid='8cc5599f-ba45-
4893-b7ef-771434bf6acc' ;


15.某天的下一天
select t.createddate+1 from gps_person t where t.origineventid='8cc5599f-ba45-4893-b7ef-
771434bf6acc' ;


16.Oracle trunc()函数的用法
/**************日期********************/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2011-3-18 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2011-1-1 返回当年第一天
6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 当前时间为14:41
8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC( number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。 Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120


17.因为在存储过程中DBMS_OUTPUT有限制大小,所以一般加上DBMS_OUTPUT.ENABLE
(buffer_size=>null)
加上后就没有大小限制了。。。不设置输出的缓冲如果输出超过2000字节就不可以用了 set
serveroutput on 打开输出
窗口。。。
18.左外连接实例
select a.id,a.age,b.id,b.age from a a left join b on a.id=b.id order by a.id;
select * from a ;
select * from b for update;
其中a的id有 1,2,3 b中的id有 1,1,2,3
这时外连接的条数有 4条


19.job时间格式
TRUNC(SYSDATE + 1) + (9*60+30)/(24*60) 表示下次运行时间 2013/12/27 9:30:00
TRUNC(sysdate) + 1 +(2)/(24*60) 表示下次运行时间 2013/12/27 0:02:00


13.查看重复数据
select * from a a1 where (select count(1) cnt from a a2 where a1.id=a2.id)>1 ;






分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ORACLE常用SQL语句大全.pdf

    Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 ...

    oracle常用SQL语句(汇总版).docx

    Oracle 常用 SQL 语句汇总 Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义...

    oracle常用sql语句大全 注释完整 放心使用

    本资料集包含了Oracle数据库中常用SQL语句的大全,注释完整,非常适合初学者和有经验的开发者参考使用。 1. **数据查询(SELECT语句)**: - `SELECT * FROM table_name;`:查询表table_name中的所有列。 - `...

    Oracle Sql语句转换成Mysql Sql语句

    本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...

    Oracle常用的SQL语句维护

    本文将深入探讨Oracle中常用的SQL语句以及与数据库表空间相关的维护知识。 首先,让我们了解如何在Oracle中创建表空间。表空间是Oracle数据库中存储数据的逻辑单位,它由一个或多个数据文件组成。创建表空间的SQL...

    ORACLE 常用SQL语句

    ORACLE 常用 SQL 语句 ORACLE 是一种关系数据库管理系统,它提供了多种 SQL 语句来操作和管理数据库。下面将 Introduced 13 种常用的 ORACLE SQL 语句,涵盖字符串处理、数据搜索和修改等方面。 1. ASCII 函数 ...

    Oracle数据库sql语句 跟踪器

    Oracle数据库SQL语句跟踪器,通常被称为SQL Monitor,是一种强大的工具,用于监控和分析数据库中的SQL语句执行情况。在Oracle环境中,理解SQL语句的行为是优化数据库性能的关键。SQL Monitor提供实时视图,帮助DBA...

    oracle常用sql语句

    oracle常用sql语句

    压测Oracle的SQL语句的性能情况

    本文将深入探讨如何利用压力测试工具来评估和优化Oracle数据库中的SQL语句性能。 标题"压测Oracle的SQL语句的性能情况"暗示了我们关注的是在高负载情况下,Oracle数据库处理SQL查询的能力。压力测试(Pressure ...

    Oracle常用SQL语句复习

    本篇将基于"Oracle常用SQL语句复习"这一主题,深入探讨Oracle SQL的基本语法和常用操作,帮助读者巩固和提升Oracle数据库操作技能。 1. **数据查询基础** - `SELECT`语句是SQL中最基本的查询命令,用于从一个或多...

    Oracle-Sql语句资料oracle+110个常用函数经典SQL语句大全.zip

    Oracle_Sql语句资料oracle+110个常用函数经典SQL语句大全,可供学习参考。

    oracle常用SQL语句下载

    Oracle SQL是用于管理和操作Oracle数据库的强大工具,它包含多种用于数据查询、操作、定义和控制的语句。本文将深入探讨Oracle SQL中的常见查询和计算功能。 首先,SQL(Structured Query Language,结构化查询语言...

    Oracle常用SQL语句

    Oracl 常用SQL语句 Oracle基础语句

    oracle的SQL语句的一些经验总结

    Oracle SQL语句是数据库管理员和开发人员在处理Oracle数据库时不可或缺的工具。它允许用户查询、更新、插入和删除数据,以及执行各种复杂的数据库操作。以下是对"Oracle的SQL语句的一些经验总结"中可能涉及的关键...

    ORACLE常用SQL语句大全.doc

    ORACLE常用SQL语句大全.doc

    oracle常用监控SQL语句集合

    在Oracle数据库管理中,了解和掌握一些常用的监控SQL语句是至关重要的,这些语句能够帮助DBA(数据库管理员)实时了解数据库的运行状态、性能瓶颈以及资源使用情况。"oracle常用监控SQL语句集合"提供了这样的工具集...

    [自己开发]一款非常好用的抓取Oracle数据库SQL语句的工具

    Oracle SQL Profiler,自己设计算法写的一款非常好用的抓取Oracle数据库SQL语句的工具,可以再没有源码的情况下监控ORACLE数据库服务器的v$sqlarea视图抓取出从点击开始按钮到点击结束按钮期间执行过的SQL语句。...

    ORACLE数据库SQL语句美化器

    对ORACLE-SQL进行一些布局优化,更新它的格式

    oracle常用SQL语句(汇总版).zip

    本文件"oracle常用SQL语句(汇总版)"将对Oracle中的常用SQL语法进行详尽阐述。 1. 数据查询: - `SELECT`语句:这是SQL中最基本的查询语句,用于从表中检索数据。例如,`SELECT * FROM 表名;`将返回表中的所有记录...

    个人整理的oracle常用sql语句整理分享

    个人整理的oracle常用sql语句整理分享

Global site tag (gtag.js) - Google Analytics