`
yangxiutian
  • 浏览: 61206 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

oracle笔记

阅读更多

 

select e.ename,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal; --不等连接[between...and...包括两个端点值]
select e.ename,s.grade from emp e,salgrade s where e.sal between s.losal and s.hisal;--不等连接
select ename,dname from emp left outer join dept on dept.deptno=emp.deptno;--左外连接
select ename,dname from emp right join dept on dept.deptno=emp.deptno;--右外连接
select ename,dname from emp inner join dept on dept.deptno=emp.deptno;--内连接
select ename,dname from emp natural join dept;--自然[内]连接
select ename,dname from emp full join dept on dept.deptno=emp.deptno;--全连接
select ename,dname from emp  join dept on dept.deptno=emp.deptno;--默认内连接 
select manager.ename as manager,worker.ename as worker from emp manager,emp worker where manager.empno=worker.mgr;--自连接
select manager.ename as manager , worker.ename as worker from emp manager full join emp worker on manager.empno=worker.mgr;--自连接

--更新数据
原数据:update emp set sal=2450,comm=null where ename='CLARK';
新数据:update emp set sal=1500,comm=30 where ename='CLARK'; 
select * from emp where ename='CLARK';

select * from emp where deptno=(select deptno from emp where ename='SCOTT');--单行子查询 
select * from emp where job in(select distinct job from emp where deptno=10);--多行子查询用in
select * from emp where sal > all(select sal from emp where deptno=30);--多行子查询用all 可转换为单行子查询
select * from emp where sal > any(select sal from emp where deptno=30);--多行子查询用any 可转换为单行子查询
select * from emp where (deptno,job)=(select deptno,job from emp where ename='SMITH');--多列单行子查询
select * from emp where ((sal,nvl(comm,-1)) in (select sal,nvl(comm,-1) from emp where deptno=30));--多列 成对比较
select * from emp where (sal in (select sal from emp where deptno=30) and nvl(comm,-1) in (select nvl(comm,-1) from emp where deptno=30));--多列非成对比较 
select ename,job,sal,deptno from emp where exists(select * from dept where emp.deptno=dept.deptno and dept.loc='NEW YORK');--相关子查询
select ename,job,sal,deptno from emp natural join dept where loc='NEW YORK';--上面语句的等效转换
select ename,job,sal,dep.deptno,avg_sal from emp,( select deptno,avg(sal) as avg_sal from emp group by deptno) dep where emp.deptno=dep.deptno and sal>dep.avg_sal;--from子句子查询

select ename||' is a '||job detail from emp ;--连接
select * from emp where sal>2500 union select * from emp where job='MANAGER';--union查询
select * from emp where sal>2500 or job='MANAGER';--or代替union查询
select * from emp order by comm;--order排序 null值在后面
select deptno,sal from emp order by deptno desc,2;--多列排序 
select count(comm) from emp;--统计列值个数时,空值不被统计
select max(sal),min(sal) from emp ;--取得最大、最小值
select avg(sal),sum(sal) from emp;--平均、总和
select count(distinct deptno) dept_count from emp;--统计部门总数
select deptno,avg(sal),max(sal) from emp group by deptno;--单列分组(部门)
select deptno,job,avg(sal),max(sal) from emp group by deptno ,job;--多列分组(部门,岗位)
select deptno,avg(sal) as avg_sal,max(sal) as max_sal from emp group by deptno having avg(sal)<2500;--having限制结果
select ename,dep.deptno,sal ,avg_sal from emp,( select deptno,avg(sal) avg_sal from emp group by deptno)dep where emp.deptno=dep.deptno and emp.sal<dep.avg_sal order by deptno;--显示低于部门平均工资的雇员


 CREATE TABLE EMPloyee (------------单表插入
 "EMPNO" NUMBER(4) NOT NULL,
 "ENAME" VARCHAR2(10 byte), 
  "SAL" NUMBER(7, 2),
 "DEPTNO" NUMBER(2));
 select * from employee;
 insert into employee (empno,ename,sal,deptno) select empno,ename,sal,deptno from emp where deptno=20;--将部门是20的数据插入EMPloyee表
 
  CREATE TABLE dept10 (-------------多表插入
 "EMPNO" NUMBER(4) NOT NULL,
 "ENAME" VARCHAR2(10 byte), 
  "SAL" NUMBER(7, 2),
 "DEPTNO" NUMBER(2));
 
CREATE TABLE dept20 (
 "EMPNO" NUMBER(4) NOT NULL,
 "ENAME" VARCHAR2(10 byte), 
  "SAL" NUMBER(7, 2),
 "DEPTNO" NUMBER(2));
 
 CREATE TABLE other (
 "EMPNO" NUMBER(4) NOT NULL,
 "ENAME" VARCHAR2(10 byte), 
  "SAL" NUMBER(7, 2),
 "DEPTNO" NUMBER(2));  
 select * from dept10;
 select * from dept20;
 select * from other;
 insert all when deptno=10 then into dept10 when deptno=20 then into dept20 else into other 
 select empno,ename,sal,deptno from emp;--部门10的插在子表dept10...以此类推
 
 insert first when deptno=10 then into dept10 when deptno=20 then into dept20 else into other
 select empno,ename,sal,deptno from emp;--"当使用first操作符执行多表插入时,如果数据已经满足了先前条件,
 --并且已经被插入到某表,那么该行数据在后续的插入中将不会再次使用"  不能理解
 
 update dept10 set(ename,sal)= (select ename,sal from dept10 where empno=7839) where empno=7782 ;--查询更新数据
 delete emp where deptno=(select deptno from dept where dname='SALES');--查询删除数据(删除销售部的所有雇员)
alter user scott account unlock;--账号解锁
grant connect to scott;--赋予权限
grant create view to scott;
grant create table to scott;
grant create session to scott;
grant create role to scott;
grant create user to scott;
grant drop user to scott;
revoke connect from scott;-- 移除权限

create user tian identified by dddd[ default tablespace users quota 10M on users];--创建用户
create table d(t number);
insert into d values(1234);
alter table d drop column t;--删除列
alter table d add tt varchar2(12);
select * from d;

create table classes(
       c_id number,
       cname varchar2(20),
       constraint pk_classes primary key (c_id) --主键
);
create table student(
       s_id number,
       sname varchar2(20),
       cid number,
       constraint pk_student primary key (s_id),--主键
       constraint fk_classes foreign key (cid) references classes(c_id)--外键
);
insert into classes values (1,'java培训班');
insert into classes values (2,'c++培训班');
insert into student values(1,'张三',1);
insert into student values (2,'李四',1);
delete from classes cascade where c_id=1;

select * from dba_role_privs; 
select * from dba_sys_privs; 
select * from role_sys_privs;
select * from user_sys_privs;--查询用户权限
select * from user_role_privs;--查询用户角色
select dep.* from (select rownum r,t.* from scott.emp t where rownum<10) dep where dep.r>=5;--分页查询
1
5
分享到:
评论
2 楼 yangxiutian 2012-09-01  
javaboy8282 写道
写德很细啊!支持

谢谢,这是在练习的时候顺便留下的,恐怕以后用得着。
1 楼 javaboy8282 2012-08-31  
写德很细啊!支持

相关推荐

    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课堂笔记(很全很详细的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专业人士。 ...

    oracle笔记.pdf

    其中,“i”在Oracle8i中表示增加了对Internet的支持,Oracle9i则是Oracle8i的稳定版本,而Oracle10g是基于网格计算技术的版本,Oracle11g是10g的稳定版本,Oracle12C则是支持云计算概念的最新版本。在初学者阶段,...

Global site tag (gtag.js) - Google Analytics