zoukankan      html  css  js  c++  java
  • SQL基础内容

    1。MERGE

    image

    image

    2。逻辑结构

    逻辑结构 : datebase( sid ) –> schema(就是用户名,例如 scort) -> object ( 例如 table 等等),注意数据字典等是凌驾于schema之上的结构,是用来辅助管理的。

    3。约束可以添加,可以删除,可以disable, 但是不可以修改
    4。sequence

    Sequence numbers are stored and generated independently of tables , Therefore , the same sequence can be used for multiple tables .  但是它也是在 schema 下边的结构,所以,必须使用 GRANT SELECT ON  HTNSADM.TC_SCRIPT_ID TO PUBLIC 才能。。。

    CREATE SEQUENCE ID 

      START WITH 1
      MAXVALUE 2147483647
      MINVALUE 1
      NOCYCLE
      NOCACHE
      NOORDER ;

      GRANT SELECT ON ID TO PUBLIC ;

      另外可以

      drop sequence ID ;

      alter sequence id 例如

      alter sequence id minvalue 2 ;

    5。索引同约束一样,不能修改。只能删除再重新创建

    CREATE INDEX index_name ON departments(UPPER( department_name) )

    DROP INDEX index_name

    6。synonym

    synonym好处 : Ease referring to a table owned by another user .    Shorten lengthy object names

    注意,此别名一般是在拥有者的 schema中创建的。例如htnsadm是拥有者,创建了一个

    CREATE SYNONYM HANARO.FRT_BOM FOR FRT_BOM, 这条语句是在 htnsadm这个 schema中的。貌似这个synonym创建反了,而在HANARO这个用户即schema中,根据上面的语法含义,在HANARO这个 schema 中可以直接使用 FRT_BOM内容。正常的应该是在本用户的 schema 下创建,例如 create synonym frt_bom for htnsadm.frt_bom , 这样,才对。

    7。相关子查询

    1)SELECT column1 , column2

        FROM table1 outer                          --> 有时外部表和内部表是一个表, 所以使用别名好一点 , 必须的用

        WHERE column1 operator

                                                         ( SELECT column1 , column2

                                                            FROM table2

                                                            WHERE expr1 = outer.expr2 ) ;

    这样,每次外部传递参数不一样时,就会返回不一样的结果。即每传一次参数,内部查询就要进行一次。

    2)EXISTS

    修改上边代码

    SELECT column1 , column2

        FROM table1 outer                          --> 有时外部表和内部表是一个表, 所以使用别名好一点 , 必须的用

        WHERE EXISTS

                                                         ( SELECT column1 , column2

                                                            FROM table2

                                                            WHERE expr1 = outer.expr2 ) ;

    逻辑判断有无,速度快。

     修改操作 ( 利用相关子查询 )    在别的表也存在

      UPDATE table1 别名1

      SET column = ( SELECT expression

                                   FROM table2 别名2 

                                   WHERE 别名1.column = 别名2.column ) ;

    删除操作 ( 利用相关子查询 ) 在别的表也存在

      DELETE FROM table1 别名1

      WHERE column operator ( SELECT expression

                                                       FROM table2 别名2

                                                       WHERE 别名1.column = 别名2.column ) ;

  • 相关阅读:
    洛谷P2751 工序安排Job Processing
    UVA 1613 K度图染色
    线段树+扫描线
    分组背包
    洛谷P5506 封锁
    洛谷P2574 XOR的艺术
    List.Sort
    Dict.Count
    Convert.ToString(null) => null
    Convert 输入字符串的格式不正确
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2715509.html
Copyright © 2011-2022 走看看