1、oracle将多行变成一行
select d.datagetsource_id,wmsys.wm_concat(d.catagory_id) from datagetsource2catagory d group by d.datagetsource_id
2、oracle将表数据导入导出
C:\Documents and Settings\Administrator>exp irdp/irdp file=e:/数据库备份/irdp_bak_200911020927_forUpdate.dmp full-y
导出数据库的语句,最后的是full-y,不是full=y,如果用后面也可以导出,但它会把库中的所有用户都导出 来。
3、oracle将树形sql语句最后加上根节点id
CONNECT_BY_ROOT
select c2c.community_id,
c2c.parent_community_id,
level,
CONNECT_BY_ROOT community_id root
from community2community c2c
start with c2c.community_id in
(select community_id
from community cy
where withdrawn = 'N')
connect by prior c2c.community_id = c2c.parent_community_id
4、查询数据库所有包含item_id字段的表的名称
select t.TABLE_NAME from user_tab_columns t where t.COLUMN_NAME like '%ITEM_ID%' group by t.TABLE_NAME;
5、查询数据库回收站中被删除的表
select * from recyclebin where original_name = 'WEBPUBLISHAPPLY';
6、闪回数据库某张表
alter table WEBPUBLISHAPPLY enable row movement;
flashback table WEBPUBLISHAPPLY to timestamp to_timestamp('2010-08-03 00:00:00','yyyy-mm-dd hh24:mi:ss');
alter table WEBPUBLISHAPPLY disable row movement;
7、oracle-9i将一行记录中部分数据复制到另一行记录中
update addressbook a
set (a.a_sex,a.a_brithday,a.a_brithplace,a.a_address,a.a_phone)=
(select d.a_sex,d.a_brithday,d.a_brithplace,d.a_address,d.a_phone
from addressbook d
where d.a_id = '5')
where a.a_id = '3';
8、将表中a字段记录为1的行中的b字段全部改为2
update addressbook d
set d.a_brithplace = (select r.a_brithplace from addressbook r where r.a_id = '9')
where d.a_address = (select c.a_address from addressbook c where c.a_id = '5')
9、删除表且删除表所占的空间,且不能回退
truncate table books
10、oracle事务
1)savepoint a 保存事务点
2)rollback to a 回退到事务点a,且取消a之后的操作
3)rollback取消全部操作
4)只读事务
set transaction read only;--1(会话1)
update emp set sal = 3000 where ename = 'smith';--2(会话2)
select sal from emp where ename = 'smith';--3(会话1)
当在1处设置了只读事务后,紧接着2处在3之前修改了该数据,但是在3处查看的数据还是1处这个时间点的数据,也就是修改前的数据
提示:在read only事务中,是不允许进行增删改操作的
5)顺序事务
set transaction isolation level serializable;--1(会话1)
update emp set sal = 3000 where ename = 'smith';--2(会话2)
select sal from emp where ename = 'smith';--3(会话1)
在3处的查询语句只会查询到2处修改前的数据
11、分组函数
select i.item_type_id,i.submitter_id,count(1) from item i
where i.item_type_id = 'ebook' or i.item_type_id = 'rwsk'
group by rollup (i.item_type_id,i.submitter_id);
select i.item_type_id,i.submitter_id,count(1) from item i
where i.item_type_id = 'ebook' or i.item_type_id = 'rwsk'
group by cube (i.item_type_id,i.submitter_id);
12、同时利用两个或者多个分组函数
select r.type,r.metaapplication_id,count(1) from resourceshowtype r
group by grouping sets(r.type,r.metaapplication_id);
13、自动执行内连接
select c2i.collection_id,item_id,i.item_type_id from collection2item c2i
natural join item i
14、函数
1)返回字符的ASCII码
select ascii('a') from dual;
2)将ASCII码转换为字符
select chr(65) from dual;
3)链接两个字符
select concat('ab','cd') from dual;
4)单词首字母大写
select initcap('hello world') from dual;
5)查看字符串a在字符串b中的位置instr(b,a,n,m),n为起始位置,初始为1,m为出现次数,初始为1
select instr('hello world','l','1') from dual;
6)返回字符串的长度
select length('hello world') from dual;
7)
将条目id左边填充0直到字符长度达到10位
select i.item_id,lpad(i.item_id,10,'0') from item i;
select i.item_id,rpad(i.item_id,10,'0') from item i;
8)将字符串中左边连续出现的'浙江大学'的任意组合去掉
select c.name,ltrim(c.name,'浙江大学') from community c;
9)将字符串变为首字母大写或者全小写或者全部大写
select nls_initcap(n'hello world') from dual;
select nls_lower(n'SQL Server') from dual;
select nls_upper(n'SQL Server') from dual;
10)字符串替换
select replace('浙江大学出版社','浙江','湖北') from dual;
11)截取子字符串
select substr('浙江大学出版社',1,4) from dual;
15、时间
1)在系统时间往后推100个月
select add_months(sysdate,100),sysdate from dual;
select add_months(sysdate,-100),sysdate from dual;
select add_months(sysdate,-1000000000000),sysdate from dual;
2)返回当前时区对应日期格式的时间
select current_date from dual;
3)返回当前日期格式的时间
select current_timestamp from dual;
4)从当前时间中抽取年月日,不能抽取时分秒
select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
select extract(day from sysdate) from dual;
16、使用标量变量接收查询数据
declare
v_comtype_name communitytype.name%type;
begin
select name into v_comtype_name
from communitytype
where community_type_id=&comtype_id;
dbms_output.put_line('资源库名称:'||v_comtype_name);
end;
17、使用记录变量接受数据
--oracle自定义类型种类:
--1、子类型
--subtype cc_num is number(16,2);
--2、记录类型
--type emp_record_type is record
--(
--ename varchar2(10),
--job varchar2(9)
--);
--emp_record emp_record_type;
--3、rowtype类型变量
--emp_record emp%rowtype;
declare
type emp_record_type is record(
id communitytype.community_type_id%type,
name communitytype.name%type
);
emp_record emp_record_type;
begin
select ct.community_type_id,ct.name
into emp_record
from communitytype ct
where ct.community_type_id = 'ebook';
dbms_output.put_line('资源库ID:'||emp_record.id);
dbms_output.put_line('资源库名称:'||emp_record.name);
end;
18、操纵数据
declare
v_community_type_name communitytype.english_name%type:='&englishname';
begin
update communitytype t
set t.english_name = v_community_type_name
where t.community_type_id = 'AcademicRes';
commit;
end;
19、数据库游标
1)sql%isopen 游标是否已经打开
2)sql%found sql语句是否已经执行成功
begin
savepoint a1;
update communitytype t
set t.english_name = '333'
where t.community_type_id = 'AcademicRes';
if sql%found
then
commit;
dbms_output.put_line('成功');
else
rollback to a1;
dbms_output.put_line('失败');
end if;
end;
3)sql%notfound
4)sql%rowcount 返回sql影响的行数
分享到:
相关推荐
"Oracle经典SQL语句"这个主题涵盖了SQL语言的基础以及一些高级特性,这些特性使得Oracle SQL在处理复杂的数据查询和操作时表现出色。以下是一些关键的知识点: 1. **SQL基础**:SQL(Structured Query Language)是...
本资源“oracle经典sql语句练习题和答案”提供了在scott用户下的两个典型表格——emp(员工表)和dept(部门表)的实践操作题目,旨在帮助用户提升SQL技能。 首先,让我们来了解这两个核心表格。`emp`表通常包含...
本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...
Oracle数据库SQL语句跟踪器,通常被称为SQL Monitor,是一种强大的工具,用于监控和分析数据库中的SQL语句执行情况。在Oracle环境中,理解SQL语句的行为是优化数据库性能的关键。SQL Monitor提供实时视图,帮助DBA...
本文将深入探讨如何利用压力测试工具来评估和优化Oracle数据库中的SQL语句性能。 标题"压测Oracle的SQL语句的性能情况"暗示了我们关注的是在高负载情况下,Oracle数据库处理SQL查询的能力。压力测试(Pressure ...
Oracle_Sql语句资料oracle+110个常用函数经典SQL语句大全,可供学习参考。
Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 ...
对ORACLE-SQL进行一些布局优化,更新它的格式
Oracle 常用 SQL 语句汇总 Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义...
Oracle SQL语句是数据库管理员和开发人员在处理Oracle数据库时不可或缺的工具。它允许用户查询、更新、插入和删除数据,以及执行各种复杂的数据库操作。以下是对"Oracle的SQL语句的一些经验总结"中可能涉及的关键...
Oracle SQL Profiler,自己设计算法写的一款非常好用的抓取Oracle数据库SQL语句的工具,可以再没有源码的情况下监控ORACLE数据库服务器的v$sqlarea视图抓取出从点击开始按钮到点击结束按钮期间执行过的SQL语句。...
Oracle 高效 SQL 语句原则是指在编写 Oracle 数据库 SQL 语句时需要遵循的一些基本原则,以便提高 SQL 语句的执行效率,减少数据库服务器的负载,提高应用程序的性能。下面是 Oracle 高效 SQL 语句原则的详细介绍: ...
### Oracle监听执行SQL语句详解 #### 一、Oracle监听执行概述 在Oracle数据库管理与维护过程中,有时候我们需要了解应用程序正在执行哪些SQL语句,这不仅有助于性能优化,还可以帮助我们诊断潜在的问题。通过监听...
本文将深入探讨Oracle中SQL语句执行效率的查找与解决方法,特别关注于如何识别和优化那些导致性能瓶颈的查询。 ### Oracle SQL执行效率:查找与解决 #### 一、资源消耗分析 在Oracle中,SQL语句执行效率低下通常...
Oracle数据库是全球最广泛使用的数据库管理系统之一,它遵循SQL标准,提供了一套强大的SQL语句,使得数据库操作变得高效和灵活。在Oracle数据库中,SQL语句是与数据库进行交互的主要方式。本文将总结一些Oracle基本...
oracle、sql语句基础
本篇文章将详细探讨如何利用工具实现SQL Server自动生成SQL语句并转换到Oracle。 首先,标题中的"sqlserver自动生成sql语句工具"指的是可以分析SQL Server数据库结构和数据,自动生成对应的SQL创建语句的软件。这种...