http://blog.csdn.net/winter13292/article/details/7011377

SQL 对大小写不敏感!

 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

eg:

SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer='Bush' OR Customer='Adams'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500

通过 SQL,您如何向 "Persons" 表插入新的记录?

您的回答:INSERT VALUES ('Jimmy', 'Jackson') INTO Persons

正确答案:INSERT INTO Persons VALUES ('Jimmy', 'Jackson')

通过 SQL,您如何向 "Persons" 表中的 "LastName" 列插入 "Wilson" ?

您的回答:INSERT INTO Persons ('Wilson') INTO LastName

正确答案:INSERT INTO Persons (LastName) VALUES ('Wilson')

Varchar2(支持各国语言)

字符串连接符:|| (注意if 和字符串连接。字符串中有单引号,则用2个单引号。)

select distinct deptno from emp;          去掉重复值

select distinct deptno,job from emp;     去掉组合重复的

不等于<>

between 800 and 1500; 包含800 1500

is (not) null;  选空值

where sal (not)in (800,1500,2000);

like             %通配符         _一个字符      \转义字符

like'%$%'escape '$';              自己定义转义字符为$

order by  ...... desc ,asc

e.g. select ename,sal,deptno from emp order  by deptno asc,ename desc;

select ename,sal*12 annual_sal from empwhere ename not like'_A%' and sal>800

order by sal desc;

function

lower() upper()

substr(name,1,3)  第一个字符开始截,截3个字符

chr(65) : A   ascii('A')  :65

round(32.233)  四舍五入  round(23.611,1):23.6

select to_char(sal,'$99,999.9999') from emp;    $2,222.0000

select to_char(sal,'l00000.0000') from emp;             0代表一位数字,该位置没有数字强制显示 02222.0000

日期转换:select to_char (hiredate,'YYYY-MM-DD HH:MI:SS') FROM emp;

select ename,hiredate from emp where hiredate >to_date('1981-2-20 12:34:56' ,'YYYY-MM-DD HH24:MI:SS');  (注意hiredate是其他的格式)

select sal from emp where sal >  to_number('$1,250.00','$9,999.99');

NVL select ename,sal*12 +nvl(comm,0) from emp;            如果comm值为null 用0替换

 组函数 max()  min() avg() count(distinct 。。)  sum()

group by  groupby deptno,job;  根据两个的组合分组

Ename 有可能很多个 max 只能有一个输出 匹配不起来.出现在select 类表里的字段 没有出现在主函数里必须穿现在group by 里

Where     对单条语句进行过滤,WHERE 关键字无法与合计函数一起使用  ,Having对分组进行限制

总结执行顺序:

select avg (sal) from emp

where sal>1200

group by deptno

having avg(sal) >1500

order byavg(sal)  desc;

等值连接

select ename,dname from emp join depton(emp.deptno=dept.deptno);      //(using deptno    不推荐)

select ename,dname from emp,dept where emp. deptno = dept.deptno;(以前版本)  注意:现在的where 只写数据过滤条件

非等值连接

select ename, grade from emp e join salgrade s on (e.sal between s.losal and s.hisal);

三表查找

select ename, dname, grade from emp e

join dept d on(e.deptno = d.deptno)

join salgrade s on (e.sal between s.losaland s.hisal)

where ename not like '_A%';

select e1.ename,e2.ename from emp e1 leftjoin emp e2 on (e1.mgr =e2.empno);

左外连接把左边没有满足条件的数据也取出来(右  全      RIGHT FULL)

查找雇员的经理人是谁                     自连接 为表起2个名 当成连个表用

select e1.ename,e2.ename from emp e1,emp e2where e1.mgr =e2.empno;

面试题 不用组函数max()求薪水的最大值       自连接

select sal from emp where sal not in(selectdistinct e1.sal from emp e1 join emp e2 on(e1.sal < e2.sal));

SQL(Oracle)的更多相关文章

  1. sql分组获取第一条记录(sql+oracle)

    sql版本 select * from (select t.CloseDate,t.ExpiryDate,t.DataTypeLookupID,ROW_NUMBER() over(partition ...

  2. SQL常用指令集(Oracle)

    1. Select rownum(oracle) top(mysql): 用于规定返回指定数目的值 Where roenum < number 2. Like 用于在where子句搜索指定模式 ...

  3. Java 批量插入数据(Oracle)

    //批量添加20000条数据用时8秒. try {    String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...

  4. 异构平台同步(Mysql到Oracle)

    Oracle GoldenGate学习之--异构平台同步(MySQL到Oracle) 如图所示:源端采用Mysql库,目标端采用Oracle库 一.OGG安装配置(源端) 1.OGG下载 https: ...

  5. 《高性能SQL调优精要与案例解析》一书谈主流关系库SQL调优(SQL TUNING或SQL优化)核心机制之——索引(index)

    继<高性能SQL调优精要与案例解析>一书谈SQL调优(SQL TUNING或SQL优化),我们今天就谈谈各主流关系库中,占据SQL调优技术和工作半壁江山的.最重要的核心机制之一——索引(i ...

  6. 数据初始化:有则更新无则添加(mySql,oracle)

    数据初始化:有则更新无则添加(mySql,oracle) 2018-02-01 1 Orcale ) ),address )); -- 执行两次,会报 [Err] ORA-00001: unique ...

  7. Fortify漏洞之Sql Injection(sql注入)

    公司最近启用了Fortify扫描项目代码,报出较多的漏洞,安排了本人进行修复,近段时间将对修复的过程和一些修复的漏洞总结整理于此! 本篇先对Fortify做个简单的认识,同时总结一下sql注入的漏洞! ...

  8. 批量导出数据库表(oracle)

    批量导出数据库表(oracle) 要求:导出sql文件,包含表结构和数据. 方案一 1:用cmd进入命令行输入:tnsping cmstar就是测试172.18.13.200是否连接成功2:导入与导出 ...

  9. 【HTML5】HTML5本地数据库(Web Sql Database)

    Web Sql数据库简介 Web SQL数据库API实际上不是HTML5规范的组成部分,而是单独的规范.它通过一套API来操纵客户端的数据库. Web SQL数据库的浏览器支持情况 Web SQL 数 ...

随机推荐

  1. Swift技术之如何在iOS 8下使用Swift设计一个自定义的输入法 (主要是NSLayoutConstraint 的使用)

    当前位置: > Swift新手入门 > Swift技术之如何在iOS 8下使用Swift设计一个自定义的输入法 时间:2014-09-10 16:49来源:未知 作者:啊成 举报 点击:5 ...

  2. Rest Client(Rest接口调试工具,有保存功配置功能) chrome浏览器插件

    Rest Client(Rest接口调试工具,有保存功配置功能) chrome浏览器插件 下载地址 插件的操作很简单,下面是一些简单的实例. 1.安装 在谷歌应用商城搜索postman,如下图1-1所 ...

  3. asp.net中virtual和abstract的区别分析

    这篇文章主要介绍了asp.net中virtual和abstract的区别,较为详细的分析了virtual与abstract的概念与具体用法,并以实例的形式予以总结归纳,需要的朋友可以参考下 本文实例分 ...

  4. 删除文件夹工具类 DeleteFolder.java

    package com.util; import java.io.File; /** * 删除文件夹 * @createTime DSC 20, 2010 15:38 * @version 2.0 * ...

  5. [mysql] mysqldump 导出数据库表

    1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql (2)导出数据库结构 ...

  6. smarty缓存技术

    后台: <?php //要求:当存在缓存文件,直接输出,不存在缓存文件,自己创建缓存,输出 //步骤: //定义该页面存放缓存文件的路径 $filename="../../cache/ ...

  7. synergy帮组提升办公效率

    这个synergy确实很不错哦,当你在办公室拥有两台或者多台电脑的时候,放在面前多台显示器,多个鼠标,多个键盘,但是你的桌面上,是不是多出了些你不需要看到的键盘或者鼠标?至少我是这样子的,我希望多个显 ...

  8. 再看erlang的socket部分基础

    socket的选项里面的{packet,0}和{packet,raw}的区别 {packet,} erlang处理2字节大端包头 {packet,} erlang处理4字节大端包头 {packet,} ...

  9. ARM各种版本号知识以及型号的发展(三星为例)

    1.ARM型号的发展历史 2.单片机.工业上一般使用RTOS(实时操作系统),Linux.Android用在影音娱乐等对实时性要求没那么高的场合: 3.ARM内核版本号和Soc版本号是由ARM确定的, ...

  10. linux下mongodb定时备份指定的集合

    目标:把一台linux机上mongodb的数据定时备份到另一台机上: 过程: 一开始打算使用mongoexport和mongoimport,但是总是会报“\x00”字符串不能识别的问题,后来就改成了m ...