zoukankan      html  css  js  c++  java
  • Oracle sql语句学习

      转载请声明来自http://www.cnblogs.com/ulli/archive/2012/02/27/2369882.html

    1: Oracle中双引号与单引号的区别

                 Oracle中的单引号用来表示字符串常量,常用在这些位置

                      1: where 条件判断里面,作为字符串常量。 

                                  

                 1 SELECT    last_name,hire_date
    2 FROM employees
    3 WHERE last_name = 'yinyunan'

                     2: 作为查询的结果或者 作为一列 放在SELECT 列表后面

                              

             1 SELECT   last_name || ' is a ' || job_id AS "Details",
           2 'Literal String '
           3 FROM employees;

               单引号的字符串不能使用的地方: 

                    1: 作为列名或列的别名

               Oracle中双引号则常常用在列明或列的别名。

     

    2: Oracle函数介绍

            a:  单行函数(数据中每一行只返回一个结果,会操作结果中的每一行数据)

                    a1:  字符串函数,接收字符型参数,返回类型为字符型或数值型。

                    a2:  数字型函数,接收数字型参数,返回数字型。

                    a3:  日期型函数,处理日期型数据,

                           所有函数军返回Date类型(MONTHS_BETWEEN()函数除外)

                    a4:  转换函数,负责数据类型键的转换。

                    a5:  通用函数,常用的函数。

          b:  多行函数   

     

    3: Oracle中组函数相关

          1:  执行顺序为 where、group by、having、order by;

          2:如果在select中为列去了别名,那么只能在order by中使用,where、group by、having中都不能使用

          3:如果select中包含了组函数,那么select中不能出现其他的列,除非,该列出现在group by中。 

     

    4: Oracle表别名引用的范围

        1: 别名存在的可用范围只在该select语句块中。

        2: 由上可以推知,在子查询块中能够使用外查询的别名,而在外查询中,不能使用子查询中的别名和标明,贴代码

                

           1 SELECT  employee_id,last_name
           2 FROM employees e1
           3 WHERE employee_id IN (
           4 SELECT employee_id
           5 FROM employees e2)


        在此处,子查询可以访问外查询的表,即employees(e1),而外查询不能访问子查询的表(e2)

    5:  Oracle中的子查询相关

         1:若子查询当中存在空值,则应该注意使用 NOT IN等 与集合所有元素相关的操作(ALL ANY),见代码

          1 SELECT  last_name
          2 FROM employees
          3 WHERE employee_id NOT IN(
          4 SELECT manager_id
          5 FROM employees)

         此处,如果子查询返回的结果中包含null值得话,该查询将得不到任何结果,

         因为not in会导致外查询与集合里面的值都进行比较,而

         任何值和null比较都为null,这样的话,外where判断总是为null

         此处的解决办法是,在子查询中加入where判断,manager_id是否为空

         

  • 相关阅读:
    python两个装饰器的运算顺序
    python中私有属性的访问
    python中的方法使用
    创业,宁愿单兵作战也不要参在拙劣的团队里继续寻觅队友
    项目经理问:为什么总是只有我在加班 – 挂包袱现象
    我该怎么安排下属的工作-项目经理如何分配任务
    项目经理自己要写代码吗?
    管理系统书籍《从程序员到项目经理》 从程序员到项目经理(一)
    宗宁:赚快钱的那些坑。。(转载)
    java 实现二分法
  • 原文地址:https://www.cnblogs.com/ulli/p/2369882.html
Copyright © 2011-2022 走看看