zoukankan      html  css  js  c++  java
  • Oracle学习--->1、查询

    函数:

    1、基本函数
      INICAP:把首字母转换为大写     
    SELECT INICAP(NAME) FROM DUAL   CONCAT:连接字符串     SELECT CONCAT(NAME, AGE) FROM DAUL   ROUND:四舍五入提成整数     SELECT ROUND(WEIGHT) FROM DUAL
    2、特有函数DECODE
      DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式   DECODE(QTY, 01, QTY)   如果QTY等于0就返回1,如果不等于0就返回QTY
    3、统计函数
      SUM:计算字段的总和   
    AVG:计算字段的平均值   MIN:查找字段最小值   MAX:查找字段最大值   COUNT:计算字段中的值的数目   DISTINCT:计算行中的不重复值   NVL(字段,0):如果查询字段为NULL则返回0分组
    4、统计函数
      GROUP BY:分组统计查询     SELECT COLUMN,FUNCTION(COLUMN) FROM TABLE GROUP BY COLUMN   HAVING:只能应用在GROUP BY后面   SELECT JOB,SUM(SAL) FROM DUAL GROUP BY JOB HAVING SUM(SAL) > 1000
    5、DUAL表
      DUAL表示一个1行1列的表,不用向DUAL表中执行INSERT、DELETE、TRUNCATE
    6、ROWNUM伪列
      Oracle没有类似SQL Service中的TOP关键字来获取表中的前几条记录,但是可以使用ROWNUM伪列
        SELECT ROWNUM,NAME,JOB FROM DUAL WHERE ROWNUM<=10 ROWNUM和ROWID最大的不同在于ROWID是物理存在的,ROWNUM是动态的,先查到结果集再加上去的一个列,因此必须先有结果集ROWID伪列ROWID是一种数据类型,
    它使用基于64位编码的18个字符来唯一标识一条记录的物理位置的一个ID,有点类似于主键,不过与主键的本质区别是ROWID一般情况下是按照递增的顺序排列 7、ROWID可以查询,但是不是存储在表中,因此不支持插入、更新、删除   ROWID通过ROWIDTOCHAR转换为字符串进行显示
      SELECT ROWIDTOCHAR(ROWID) FROM DAUL

    多表连接:

    1、Oracle特有的连接查询
    SELECT TB1,TB2 FROM TB1,TB2 WHERE TB1.COLUMN=TB2.COLUMN 在一个表中指定外键,在另外一个表中指定与其关联的主键
    2、内连接Oracle写法:
    SELECT TB1,TB2 FROM TB1,TB2 WHERE TB1.COLUMN=TB2.COLUMN 标准写法: SELECT TB1,TB2 FROM TB1 INNER JOIN TB2 ON TB1.COLUMN=TB2.COLUMN
    3、外连接
    左连接(Oracle写法):  
    SELECT TB1.COLUMN,TB2.COLUMN FROM TB1,TB2 WHERE TB1.COLUMN=TB2.COLUMN(+) 右连接 (Oracle写法):     SELECT TB1.COLUMN,TB2.COLUMN FROM TB1,TB2 WHERE TB1.COLUMN(+)=TB2.COLUMN
    4、交叉连接
    交叉连接是指用A表的记录与B表中的记录行数相乘得到的笛卡尔积,例如A表有15条记录,B表有6条记录,那么查找出来的就是15*6=90条记录 Oracle写法:   SELECT TB1.COLUMN TB2.COLUMN FROM TB1,TB2 标准写法:    SELECT TB1.COLUMN TB2.COLUMN FROM TB1 CROSS JOIN TB2
    5、自然连接
    两张表中有相同名字和数据类型的列,那么可以使用自然连接来自动匹配数据类型和列名 自然连接使用NATURAL
    JOIN    SELECT TB1.COLUMN TB2.COLUMN FROM TB1 NATURAL JOIN TB2

    子查询

    子查询分为非相关查询和相关子查询
    1、非相关子查询
      非相关子查询分为单行单列子查询、多行单列子查询和多列子查询
      1.1、单行单列子查询:
        又称为标量子查询,指的是子查询返回单行单列结果,通常与比较运算符“=、>、<、!=、<=、>=”联合使用

      1.2、多行单列子查询:
        指的是子查询返回单列多行数据集,不允许与比较运算符进行组合运算,必须使用特定关键字“IN、ANY、ALL”来将外层查询的单个值与子查询的多行进行比较运算
        <ANY:意思是小于最大值
        >ANY:意思是大于最大值
        =ANY:等同于IN
        <ALL:意思是小于最小追
        >ALL:意思是大于最大值
        
      1.3、多列子查询:
        子查询返回多列数据,这种类型的子查询通常用在UPDATE语句中

    2、相关子查询
      相关子查询中的子查询条件来源于外部查询,这是区别非相关子查询

    表集合操作

    表集合又称为复合查询,多个SELECT的结果集合并在一起,分为4个类型
    联合运算使用规则:
      ①、被选的列数和列的数据类型必须与所有用在查询中的SELECT语句一致,列的类型可以不相同
      ②、联合运算在做重复检查的时候不忽略NULL值
      ③、默认情况下,输出SELECT自居的第1列升序排序
      ④、IN运算比UNION运算高的优先级
      ⑤、联合运算在所有被选择的列上进行
    1、联合运算:
      两个结果集去掉重复值合并的结果,使用UNION操作符

    2、全联合运算:
      把两个结果集合并,包括重复值,使用UNION ALL操作符

    3、相交运算:
      返回多个查询结果集中的相同行,使用INTERSECT操作符

    4、相减运算:
      返回第1个查询中存在而第2个查询中不存在的行,使用MINUS操作符

    层次化查询

    112
  • 相关阅读:
    linux文件操作
    文件和目录维护
    随心而记
    开学了
    基本逻辑门电路原理
    ubuntu搭建ftp服务
    中断
    数码管
    字,寻址和移位
    Error: Could not find or load main class resourcemanager
  • 原文地址:https://www.cnblogs.com/LiGengMing/p/5855846.html
Copyright © 2011-2022 走看看