`
234390216
  • 浏览: 10238940 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462905
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1776005
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398757
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395161
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:680178
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:531162
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1185047
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:468841
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151496
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68352
社区版块
存档分类
最新评论

oracle笔记

阅读更多

这是以前学习ORACLE的时候做的笔记,现在拿出来供以后参考:

 

讲到数据库的时候就要讲到数据库三范式:

第一范式:
    每一个表都应该有主键;
    列不可分;具体问题具体分析;

第二范式:当表中有多个主键时,其他数据不能依赖于部分主键,否则这样的表会产生数据冗余;

第三范式:不能存在传递依赖;也就是说其他字段的值不能依赖于非主键;

 

 

1.select sal*12 anuualsal from emp    该语句是用anuual指定别名,记住anuual与别名中间不能有空格,如果别名中有特殊字符(如中文、空格等)则需用双引号把anuual和别名括起来!

2.任何含有空值的表达式最后的计算结果都是空值

3.用||来连接两个字符串,Oracle里面的字符串是用单引号括起来的,如果所要表示的字符串里面本身就有一个单引号,那么需要在字符串中有单引号的那个位置再加一个单引号!

4.在select语句中可以用distinct去除某一字段重复的行,如果distinct后接多个字段,则表示当多个字段都相同的时候只显示其中的一条记录,如select distinc deptno,job from emp 则表示所选的记录中当deptno和job的组合相同的时候只显示其中的一条记录;

5.当需要选择某一字段中记录为空的时候条件里面应选isnull,而不是判断某一字段值是否为空,如select ename,sal,comm from emp where comm is null;是正确的,而select ename,sal,comm from emp where comm=null;则是错误的;

6.百分号表示一个或多个字符,下划线表示一个字符,当所要select的字段值中含有通配符的时候就要使用转义字符了,默认的转义字符反斜杠,也可以使用escape自己指定转义字符,如 select ename from emp where ename like '%$%%' escape '$' ,则表示select名字里面含有一个%的人的记录,其中的$是转义字符;

7.函数:to_char()转换为某一格式,其中9代表一位数字,0也代表一位数字,但是当使用9时如果小数点前面写了9的那一位没有数字时则该位不显示,而如果使用的是0 的话则如果小数点前面写了0的那一位如果没有数字则该位显示0;L代表本地货币符号;to_char()使用的格式为to_char(字段,‘格式’);如select to_char(hiredate,‘YYYY-MM-DD HH-MI-SS')这样的时间格式是十二进制的,如果在HH后面加上24就转为二十四进制的了!
 to_date()函数将字符串转换为时间格式,其使用格式为to_date('时间','所要转换的格式’)。都需用单引号括起来;
 to_number()将特定格式的字符串转换为数字,其使用格式为to_number('特定格式的字符串',‘所要转换的格式,)如to_number('$1,250.00','$9,999.99');
 函数nvl(aaa,0)的含义是当aaa的值为空时就用0代替,当不为空时则为aaa,aaa可以是一个字段;

8.在等值连接中还可以使用join 表 using(字段名)来连接两个表;也可以使用join 表 on 条件;using不推荐使用;


9.表连接与子查询示例:
--求部门中哪些人的薪水最高
select ename sal from emp
join (select max(sal) max_sal,deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno = t.deptno)

--求部门平均薪水的等级
select deptno,avg_sal,grade from
(select deptno,avg(sal) avg_sal from emp group by deptno) t
join salgrade s on (t.avg_sal between s.losal and s.hisal)

--求部门平均的薪水等级
select deptno,avg(grade) from
(select deptno,ename,grade from emp join salgrade s on (emp.sal between s.losal and s.hisal)) t group by deptno

--雇员中哪些人是经理人
select ename from emp where empno in (select distinct mgr from emp);

--不准用组函数,求薪水的最高值(面试题)
select sal from emp where sal not in (select distinct e1.sal from emp e1 join emp e2 on (e1.sal<e2.sal));

--求平均薪水最高的部门的部门编号
select deptno from
 (select avg(sal) avg_sal,deptno from emp group by deptno) where avg_sal =
 (select max(avg_sal) from
   (select avg(sal) avg_sal,deptno from emp group by deptno))

--求平均薪水最高的部门的部门名称
select dname from dept where deptno =
(
 select deptno from
 (select avg(sal) avg_sal,deptno from emp group by deptno) where avg_sal =
 (select max(avg_sal) from
   (select avg(sal) avg_sal,deptno from emp group by deptno)))

--求平均薪水的等级最低的部门的部门名称
select dname from dept where deptno = (select deptno from (select deptno,avg_sal,grade from (select avg(sal) avg_sal,deptno from emp group by deptno) e join salgrade s on (e.avg_sal between s.losal and s.hisal)) where grade = (select min(grade) from (select deptno,avg_sal,grade from (select avg(sal) avg_sal,deptno from emp group by deptno) e join salgrade s on (e.avg_sal between s.losal and s.hisal))));(嵌套好厉害!)

--求部门经理人中平均薪水最低的部门名称

--求比普通员工的最高薪水还要高的经理人的名称
select ename from emp where empno in (select distinct mgr from emp where mgr is not null) and sal>(select max(sal) from emp where empno not in (select distinct mgr from emp where mgr is not null));

--求薪水最高的前五名雇员
select ename,sal from (select ename,sal from emp order by sal desc) where rownum<=5;

--求薪水最高的第6到第10名雇员
select ename,sal from
(
 select ename,sal,rownum r from
  (select ename,sal from emp order by sal desc)
) where r>=6 and r<=10;
--求最后入职的5个人


10.rownum表示的是某一行在此表中的行号,第一行为一,但rounum只能与<=或<号一起用,如果要查找某一行或大于某一行的记录则需要使用嵌套查询。例如,如果要查找某一表中的前五行的记录则可以这样表示,select * from emp where rownum<=5;

 


sequence是用来自动产生一个顺序数的
create sequence seq;
select seq.nextval;


oracle 中有一张空表dual;

在Oracle中“--”可以注释一行

0
2
分享到:
评论

相关推荐

    Oracle笔记

    这个是我学习网上的视频做的oracle笔记,对于oracle一窍不通的菜鸟可能有用吧,大家有需要可以看看

    2011Oracle笔记(李兴华视屏教程笔记)

    标题“2011Oracle笔记(李兴华视屏教程笔记)”揭示了文档的用途,它是作为2011年李兴华Oracle教学视频课程的学习笔记。这种笔记通常包括了课程中的重点概念、Oracle数据库基础知识、实际操作案例以及配合视频教程的...

    史上最全的oracle笔记

    这篇史上最全的Oracle笔记将为你提供全面的学习指导。 一、数据库基础 数据库(DataBase)是存储数据的系统,Oracle数据库允许用户以表格的形式组织和管理数据。在Oracle中,数据主要以表的形式存在,表是数据库中...

    韩顺平oracle笔记(免费)

    ### 韩顺平Oracle笔记知识点详解 #### 一、Oracle认证及与其他数据库的比较 - **Oracle认证**:Oracle提供了多种级别的认证体系,包括OCA(Oracle Certified Associate)、OCP(Oracle Certified Professional)、...

    MLDN最经典的ORACLE笔记

    《MLDN最经典的ORACLE笔记》是李兴华老师倾力打造的一份全面而深入的Oracle学习资源,专为对数据库技术感兴趣的读者精心准备。Oracle作为全球广泛使用的数据库管理系统,其强大功能和复杂性使得深入理解和掌握Oracle...

    oracle笔记+资料.rar

    本资源“oracle笔记+资料.rar”包含了丰富的Oracle学习资料,适合不同水平的学习者,无论你是初学者还是资深DBA,都能从中受益。下面将详细解析其中可能涵盖的知识点。 1. **Oracle基础知识**:这部分内容可能会...

    oracle笔记创建和管理表

    oracle笔记创建和管理表,增加列,删除列,修改列,修改列名和数据类型和长度,修改表名等等操作,有代码案例!

    马士兵oracle笔记

    马士兵oracle笔记,浅显易懂。

    达内,tarena,oracle笔记,oraclePPT课件,达内oracle笔记

    在达内的Oracle笔记中,可能会详细讲解SELECT语句用于数据检索,INSERT、UPDATE、DELETE用于数据增删改,以及CREATE、ALTER、DROP用于数据库对象管理的语法和用法。 3. **数据库设计**:良好的数据库设计是确保系统...

    详细oracle 笔记

    oracle笔记!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    韩顺平老师oracle笔记

    根据给定的文件信息,以下是从“韩顺平老师oracle笔记”中提炼出的关键知识点,主要涉及Oracle数据库的基础概念、用户管理以及SQL*Plus的基本操作。 ### Oracle数据库基础 1. **Oracle数据库的角色与权限**: - *...

    Oracle 笔记 详解 资料 用例

    这份"Oracle笔记详解资料用例"涵盖了Oracle数据库的核心概念、安装配置、SQL语言、表和索引、存储结构、备份恢复、性能优化等多个方面,是学习和掌握Oracle数据库的宝贵资源。 首先,Oracle数据库的基础部分包括...

    oracle笔记html版本

    首先,Oracle笔记可能涵盖的基础概念包括数据库的结构,如表空间、段、区和块等,这些都是Oracle存储数据的基本单元。表空间是数据库中最大的逻辑存储单位,用于组织和存储数据文件。段是表空间内的逻辑存储结构,如...

    oracle笔记.docx

    在Oracle学习笔记中,我们关注的关键概念主要包括以下几个方面: 1. **数据缓冲区**:这是Oracle内存架构的重要组成部分,用于存储从磁盘数据文件中读取的数据。所有用户共享这个缓冲区,当数据被服务器进程读入后...

    oracle 笔记.doc

    在Oracle笔记中,我们首先看到关于安装和删除Oracle数据库的部分,特别是Oracle 9i的9.0.1.1和9.2.1.1版本。在这个过程中,有两位重要的超级用户:sys和system。sys类似于SQL Server的sa账户,拥有最高权限,而...

    Oracle课堂笔记(很全很详细的Oracle笔记)

    根据提供的信息,我们可以总结出以下关于Oracle的相关知识点: ### Oracle基础知识与分类 #### DDL (Data Definition Language) 数据定义语言 - **DDL** 主要用于创建、修改或删除数据库对象,如表、索引等。 ###...

    oracle笔记.rar

    这份“Oracle笔记”包含了对Oracle数据库系统的基本学习资料,非常适合初学者入门。 一、Oracle数据库基础 Oracle数据库是由Oracle公司开发的,它采用SQL语言进行数据操作,并支持分布式数据库、实时交易处理、...

    韩顺平最新Oracle笔记及PPT

    《韩顺平最新Oracle笔记及PPT》是针对Oracle数据库技术的一套全面的学习资源,由知名IT讲师韩顺平提供。这些资料包含了2011年韩顺平的最新教学内容,适合对Oracle有兴趣或者需要提升Oracle技能的IT专业人士。 ...

Global site tag (gtag.js) - Google Analytics