`
zengshaotao
  • 浏览: 787081 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle 笔记整理

    博客分类:
  • SQL
 
阅读更多

SQL> select length('啊'),lengthb('啊') from dual;

LENGTH('啊')  LENGTHB('啊')
------------      -------------
           1             2

SQL> select lpad(sal,10,0) from emp;

LPAD(SAL,10,0)
--------------------
0000000800

 

SQL> select rpad(sal,10,0) from emp;

RPAD(SAL,10,0)
--------------------
8000000000

 

SQL> select trim('  aaaa'),trim('H' from 'Hello') from dual;

TRIM('AAAA') TRIM('H'FROM'HELLO')
------------ --------------------
aaaa         ello

 

SQL> select round(123.456,2) from dual;

ROUND(123.456,2)
----------------
          123.46

 

SQL> select trunc(123.456) from dual;

TRUNC(123.456)
--------------
           123

SQL> select trunc(123.456,2) from dual;

TRUNC(123.456,2)
----------------
          123.45

 

SQL> select mod(1600,300) from dual;

MOD(1600,300)
-------------
          100

 

SQL> select next_day(sysdate,5) from dual;

NEXT_DAY(SYSDATE,5)
-------------------
2008-11-27 11:23:01

SQL> select next_day(sysdate,6) from dual;

NEXT_DAY(SYSDATE,6)
-------------------
2008-11-28 11:23:32

 

SQL> select to_char(sysdate,'YYYY-MM-DD') from dual;

TO_CHAR(SYSDATE,'YYYY-MM-DD')
-----------------------------
2008-11-24

 

 

select * from scott.emp;


/*declare
r_dept scott.DEPT%ROWTYPE;\*表的记录行变量*\
v_ename scott.EMP.ENAME%TYPE;
v_salary scott.EMP.SAL%TYPE;
v_tot_salary scott.EMP.SAL%TYPE;
cursor c_dept is select * from scott.dept order by deptno;
CURSOR c_emp(p_dept VARCHAR2) IS SELECT ename, sal FROM scott.emp WHERE deptno = p_dept ORDER BY ename;
BEGIN OPEN c_dept;
LOOP  
FETCH c_dept INTO r_dept;
EXIT WHEN c_dept%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Department:' || r_dept.deptno || '-' ||r_dept.dname);
v_tot_salary := 0;
OPEN c_emp(r_dept.deptno);
LOOP
FETCH c_emp INTO v_ename, v_salary;
EXIT WHEN c_emp%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Name:' || v_ename || ' salary:' || v_salary);
v_tot_salary := v_tot_salary + v_salary;
END LOOP;
CLOSE c_emp;
DBMS_OUTPUT.PUT_LINE('Toltal Salary for dept:' || v_tot_salary);
END LOOP;
CLOSE c_dept;
END;
运行结果:
Department:10-ACCOUNTING
Name:CLARK salary:2450
Name:KING salary:5000
Name:MILLER salary:1300
Toltal Salary for dept:8750
Department:20-RESEARCH
Name:ADAMS salary:1100
Name:FORD salary:3000
Name:JONES salary:2975
Name:SCOTT salary:3000
Name:SMITH salary:800
Toltal Salary for dept:10875
Department:30-SALES
Name:ALLEN salary:1600
Name:BLAKE salary:2850
Name:JAMES salary:950
Name:MARTIN salary:1250
Name:TURNER salary:1500
Name:WARD salary:1250
Toltal Salary for dept:9400
Department:40-OPERATIONS
Toltal Salary for dept:0*/

/*create or replace procedure getallmessage(str in out varchar2) as
  CURSOR curtype is
    select iid, iname from shopitem;
  str2 varchar2(1024);
begin
  str := 'select (select spname from shop where shop.spid=sellrecord.spid) srname,';
  for iteminfo in curtype loop
    str := str || 'sum(decode(iid,' || to_char(iteminfo.iid) || ',snum)) ' ||
           iteminfo.iname || '数量,';
    str := str || 'sum(decode(iid,' || to_char(iteminfo.iid) ||
           ',snum))/sum(snum) ' || iteminfo.iname || '百分比,';
  end loop;
  select substr(str, 1, length(str) - 1) into str2 from dual;
  str := str2 || ' from sellrecord group by spid order by spid';
  str2:='Create table mytable tablespace account2 as '|| str;
  execute immediate 'drop table mytable';
  execute immediate str2;
end;以上是动态存储过程*/


/*DECLARE
CURSOR c_dept IS SELECT deptno, dname FROM scott.dept ORDER BY deptno;
CURSOR c_emp(p_dept VARCHAR2) IS SELECT ename, sal FROM scott.emp WHERE deptno = p_dept ORDER BY ename;
v_tot_salary scott.EMP.SAL%TYPE;
BEGIN
FOR r_dept IN c_dept
LOOP DBMS_OUTPUT.PUT_LINE('Department: ' || r_dept.deptno || '-' ||r_dept.dname);
v_tot_salary := 0;
FOR r_emp IN c_emp(r_dept.deptno)
LOOP DBMS_OUTPUT.PUT_LINE('Name: ' || r_emp.ename || ' salary: ' ||r_emp.sal);
v_tot_salary := v_tot_salary + r_emp.sal;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Toltal Salary for dept: ' || v_tot_salary);
END LOOP;
END;
运行结果:
Department: 10-ACCOUNTING
Name: CLARK salary: 2450
Name: KING salary: 5000
Name: MILLER salary: 1300
Toltal Salary for dept: 8750
Department: 20-RESEARCH
Name: ADAMS salary: 1100
Name: FORD salary: 3000
Name: JONES salary: 2975
Name: SCOTT salary: 3000
Name: SMITH salary: 800
Toltal Salary for dept: 10875
Department: 30-SALES
Name: ALLEN salary: 1600
Name: BLAKE salary: 2850
Name: JAMES salary: 950
Name: MARTIN salary: 1250
Name: TURNER salary: 1500
Name: WARD salary: 1250
Toltal Salary for dept: 9400
Department: 40-OPERATIONS
Toltal Salary for dept: 0*/

/*CREATE TABLE W_TEST1
(BH VARCHAR2(2),
N NUMBER(10));*/
/*select * from w_test1;

DECLARE
 n number(10);
BEGIN
 n:=1;
insert into w_test1(bh,n) values('a',n);
DECLARE
n number(10);
BEGIN
insert into w_test1(bh,n) values('b',n);
n:=100;
insert into w_test1(bh,n) values('b',n);
END;
insert into w_test1(bh,n) values('a',n);
END;*/

/*declare
v1 number(4);
begin
v1:=1;
loop
v1:=v1+1;
if v1<=99 then
dbms_output.put_line(v1);
else exit;
end if;
end loop;
end;    //注意结尾要分号!!!*/

/*declare
v1 number(2):=2;
begin
if v1=1 then dbms_output.put_line(v1);
elsif (v1>1)then dbms_output.put_line(v1||'>1');
else dbms_output.put_line(v1||'<1');
end if;
end;*/

/*declare
      x  number;
      begin
      x:= 0;
      loop
      x:=x+1;
      dbms_output.put_line(to_char(x));
      exit  when x=10;
      end loop;
  end;*/


/*select * from w_test1;


declare
v1 number default 1;
begin
loop
insert into w_test1 values('in',v1);
v1:=v1+1;
exit when v1>20;
end loop;
end;*/

/*declare
v1 number default 1;
begin
loop
insert into w_test1 values('in',v1);
v1:=v1+1;
if v1>20 then exit;
end if;
end loop;
end;
select * from w_test1;*/


/*declare
  x  number;
   begin
   x:= 1;
   while  x<10  loop
   dbms_output.put_line(x||'还小于10');
   x:= x+1;
  end loop;
end;
运行结果:
1还小于10
2还小于10
3还小于10
4还小于10
5还小于10
6还小于10
7还小于10
8还小于10
9还小于10*/

/*begin
for a in 1 .. 10 loop
dbms_output.put_line('in=' || a);
end loop;
end;
运行结果:
in=1
in=2
in=3
in=4
in=5
in=6
in=7
in=8
in=9
in=10*/
select * from score;
create or replace procedure Dp_add_gz(v_grid varchar2)
as n_rec number;
begin. select count(1) into n_rec from dual
where exists (select 1 from emp where empno = v_grid);if n_rec > 0 then.    update emp set sal = sal + 100 where empno = v_grid;.  end if;.exception.  when others then.    null;.end;

分享到:
评论

相关推荐

    李兴华Oracle笔记整理

    "李兴华Oracle笔记整理" 李兴华Oracle笔记整理是Oracle核心基础知识的总结,涵盖了Oracle的安装、SQLPlus基本命令、scott用户的表结构、增删改查、分页处理、事务处理、DDL、三范式、用户权限管理、数据的备份与...

    Oracle笔记整理

    本文将基于"Oracle笔记整理"的主题,详细讲解Oracle数据库的关键知识点,包括与PL/SQL编程语言的结合、数据库的启动操作以及表结构设计。 1. PL/SQL编程语言: PL/SQL(Procedural Language/Structured Query ...

    oracle学习笔记整理

    以下是对Oracle学习笔记整理的主要知识点的详细说明: 1. **数据库选择**: 在决定使用哪种数据库时,通常需要考虑项目的规模、性能需求、安全性要求以及可用资源。Oracle数据库因其稳定性、可扩展性和高性能而被...

    老方块 ORACLE 教学笔记 整理.

    "老方块 ORACLE 教学笔记 整理"是一份专门针对Oracle数据库学习的资料集合,旨在帮助自学者在家轻松掌握Oracle的核心知识和技能。 Oracle数据库系统的基础是SQL(结构化查询语言),它是用于管理和操作数据库的标准...

    老方块 ORACLE 教学笔记 整理

    老方块 ORACLE 教学笔记 整理 第1堂体验课-SQL技巧篇(一) 第2堂体验课-SQL技巧篇(二) 第3堂体验课-ORACLE并发事务和锁机制 第4堂体验课-索引机制 第5堂体验课笔记 ORACLE体系结构(一) 第6堂体验课笔记 ORACLE...

    oracle笔记(韩顺平oracle视频教学整理)

    oracle笔记(韩顺平oracle视频教学整理)

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

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

    oracle笔记.docx

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

    oracle基础笔记整理

    这篇笔记将带你深入了解Oracle的基础知识,包括SQL语句、函数、权限管理、递归查询以及存储过程和触发器等核心概念。 一、函数和SQL语句 1. SQL命令:SQL(Structured Query Language)是用于管理和处理关系数据库...

    oracle数据库学习笔记精心整理

    该资源是对应韩顺平老师关于JAVAEE培训课程中关于oracle数据库讲解部分的视频笔记,类容详细全面,针对深度学习oracle数据库的相关知识

    oracle详细笔记整理

    根据给定的文件信息,以下是对Oracle数据库的关键知识点的详细整理与解释: ### Oracle数据库连接与用户管理 在Oracle数据库中,连接至数据库是通过指定的端口(如:1521)进行的,这通常涉及到监听器的配置。`...

    oracle部分笔记整理

    本笔记主要涉及的是Oracle SQL语言的基础知识,包括数据查询、数据操作、数据定义、数据控制以及一些通用命令。 1. **数据查询语言(DQL)**: - `SELECT`语句是DQL的核心,用于从数据库中检索数据。例如,`SELECT...

    oracle笔记

    自己整理的关于oracle数据库的相关笔记,包含oralce入门、基本sql语句、连接查询和子查询、常用数据库对象、数据库的设计原则。

    oracle数据库 笔记

    在学习Oracle数据库的过程中,JackChaing作者对个人的总结经验进行了精简和整理,形成了这份笔记。以下是对这份Oracle数据库笔记中的知识点的详细解读。 首先,笔记中提到了Oracle数据库的基本概念,包括DQL(数据...

    oracle自学笔记-视频实例整理

    从给定的Oracle自学笔记和视频实例整理的内容中,我们可以提炼出一系列关于SQL查询和数据操作的重要知识点。以下是对这些知识点的详细解析: ### 1. 基本的SELECT语句 - **获取所有列**:`SELECT * FROM emp;` 这是...

    Oracle学习笔记.doc

    以下是我这一周学习oracle整理的笔记,包括课堂的内容和自己看额外看的视频补充的一些内容,基本上囊括了所有oracle的基本知识。主要的形式是例子代码加代码解释加运行结果,我个人认为对于没有学习过oracle的同学是...

    Oracle命中率 笔记整理结合实例

    Oracle 命中率计算和优化详解 Oracle 数据库中的命中率是指数据库在执行查询时,从缓存中命中数据的频率。命中率高说明数据库的缓存命中率高,能够减少磁盘 I/O,提高数据库的性能。下面将对 Oracle 中各个命中率的...

Global site tag (gtag.js) - Google Analytics