• SQL-JOIN-联表的删改


    JOIN(内连接:INNER JOIN,INNER可省略):将多个表水平连接,如果一个表比另一个表多一行数据,那么多出的那行数据不会显示;

    SELECT *FROM Student s    --给别名

    JOIN City c                             --给别名

    ON s.FromCityId=c.Id            --连接条件

    外连接:

    左外连接(LEFT):左边所有行保留,右边没有对应的值时,以Null填充;

    右外连接(RIGHT):右边所有行保留,左边没有对应的值时,以Null填充;

    全连接(FULL):左右两边都保留,没有值的地方以NULL填充;

    SELECT*FROM Student s

    LEFT JOIN City c               --可更改为右外连接和全外连接

    ON s.FromCityId=c.Id        --连接条件

    联表的删/改:FROM...JOIN..ON

    DELETE Student SET Score+=5      --保留划线的代码,就是来自北京的同学,成绩加5分

    FROM Student s JOIN Address a ON s.FromCityId=a.Id

    WHERE s.FromProvince=N'北京'

    UNION:将多个查询结果纵向连接,只要查询结果的数量,顺序相同,且每列的数据类型兼容;

    SELECT [Name],N'科目',Score FROM Student     --添加一个列(N'科目'),以对齐Exam

    UNION                                    --没有添加ALL,会清除重复行

    SELECT [UserName],Subject,Score FROM Exam     

    ORDER BY [Name]              --列名以第一个查询子句为准

    ORDER BY UserName        --非第一个查询子句会报错

    如果这篇文章,对你有帮助,请点击关注,我会持续更新......
  • 相关阅读:
    EasyTransaction主要源码分析
    编程哲理小故事:Tina的运动会方阵
    多维扩展点的思考与设计——解决渠道、产品增加引发的腐化问题
    分布式事务框架Seata及EasyTransaction架构的比对思考
    设计,架构,框架之间是什么关系?
    你知道如何画好一幅架构图么?
    学会分享痛苦
    建立你自己的博客
    使用正确的工具软件
    掌握主动权
  • 原文地址:https://www.cnblogs.com/-GoFurther/p/13735705.html
Copyright © 2020-2023  润新知