`

Oracle 常用sql

阅读更多

1.select * from new_table union all select * from old_table; //加
    select * from new_table minus select * from old_table;   //减

 

判断选择两日期中最小的那个:

 select  case  when  sysdate<(select to_date(to_char(add_months(sysdate,1),'YYYY-MM')||'-01','YYYY-MM-DD')  from dual)  then  'small'  else  'big' end from dual

 

2.转义字符 escape
select * from bonus  t where t.ename like 'S\_%' escape '\'
表示\是转义字符,对某些关键字无法模糊查询,对_(关键字)进行转义

 

3.2、数值函数
 round 四舍五入
 select round(45.935,2) from dual;  结果45.94 第二个参数表示保留小数点后两位
 trunc 截取
 select trunc(45.935,2) from dual; 结果45.90   第二个参数表示截取到小数点后两位
3、日期函数
 add_mounths(sysdate,-5)  延迟五月
 add_mounths(sysdate,-5*12) 延迟五年
 sysdate-5 延迟五天
 to_char(sysdate,'yyyy-mm-dd'),to_date('2008-01-12','yyyy-mm-dd'),to_number() 日期格式转换


4、分页显示

一般代码中对结果集进行分页就是这么干的。即,先生成rownum后对列过滤,
  select * from (select a.*,rownum r from emp a) where r between 5 and 10

 

(1)select * from (select ename,job,sal,rownum no from emp) where no>=5 and no<=8;
 (2)相对第一种,当数据量大时,第二种效率明显高
   select * from (select ename,job,sal,rownum no from emp where rownum<=8) where no>=5 and no<=8;

 

5.for

 

Oracle里面有一个
  for c in select a,b from c loop
  //此处可以使用 c.a, c.b 等等
  end loop

这样用比游标的好处是不用再定义若干个变量供fetch into

因为我要操作的记录集还有字段比较多,要是用fetch cursor into @a, @b, @c,.....//这里可能要几百个变量了

例:

CREATE OR REPLACE
FUNCTION FO RETURN VARCHAR2 AS
n number;
BEGIN
  --ids:=0;
  for h in (select holiday_id hid from T_ATTE_HOLIDAYS) loop
   n:=h.hid;
   dbms_output.put_line('ids'|| to_char(h.hid)||to_char(n));
  end loop;
  RETURN NULL;
END FO;

 

6.MERGE INTO products p
     USING newproducts np
     ON (p.product_id = np.product_id)
     WHEN MATCHED THEN
     UPDATE
     SET p.product_name = np.product_name,
     p.category = np.category;  //Table: products, newproducts. 修改products表中的数据

7.触发器(当某个表修改时,把相关数据添加到另一个表中)

CREATE OR REPLACE
TRIGGER T3
 AFTER UPDATE ON TEST
 FOR EACH ROW
BEGIN
 insert into test2(id,name) values(:old.id,:OLD.name);
 if updating then
 dbms_output.put_line('updating');
 elsif inserting then
 dbms_output.put_line('inserting');
 elsif deleting then
 dbms_output.put_line('deleting');
 end if;
END;

 

8.id自增:

create or replace TRIGGER USER2_INS
 BEFORE INSERT ON USER2
 for each row
BEGIN
 select user2_seq.nextval into:New.id from dual;
END;

 

9.外键:

alter table US
add constraint us_user2_fk foreign key (USERID)
references USER2 (ID) on delete cascade;  //级联delete,删除了和它有关的所有行,这个表的多行被再删除

 

alter table US
add constraint us_score_fk foreign key (scoreID)
references score (ID) ON DELETE SET NULL; //级联delete,只删除这个表中的一行,但是和score(id)有关的内容全是null(不推荐使用,和上面的差不多)

 

 

alter table US
add constraint us_user2_fk foreign key (userID)
references user2 (ID); //推荐使用,默认不级联

 

alter table US
drop constraint us_user2_fk;

分享到:
评论

相关推荐

    ORACLE常用SQL语句大全.pdf

    Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 ...

    Oracle 常用SQL技巧经典收藏

    以下是一些关于Oracle常用SQL技巧的经典要点: 1. **避免在SELECT子句中使用“*”**:在SQL查询中,使用通配符“*”代表选择所有列,虽然方便但效率低下。Oracle在解析时需要查询数据字典获取所有列名,增加了额外...

    oracle常用sql.rar

    "oracle常用sql.rar"这个压缩包文件显然包含了关于Oracle数据库中常用SQL语句的集合,这对于学习和工作中解决常见问题非常有帮助。以下是一些Oracle SQL的重要知识点: 1. **锁表查询**: 在Oracle中,锁定数据是...

    oracle常用SQL语句(汇总版).docx

    Oracle 常用 SQL 语句汇总 Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义...

    oracle常用sql整理

    本文将基于"oracle常用sql整理"的主题,深入探讨Oracle SQL的一些核心概念、语句及其实用技巧,适合初级到中级水平的学习者。 一、SQL基础 SQL是标准化的查询语言,分为DDL(Data Definition Language)、DML(Data...

    ORACLE常用SQL.txt

    ORACLE常用SQL.txt ORACLE常用SQL.txt ORACLE常用SQL.txt

    oracle常用sql.pdf

    oracle常用sql

    oracle常用sql语句大全 注释完整 放心使用

    本资料集包含了Oracle数据库中常用SQL语句的大全,注释完整,非常适合初学者和有经验的开发者参考使用。 1. **数据查询(SELECT语句)**: - `SELECT * FROM table_name;`:查询表table_name中的所有列。 - `...

    oracle 常用SQL语法手册.doc

    Oracle 常用 SQL 语法手册 Oracle 是一种关系数据库管理系统, SQL(Structured Query Language)是 Oracle 数据库管理系统的标准语言。下面是 Oracle 常用 SQL 语法手册的知识点总结: 一、SELECT 语句 SELECT ...

    ORACLE 常用SQL语句

    ORACLE 常用 SQL 语句 ORACLE 是一种关系数据库管理系统,它提供了多种 SQL 语句来操作和管理数据库。下面将 Introduced 13 种常用的 ORACLE SQL 语句,涵盖字符串处理、数据搜索和修改等方面。 1. ASCII 函数 ...

    oracle常用sql语句

    ### Oracle常用SQL语句知识点详解 #### 一、概述 Oracle是全球领先的数据库管理系统之一,在企业级应用领域占据着重要地位。SQL(Structured Query Language)是用于管理关系型数据库的标准语言,也是与Oracle...

    oracle常用sql查询.pdf.rar

    oracle常用sql查询.pdf.rar

    Oracle常用sql语句整理.zip

    以下是一些Oracle数据库中常用的SQL语句及其详细解释。 1. **数据查询(SELECT)** - `SELECT column1, column2 FROM table_name;` 用于从表中选择特定列的数据。 - `WHERE condition;` 添加条件过滤结果,如 `...

    Oracle常用SQL语句复习

    本篇将基于"Oracle常用SQL语句复习"这一主题,深入探讨Oracle SQL的基本语法和常用操作,帮助读者巩固和提升Oracle数据库操作技能。 1. **数据查询基础** - `SELECT`语句是SQL中最基本的查询命令,用于从一个或多...

    Oracle常用SQL手册.chm

    Oracle常用SQL手册.chm

    Oracle常用SQL脚本

    "Oracle常用SQL脚本"集合通常包含了一系列预编写好的SQL语句或存储过程,以帮助数据库管理员和开发人员高效地完成日常任务。这些脚本可能涉及数据库性能监控、数据备份与恢复、用户权限管理、表结构操作等多个方面。...

    oracle常用sql1

    Oracle 常用 SQL 语句 Oracle 是一种关系型数据库管理系统,广泛应用于各个行业。以下是 Oracle 中的一些常用 SQL 语句,涵盖了表空间管理、用户管理、权限管理等方面。 表空间管理 在 Oracle 中,表空间是数据库...

    wxh oracle常用SQL脚本

    从给定的文件信息来看,主要涉及的是Oracle数据库的管理和优化相关的SQL脚本与知识点,以下将对这些知识点进行详细的解读和扩展。 ### Oracle数据库I/O统计查询 第一条SQL脚本用于统计Oracle数据库中的I/O操作,...

Global site tag (gtag.js) - Google Analytics