zoukankan      html  css  js  c++  java
  • 数据库知识点1

    -----------------------------------参考《SQL基础教程》--孙淼,罗勇--------------

    1、sql语句中的insert、update、select、delete语句,若并未特殊说明,其操作范围是整个数据表中的所有记录,这里特殊说明就是使用where等限定性语句对记录的操作范围进行限制,只对这些满足条件的记录进行操作。sql语句中也是蕴含着循环的,举个栗子,update LZ_OPT_ITEM  SET OPT_ID=1,REPAIR_RATE=0.5就会将数据表中OPT_ID,REPAIR_RATE两列的值一次性修改为1和0.5。



    2、NULL

        当我们设计数据表时,如有图所示,有一列约束就是“是否可为null”,这里的null就是空白,只有当使用insert语句向数据表中插入一条记录时才会显示出它的意义。

    当OPT_ID,REPAIR_RATE可以为“null”,即可以是“空白”是,以下insert语句才可运行。

    INSERT INTO LZ_OPT_ITEM (SPARE_ID,STA_ID)VALUES(2,4);

    语句向数据表插入一条记录,但只是向SPARE_ID,STA_ID插入了数据,并没有插入OPT_ID,REPAIR_RATE的值,我们就认为是值“空白”,因为OPT_ID,REPAIR_RATE可以是“空白”,所以这条语句可以顺利执行。如果OPT_ID,REPAIR_RATE也不可以是“null”,那么这条语句就不能通过执行,提示“缺少数据”。

    3、逻辑运算符

        AND的优先级是高于OR的,有时候需要先判断OR再判断AND,这时候就使用()将OR包含起来,保证OR先执行。

    4、联结

        联结就是以列为单位对若干表进行联结今儿组合成为一个新表。联结分为外联结,内联结以及交叉联结。

    以下举一个交叉联结的例子:

    SELECT STA_ID,STA_NAME,ITEM_ID,ITEM_NAME FROM ZX_STATION CROSS JOIN ZX_ITEM  WHERE PRO_ID=1 AND (H_ITEM_ID=1 OR H_ITEM_ID=2 OR H_ITEM_ID=6);

    具体参考书籍《SQL基础教程》。

    5、insert批量数据

        可以使用insert语句从其他表中直接复制数据到新表,即使用insert语句插入批量数据。分三步走:

    第一步:

        设置除要批量插入的列之外的列可以为null。OPT_ID,STA_ID,SPARE_ID即是批量插入列。如图所示

    第二步:

        使用insert语句批量复制其他表数据到目标数据表中。如图所示:

    结果如下图所示:

    第三步:

    使用update语句可以一次性复制给余下的两列。sql语句:

    UPDATE LZ_OPT_RESULT_SPARE set SPARE_QUANTITY=12,SPARE_COST=2000;

    结果如下所示:


    只是所有记录的后两列数值均相同。

    6、GROUP BY

    select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现group by后面(聚合函数除外)

    7、层次化查询

        层次化查询的结果中,第一条记录到第n条依次是查询开始节点,此节点的上层节点,上层结点的上层节点。。。

    就像查询北京的层次化,则结果是:

    北京

    中国

    亚洲

    全球

    8、insert批量插入数据2

    可以在select语句中写常量,直接将常量插入到新表中。

    执行后的结果

    9、三张表的内联结

    目前一张表的数据如下所示:

    需求是从表STATION中查找STA的名称以及从ITEM中查找SPARE的名称,然后与上表组合在一起,总而言之就是在上表的基础上记上两列,STA名称和Spare名称

    SQL语句如下:

    SELECT STA.STA_ID,STA.STA_NAME,SPARE.SPARE_ID,ITEM.ITEM_NAME,SPARE.SPARE_QUANTITY FROM ZX_STATION STAINNER JOIN LZ_OPT_RESULT_SPARE SPARE ON STA.STA_ID=SPARE.STA_ID
    INNER JOIN ZX_ITEM ITEM ON ITEM.ITEM_ID=SPARE.SPARE_ID;

    执行结果如下所示:







  • 相关阅读:
    【Linux高级驱动】如何分析并移植网卡驱动
    【Linux高级驱动】网卡驱动分析
    【Linux高级驱动】I2C驱动框架分析
    【Linux高级驱动】触摸屏工作原理与工作流程
    【Linux高级驱动】触摸屏驱动的移植
    【Linux高级驱动】input子系统框架
    【Linux高级驱动】平台设备驱动机制的编程流程与编译进内核
    【Linux高级驱动】rtc驱动开发
    【Linux高级驱动】linux设备驱动模型之平台设备驱动机制
    【Linux】Linux基本命令扫盲
  • 原文地址:https://www.cnblogs.com/lz3018/p/4579768.html
Copyright © 2011-2022 走看看