`

DB点滴

    博客分类:
  • DB
 
阅读更多
1.Oracle中运用ROWNUM实现SELECT TOP N
用法,见附件文档!
http://bfc99.blog.51cto.com/265386/803718
http://www.itpub.net/thread-415-1-1.html

2.删除重复记录,保留rowid最小的记录。即如果有10条记录重复,删除9条,保留一条。
not in实现为:
delete from tableName t where t.rowid not in 
(select min(a.rowid) from tableName a group by a.field1,a.field2);

not exists实现为:
delete from tableName t where not exists 
(select 1 from (select min(a.rowid) rid from tableName a group by a.field1,a.field2) b where b.rid=t.rowid);

或采用创建临时表的方式:
step1:创建临时表
create table tempTableName as 
select min(a.rowid) rid from tableName a group by a.field1,a.field2;

step2:删除重复数据
delete from tableName t where t.rowid not in (select b.rid from tempTableName b);
或delete from tableName a where not exists (select 1 from tempTableName b where b.rid=a.rowid);

附:not in优化:http://blog.csdn.net/anerou/article/details/5185573

3.INSERT INTO SELECT语句 与 SELECT INTO语句
INSERT INTO SELECT语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1;
INSERT INTO SELECT也可以直接插入序列值、常量值,例如:
insert into Table2(ID, username, age, field) select table2_seq.nextval, 'gerry', 25, otherField from Table1;

SELECT INTO语句形式为:select * into Table_backup FROM Table;
SELECT INTO语句从一个表中选取数据,然后把数据插入另一个表中,SELECT INTO语句常用于创建表的备份复件或者用于对记录进行存档。需要注意的是:在Oracle中select into from不可以使用-----原因很简单:select into是PL/SQL language 的赋值语句!如果使用则Oracle会抛出0RA-00905:missing keyword的异常!但是可以用create table as select代替该功能:create table new_table as select * from old_table;
http://jingyan.baidu.com/article/d5c4b52b29c326da570dc548.html
http://stackoverflow.com/questions/2250196/select-into-using-oracle

4、序列
创建序列:
create sequence TABLE_SEQ
minvalue 1
maxvalue 999999999999
start with 1
increment by 1
cache 20;
插入记录时主键使用序列值:
insert into tableName(ID, ...) values(TABLE_SEQ.nextval, ...)

5、oracle中count(*)  count(1)   count(字段)
oracle中:
count(*):返回表中所有行数(包括值为null的行);
count(*)、count(1)、count(2)甚至count(23890), 执行计划一样,查询结果也一样。

count(字段):返回表中除去该列值为null以外的所有行数。
由于count(字段),查询的是该字段值不为空的记录数。所以select count(field) from table;与select count(*) from table t where t.field is not null;查询的结果是一样的。

select distinct filed from table; //剔除该列重复数据
select count(distinct filed) from table; //除去重复数据与值为null的结果

6、使用for update卡住锁表的解决办法
http://www.cnblogs.com/chenwenbiao/archive/2012/06/06/2537496.html

7、a​l​t​e​r​ ​s​y​s​t​e​m​ ​f​l​u​s​h​ ​s​h​a​r​e​d​_​p​o​o​l​
alter system flush shared_pool的作用:
The FLUSH SHARED POOL clause lets you clear all data from the shared pool in the system global area (SGA). The shared pool stores Cached data dictionary information and Shared SQL and PL/SQL areas for SQL statements, stored procedures, function, packages, and triggers.
This statement does not clear shared SQL and PL/SQL areas for items that are currently being executed. You can use this clause regardless of whether your instance has the database dismounted or mounted, open or closed.
http://wenku.baidu.com/link?url=bIEx6mMvgjW24kg04rg7DvP1SPGdbc0Wt6_TOg-PREkzHIOmKULYj6a9hljPzQtqSN9pSmRnL1TX_Kt6Gg6hlQlYoKO6GNmg30nYsFQ6RcC

8、sql中case when then条件语句
select CASE sex
WHEN 1 THEN '男'
WHEN 2 THEN '女'
ELSE '保密' END
from usertable;
--或
select CASE
WHEN sex = 1 THEN '男'
WHEN sex = 2 THEN '女'
ELSE '保密' END
from usertable;
其他复杂用法去google吧
分享到:
评论

相关推荐

    Cisco交换机设置点滴

    【Cisco交换机设置点滴】是关于如何通过网络和TFTP服务器对Cisco Catalyst 1924/2820系列交换机进行软件升级的技术指南。本文主要涉及两个方法:使用TFTP服务器和通过XMODEM协议。 首先,通过TFTP服务器进行软件...

    PHP代码安全点滴 原版扫描

    $stmt = $db->prepare("SELECT * FROM users WHERE id = :id"); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->execute(); // 获取结果 $user = $stmt->fetch(PDO::FETCH_ASSOC); ``` 这段代码展示了如何...

    DB_Learning:记录学习数据库的点滴

    在"DB_Learning"这个项目中,我们将深入探讨数据库学习的各个方面,这将包括基本概念、设计原则、查询语言、优化策略以及实际应用案例。 首先,让我们从数据库的基本概念开始。数据库是一个有组织的数据集合,它...

    ORACLE PROC_*C编程点滴.pdf

    《ORACLE PROC_*C编程点滴》这篇文档主要探讨了在Oracle数据库环境下使用PROC_*C进行编程的一些关键点,特别是在预编译时指定数据库用户和处理游标操作的细节。以下是这些知识点的详细说明: 1. **预编译时指定...

    【Oracle点滴积累】Oracle 19c安装Critical Patch Update for January 2023

    OPatch 12.2.0.1.36 for DB 19.0.0.0.0 (Jan 2023)

    Python从点滴开始——官网博客项目从0开始改造(二).zip

    在这个"Python从点滴开始——官网博客项目从0开始改造(二)"的教程中,我们将逐步完成一系列关键步骤,包括数据库模型的设计、后台管理、富文本编辑器的集成、URL配置、视图函数以及模板的使用,最终实现数据的展示...

    SQL点滴系列之插入数据(四)

    【SQL从一点一滴分析系列文章】为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询 在分析 SQL 时,也会同时分析 mybatis 、Hibernate 中的相关操作 ...本节讲述 在数据库中插入数据 ...

    开关电源环路设计的点滴理解

    2. 中频段:穿越频率fc附近,增益下降20dB,确保足够的相位裕量。 3. 高频段:增益降低,以抑制开关谐波和噪声。 如果低频段增益不够,可以通过低通滤波器提升;若中频段相位裕量不足,可以考虑使用type III补偿。...

    Oracle运维最佳实践-下.pdf 带书签

    - 本书对比了`db_writer_processes`和`dbwr_io_slaves`两个参数的区别及其对IO性能的影响。 - 通过实例展示了如何根据实际情况调整这两个参数以达到最优性能。 - 实例: - 设置`db_writer_processes`为较小值,...

    韩国IK-diary日记本 v2.5汉化版

    《韩国IK-diary日记本 v2.5汉化版》是一款专为中文用户设计的个人日记软件,它提供了丰富的功能,让记录生活点滴变得轻松愉快。这款应用的汉化版本,意味着用户可以更加方便地理解和操作,无需面对语言障碍,提高了...

    亲测导出微信朋友圈信息

    微信作为中国最流行的社交媒体平台之一,用户在其中分享了大量生活点滴、思考感悟和重要信息。"导出微信朋友圈信息"这个话题就显得尤为实用,因为有时我们需要备份这些珍贵的记忆或者进行数据分析。下面将详细讲解...

    JournalBook是一个私人离线优先的个人日记

    它采用现代Web技术,尤其是JavaScript和CSS,为用户提供了一个安全、私密的记录生活点滴的平台。在本文中,我们将深入探讨JournalBook的核心特性、开发技术和实现细节。 ### 1. 离线优先的设计理念 离线优先的Web...

    java文集

    正则表达式 lucene索引合并 探查Weblogic JDBC Multipool 问题 struts通用Exception处理 Grails中默认数据库HSQLDB点滴 从request获取各种路径总结 DIV实现的表格自动伸张与收缩 java 邮件...

    LOUHOME历史上的今天 v1.0.rar

    软件内含13万多条历史记录,覆盖了丰富的历史事件,无论是国内外的重要历史时刻,还是日常生活的点滴变迁,都能在这款软件中找到。这样的数据量表明了软件在数据全面性上的优势,对于历史爱好者或者需要此类信息的...

    微信HTML5在线朋友圈游戏源码带安装部署教程-挑战无影手.rar

    微信是中国最流行的即时通讯应用之一,其朋友圈功能是用户分享生活点滴和互动的主要场所。微信提供了开放平台,允许开发者利用微信接口开发各种H5游戏和应用,用户可以在不离开微信的情况下直接游玩。微信H5游戏通常...

    个人博客系统

    在这个空间里,博主可以自由地发表自己的观点,分享生活点滴,甚至通过设置不同的主题和布局来彰显个性。对于用户来说,这是一个展现自我风格和专业技能的舞台,也是与他人建立连接的桥梁。 其次,个人博客管理功能...

    kispower是一个集成了:时间管理、知识管理、网址导航、博客相册,基于WEB的个人知识管理系统

    kispower不仅是一个知识管理系统,还具备博客和相册功能,让用户能够记录生活点滴,分享心得感悟。用户可以发布文章,插入图片,形成个人的在线日记或作品展示空间。 5. **技术栈选择**: 该系统基于Web开发,...

    数据库demo

    7. **开发工具**: 有许多图形用户界面(GUI)工具可供选择,用于管理和操作SQLite数据库,例如DB Browser for SQLite。 在"数据库demo"中,我们可能会看到如何创建SQLite数据库、定义表结构、插入数据、查询数据、...

    情侣们的生活记载_欧美模板

    描述中提到的“情侣们的生活记载”进一步强调了这个模板的用途,即帮助情侣们记录和分享他们的甜蜜时刻,可能包括旅行经历、重要纪念日、日常生活点滴等。这种类型的网页设计通常注重情感表达和用户体验,以营造浪漫...

Global site tag (gtag.js) - Google Analytics