`

oracle数据库命令大全

阅读更多
sqlplus打开记事本命令 ed;

循环插入数据
declare 
i NUMBER;
begin
for i in4..100 loop
INSERT INTO rfid_fixed_heart VALUES(SYSDATE+i,i);
end LOOP;
END;


1、索引: (索引分为:1.B数索引(bitmap位图索引,反向键索引) 2、unique唯一索引(非唯一索引)  3、单列索引(组合索引、基于函数索引)(在组合中单列和多列创建索引位单列和多列索引) )

create index index_name on table(字段);
create unique index index_n on table('name');---唯一索引
create unique index index_n1 on table(name desc);---降序唯一索引
create bitmap index index_a on table('name');---位图索引
create index index_char on table(to_char(time,'yyyy')) ;---函数索引
create index index_m on table(id) reverse;---反向键索引

创建索引后 读取数据较快  但是修改数据时候会变慢  因为它还要增加一个索引到索引表里面

2、视图:(1、简化查询,2.保护私有数据)

create view view_name as 查询内容
视图创建的越多越不好维护(表结构改了视图也得跟着改)

3、三范式(设计数据库的时候需要遵守的一些规则)
	第一范式:第一范式的目标是确保每列的原子性,如果每列都是不可再分割的最小数据单元,则满足第一范式。
	第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主见相关
	第三范式:在第二范式的基础上更近一层,目标是确保每列和主键都有直接相关

4、oracle输出
	begin 
	dbms_output.put_line('helloWorld');
	end;
	并且还需要写一句话
	set serveroutput on;(默认serveroutput 是off的)
	然后在执行一边就会输出helloWorld

5、declare(声明变量)
	declare
	v_name varchar(20);
	begin
	v_name :='myname';
	dbms_output.put_line(v_name);
	end;
	执行结果是myname

6、declare(声明变量)
    declare 
    v_num number :=0;
    begin
    v_num :=2/v_num;
    dbms_output.put_line(v_num);
    exception
    when others then     --当出现问题时
    dbms_output.put_line('error');
    end;      
	执行结果error

7、oracle常用变量类型:
	1、binary_integer:整数,主要是用来计数而不是用来表示字段类型
	2、number :数字类型
	3、char:定长字符串
	4、varchar2 :变长字符串
	5、date :日期
	6、long:长字符串,最长2GB
	7、boolean:布尔类型,可以取值为true,false和null值	

8、Sql语句的运用:
	declare
	v_ename emp.ename%type;   --v_ename指定的是emp表中的ename的类型并且别emp中ename引用
	v_sal  emp.sal%type;      --v_sal指定的是emp表中的sal的类型
	begin
	select ename,sal into v_ename,v_sal from emp where empno=7369;
	dbms_output.put_line(v_name || '' ||v_sal);
	end;
	输出800 (返回800行数据)

9、继续演戏%type
	declare 
	v_deptno dept.deptno%type :=5;
	v_dname dept.dname%type :='aaaaa';
	v_loc dept.loc%type :='bj';
	begin
	insert into dept2 values(v_deptno,v_dname,v_loc);
	commit;
	end;
	表dept2中就会多一行5,aaaaa,bj数据

10、if else的用法
	declare 
	v_sal emp.sal%type;
	begin
	select sal into v_sal from emp
	where empno=7369;
	if(v_sal<1200)then
	dbms_output.put_line('low');
	elsif(v_sal<2000)then
	dbms_output.put_line('middle');
	else
	dbms_output.put_line('high');
	end if;
	end;

11、do  while循环以loop开始再以loop结束
	declare 
	i binary integer :=1;
	begin
		loop
	dbms_output.put_line(i);
	i:=i+1;
	exit when(i>=11);
	end loop;
	end; 
	打印 1到10的数据

12、while循环   以loop开始再以loop结束
	declare
	j binary integer :=1;
	begin
	while j<11 loop
	dbms_output.put_line(j);
	j :=j+1;
	end loop;
	end;
	打印1到10的数据;

13、for循环
	begin
	for k in 1..10 loop
		dbms_output.put_line(k);
	end loop;
	for k in 10..1 loop
		dbms_output.put_line(k);
	end loop;
	end;
	打印1到10的数据和10到1的数据


14、游标《重点》
    declare
    cursor c is select * from emp;  --声明游标
          v_emp c%rowtype;
     begin 
     open c                         --打开游标后p_sql才能正真的取数据
     fetch c into v_emp;
     dbms_output.put_line(v_emp.ename);
     close c;
     end;

15、游标
    declare
    cursor c is select * from emp;  --声明游标
          v_emp c%rowtype;
     begin 
     open c          --打开游标后p_sql才能正真的取数据
     loop                         
     fetch c into v_emp;
     exit when(c%notfound);		    
     dbms_output.put_line(v_emp.ename);
     end loop;
     close c;
     end;

16、存储过程:当你写好存储过程以后在procedures下面会显示你刚写的存储过程名  然后右键---测试----上面有个开始调试器点一下-----在把旁边的执行点一下存储过程就执行了

	下面是一个简单的例子:
	创建表 create table emp(
            empno number(4) primary key,
            empname varchar(20) not null,
            empmessage varchar(50) not null
            sal number(6) not null
     		)
    	 insert into emp(empno,empname,empmessage,sal)values(1,'accp','accp',60);
   	 insert into emp(empno,empname,empmessage,sal)values(6,'accp','accp',800);
   	 insert into emp(empno,empname,empmessage,sal)values(2,'accp','accp',50);
   	 insert into emp(empno,empname,empmessage,sal)values(3,'accp','accp',30);
       	 insert into emp(empno,empname,empmessage,sal)values(4,'accp','accp',100);
   	 insert into emp(empno,empname,empmessage,sal)values(5,'accp','accp',200);
	   --存储过程
	create or replace procedure p
        is
        cursor c is
        select * from emp for update;
        begin
        for emp in c loop
       if(emp.empno=4)then
       update emp set sal=sal*2 where current of c;
       elsif(emp.empno=6)then
       update emp set sal=sal*3 where current of c;
       else
       update emp set sal=sal-1 where current of c;
       end if;
       end loop;
       commit;
       end;	

17、带参数的存储过程:
	create or replace procedure p
(v_a in number, v_b number, v_ret out number, v_temp in out number)
  is
  begin
  if(v_a>v_b) then
  v_ret :=v_a;
  else
  v_ret :=v_b;
  end if;
  v_temp :=v_temp+1;
  end;
  
  declare 
  v_a number :=3;
  v_b number :=4;
  v_ret number;
  v_temp number :=5;
  begin p
  (v_a,v_b,v_ret,v_temp);
  dbms_output.put_line(v_ret);
  dbms_output.put_line(v_temp);
  end;

	输出4,6

18、函数function
首先创建表
	create table emp(
            empno number(4) primary key,
            empname varchar(20) not null,
            empmessage varchar(50) not null
            sal number(6) not null
     )
插入数据
    insert into emp(empno, empname, empmessage, sal)values(5, 'accp', 'accp', 200);
    insert into emp(empno, empname, empmessage, sal)values(11, 'accp', 'accp', 3200);
    insert into emp(empno, empname, empmessage, sal)values(23, 'accp', 'accp', 2400);
    insert into emp(empno, empname, empmessage, sal)values(15, 'accp', 'accp', 2200);
    insert into emp(empno, empname, empmessage, sal)values(18, 'accp', 'accp', 9200);
创建函数:
create or replace function sal_tax(v_sal number) --个人所纳税
  return number
  is
  begin
  if(v_sal<2000)then
  return 0.10;
  elsif (v_sal<2750)then
  return 0.15;
  else
  return 0.2;
  end if;
  end;
调用函数:
  select lower(empname),sal_tax(sal)from emp;
执行结果
lower(empname) 		sal_tax(sal)
accp			0.1
accp			0.2
accp			0.15
accp			0.15
accp			0.2


--带参数的存储过程
create or replace procedure pro_class_t (p_class_id in number,to_add in number) 
is 
v_class_name_zh Rebase_class_t.class_name_zh%type; 
v_status Rebase_class_t.status%type; 
begin 
select class_name_zh,status into v_class_name_zh,v_status from Rebase_class_t where class_id=p_class_id; 
update Rebase_class_t set status = status + to_add where class_id=p_class_id; 
dbms_output.put_line('员工'||v_class_name_zh||'的状态给更改为'||v_status); 
commit; 
exception 
when others then 
dbms_output.put_line('发生错误!'); 
rollback; 
end; 

call pro_class_t(43,30) 


select min(attrib_id),count(data_type),data_type from base_attrib_t group by data_type having min(attrib_id) > 20 


字符转义符模糊查询
<isNotEmpty prepend="and" property="value0">
lower(a.assignment)like lower('%'|| trim(#value0#) ||'%')	
</isNotEmpty>

不允许崩溃的td
<TD align="left" nowrap="nowrap" class="bg_white">
<div  title='<bean:write name="CIlist" property="monitering_item" />' style="float:left; padding-top: 1px; height: 14px; width: 80px; white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;">
	<bean:write name="CIlist" property="monitering_item" />
</div>
</TD>

	          
分享到:
评论

相关推荐

    Oracle数据库命令大全

    SQL*Plus是Oracle数据库的命令行接口,它允许用户通过输入特定的命令和SQL语句来与数据库进行交互。本文将详细介绍一些常用的Oracle SQL*Plus命令。 1. **执行SQL脚本文件** 使用`START`或`@`命令可以执行存储在...

    Oracle数据库命令大全.docx

    Oracle数据库是世界上最广泛使用的数据库管理系统之一,其强大的功能和丰富的命令集使得数据库管理变得高效而灵活。本篇文章将深入探讨Oracle数据库的导入导出命令,这些命令主要用于数据的备份与恢复,是数据库管理...

    Oracle数据库命令大全[参考].pdf

    Oracle数据库是世界上最流行的数据库管理系统之一...了解并熟练使用这些命令对于任何Oracle数据库管理员或开发人员来说都是至关重要的。在实际工作中,你可以根据需要组合使用这些命令,以实现更复杂的数据库管理操作。

    Oracle数据库命令 个人总结

    "Oracle数据库命令个人总结" Oracle数据库命令个人总结是徐博文在2014年3月整理的关于Oracle数据库的命令和心得的总结。下面是从该总结中提取的重要知识点: 1. 查询数据库数据文件的基本字段信息:使用DESC DBA_...

    Oracle 数据库导出导入命令及详解

    本文将详细介绍Oracle数据库的导出(EXP)和导入(IMP)命令。 **一、Oracle数据库导出命令(EXP)** 1. **USERID参数** `USERID=demo/demopwd@orcl`:这部分指定了连接到Oracle数据库的凭证。`demo`是用户名,`...

    oracle数据库常见命令

    ### Oracle数据库常见命令详解 #### 一、导出数据库 Oracle数据库中经常需要用到的数据操作之一就是数据的备份与恢复,其中导出数据是一项非常重要的功能。以下是一些关于Oracle数据库导出命令的基本介绍: - **...

    Oracle数据库sqlplus常用命令

    Oracle数据库sqlplus常用命令 Oracle数据库sqlplus是Oracle数据库管理系统中的一种命令行工具,用于执行SQL语句、查看数据库状态、执行数据库管理任务等。以下是Oracle数据库sqlplus常用命令的知识点总结: 获取...

    oracle 连接数据库命令

    ### Oracle 连接数据库命令详解 #### 一、SQL*Plus简介 SQL*Plus是Oracle数据库的一个非常重要的工具,主要用于执行SQL语句、PL/SQL脚本等,并且可以用来管理Oracle数据库。通过SQL*Plus,用户能够进行数据库的...

    Oracle数据库备份和恢复的命令

    ### Oracle数据库备份与恢复的关键知识点 #### 一、Oracle数据库备份流程详解 ##### 1. 创建备份目录 在进行Oracle数据库备份之前,首先需要在服务器上创建一个专门用于存放备份文件的目录。例如,在示例中,以`...

    oracle 数据库常用命令大全

    以下是一些关键的Oracle数据库命令和概念,以及如何在不同的环境下连接到Oracle数据库。 1. **启动数据库**: - `cd @ORACLE_HOME/bin`:切换到Oracle安装目录的bin子目录,这里包含了数据库服务的可执行文件。 -...

    备份oracle数据库命令

    开发人员或者数据库管理人员,oracle数据库备份导出命令及其导入命令

    Veeam 备份恢复oracle数据库详细配置文档

    可以使用 sqlplus 命令来确认数据库的归档状态。 四、备份作业运行策略 在备份作业运行时,需要设置备份作业运行的计划策略,可以选择备份的频率、备份的时间间隔等。 五、Oracle 数据库异机恢复 使用 Veeam ...

    Oracle数据库的启停

    Oracle 数据库的启停 Oracle 数据库的启停是数据库管理员的重要任务...通过以上的讲解,我们可以了解到 Oracle 数据库的启停过程,了解到不同的启动和停止命令的使用场景和区别,从而更好地管理和维护 Oracle 数据库。

    如何备份还原oracle数据库

    在IT领域中,Oracle数据库因其高性能、可靠性及可扩展性被广泛应用于企业级应用之中。对于Oracle数据库管理员而言,掌握如何高效地进行数据库备份与恢复是一项至关重要的技能。本文将根据给定的信息“如何备份还原...

    oracle 使用命令创建oracle数据库

    1 、确定数据库的sid 和db_name  \u3000sid='hsj'  db_name='hsj'  2、设置环境变量env ORACLE_BASE=/u01/app ORACLE_HOME=$ORACLE_BASE/oracle ORACLE_SID=hsj PATH=$ORACLE_HOEM/bin:$PATH; LD_...

    Oracle数据库工具安装包(免安装)

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据了重要的地位。本文将详述“Oracle数据库工具安装包(免安装)”的相关知识点,包括Oracle Client 11.2版本以及32位系统兼容性,...

    Oracle数据库命令及配置文件.rar

    本资源"Oracle数据库命令及配置文件.rar"提供了一个基础学习平台,帮助初学者掌握Oracle数据库的基本操作、配置以及数据查询。 一、Oracle数据库连接与配置 在Oracle 11g中,连接远程数据库通常涉及以下步骤: 1. *...

    Oracle数据库命令操作.docx

    Oracle 数据库命令操作 Oracle 数据库命令操作是 Oracle 数据库管理系统中的一组基本命令,用于管理和操作数据库。这些命令可以帮助用户管理数据库、执行查询、修改数据、创建对象等。 1. 查看 Oracle 版本:使用 ...

Global site tag (gtag.js) - Google Analytics