zoukankan      html  css  js  c++  java
  • SqlServer:修改和删除数据

    更新数据

    UPDATE 语句

    修改记录的 SQL 语句是 UPDATE,用于更新记录中某一个字段的值。UPDATE 语句的语法格式是如下,使用 WHERE 子句指出哪些行要更新,用 SET 关键字指定新值,输入值的类型必须与所定义的数据类型一致。

    UPDATE 表名
    SET 列名 = 表达式[,…n]
    [WHERE 条件]
    

    在一条 UPDATE 命令可以同时对几个字段的值进行修改,如果没有 WHERE 条件子句,所有记录的这一列的值全部改为同一个值。如果加了 WHERE 条件,则只对符合条件的记录修改。

    更新样例

    假设 Student 和 Score 2 张表中有如下一些数据:

    样例一

    把所有人的出生日期中的月份减 1,直接使用 SET 指定修改的值。

    UPDATE Student
    SET Sbirthday = DATEADD(MONTH, -1, Sbirthday)
    

    样例二

    把课程号 3-105 的所有成绩减 10,在上一个样例的基础上加上 WHERE 进行过滤。

    UPDATE Score 
    SET Degree -= 10 
    WHERE Cno = '3-105'
    

    样例三

    把学号 101 所有成绩加 10,最大不超过 100,使用 CASE WHEN THEN 语句令 UPDATE 能多分支地更新数据。

    UPDATE Score SET Degree = 
    	CASE WHEN Degree < 90 THEN Degree + 10
    	WHEN Degree >= 90 THEN 100
    	END
    WHERE Sno = 101
    

    样例四

    把男生所有成绩加 10%,女生所有成绩加 10(最大不超过 100),需要连接 Score 表和 Student 表获得性别信息。

    UPDATE Score SET Degree = 
    	CASE WHEN S.ssex = '男' AND Degree < 90.9 THEN Degree * 1.1
    	WHEN S.ssex = '女' AND Degree < 90 THEN Degree + 10
    	ELSE 100 END
    FROM Score SC JOIN Student S ON SC.Sno = S.Sno
    WHERE Degree != NULL
    

    样例五

    假设 Course 表中有如下一些数据:

    把课程计算机导论的所有成绩加 10,使用子查询查出“计算机导论”的课程号作为过滤条件。

    UPDATE Score
    SET Degree += 10 
    WHERE Cno = (SELECT Cno FROM Course WHERE Cname = '计算机导论')
    

    删除数据

    DELETE 语句

    删除记录的 SQL 语句是 DELETE,其格式如下所示。

    DELETE [FROM] 表名
    [WHERE 条件]
    

    FROM 可以省略,如果不带条件,则删除所有记录。如果带条件,则删除符合条件的记录,删除后的记录无法恢复。

    删除样例

    样例一

    删除成为 null 的成绩。

    DELETE FROM Score WHERE Degree is NULL
    

    样例二

    删除王芳芳的操作系统成绩,需要连接 Student 表和 Course 表再进行过滤。

    DELETE Score
    FROM Score SC
    JOIN Student S ON S.Sno = SC.Sno
    JOIN Course C ON SC.Cno = C.Cno
    WHERE S.Sname = '王芳芳' AND C.Cname = '系统成绩'
    

    参考资料

    《SqlServer 2014 数据库技术实用教程》,胡伏湘、肖玉朝 主编,清华大学出版社

  • 相关阅读:
    如何从你的缓存分析全世界
    Java Collection Framework概述
    用Reveal分析第三方App的UI
    三种经典iPhone上网络抓包方法详解
    HTTPS时代全面到来,你准备好了吗?
    从“埋点技术已死?”开始说起
    访客至上的Web、移动可用性设计--指导原则
    动画原理——图形填充
    动画原理——曲线
    动画原理——绘画API
  • 原文地址:https://www.cnblogs.com/linfangnan/p/14789930.html
Copyright © 2011-2022 走看看