当前位置: 首页 > wzjs >正文

党建网站怎么做网站建设公司seo关键词

党建网站怎么做,网站建设公司seo关键词,顺义建设工程交易中心网站,网站建设的功能需求分析数据库数据删除与修改实验 在数据库原理的学习中,数据的删除与修改是核心操作技能。通过“删除修改数据”实验,我系统实践了 SQL 中 UPDATE 和 DELETE 语句的多种应用场景,从基础语法到复杂业务逻辑处理,积累了丰富的实战经验。本…

数据库数据删除与修改实验

在数据库原理的学习中,数据的删除与修改是核心操作技能。通过“删除修改数据”实验,我系统实践了 SQL 中 UPDATEDELETE 语句的多种应用场景,从基础语法到复杂业务逻辑处理,积累了丰富的实战经验。本文将详细复盘实验内容,总结关键操作要点与典型问题。

一、实验准备:环境与数据初始化

1. 软硬件环境

  • 硬件:PC 单机
  • 软件:Windows 11 + SQL Server 2022
  • 核心表
    • STUDENT057(学生表)、SCORE057(成绩表)、Course057(课程表) 、TEACHER057(教师表)

2. 数据生成

-- 创建学生实验表(复制原始数据)
SELECT * INTO STUDENTA057 FROM STUDENT057;-- 创建成绩实验表(先过滤无效数据,再插入全量数据)
SELECT * INTO SCOREA057 FROM SCORE057 WHERE DEGREE < 0; -- 初始空表(假设无负数成绩)
INSERT INTO SCOREA057 SELECT * FROM SCORE057; -- 插入全部成绩数据

在这里插入图片描述

二、验证性实验:基础操作与语法验证

1. 数据修改(UPDATE)

(1)单表条件修改
  • 场景1:批量调整出生日期

    -- 所有人出生日期月份减1
    UPDATE STUDENTA057 
    SET Sbirthday = DATEADD(MONTH, -1, Sbirthday);
    

    在这里插入图片描述

    -- 特定学生:陈文文年份加1,班级修改
    UPDATE STUDENTA057 
    SET Sbirthday = DATEADD(YEAR, 1, Sbirthday), Class = '95033' 
    WHERE Sname = '陈文文';
    

    在这里插入图片描述

  • 场景2:分组差异化修改(CASE-WHEN)

    -- 95033班男生日期减1天,女生加1天
    UPDATE STUDENTA057 
    SET Sbirthday = CASE Ssex WHEN '男' THEN DATEADD(DAY, -1, Sbirthday)WHEN '女' THEN DATEADD(DAY, 1, Sbirthday)END 
    WHERE Class = '95033';
    

在这里插入图片描述

(2)多表关联修改
  • 场景3:通过学生表修改成绩表数据

    -- 李君帅所有成绩减10(JOIN关联学生与成绩表)
    UPDATE SC 
    SET Degree = Degree - 10 
    FROM STUDENTA057 S 
    JOIN SCOREA057 SC ON S.Sno = SC.Sno 
    WHERE S.Sname = '李君帅';
    

    在这里插入图片描述

    -- 李君帅的“计算机导论”成绩加10(三表JOIN)
    UPDATE SC 
    SET Degree = Degree + 10 
    FROM STUDENTA057 S 
    JOIN SCOREA057 SC ON S.Sno = SC.Sno 
    JOIN Course C ON SC.CNO = C.CNO 
    WHERE S.Sname = '李君帅' AND C.Cname = '计算机导论';
    

    在这里插入图片描述

2. 数据删除(DELETE)实战

(1)精准条件删除
  • 场景1:单条件/多条件过滤
    -- 删除学号109、课程3-245的成绩
    DELETE FROM SCOREA057 
    WHERE SNO = '109' AND CNO = '3-245';
    

在这里插入图片描述

-- 子查询定位:曾华庆的“数字电路”成绩
DELETE FROM SCOREA057 
WHERE SNO = (SELECT Sno FROM STUDENTA057 WHERE Sname = '曾华庆') AND CNO = (SELECT CNO FROM Course WHERE Cname = '数字电路');

在这里插入图片描述

(2)表清空操作对比
-- 快速清空表(不可回滚,效率高)
TRUNCATE TABLE STUDENTA057;

在这里插入图片描述

-- 逐行删除(支持事务,可带WHERE)
DELETE FROM SCOREA057;

在这里插入图片描述

3. 特殊语法测试

(1)SET ANSI_NULLS:NULL值比较规则
  • ON(默认)= NULL<> 无效,必须用 IS NULL/IS NOT NULL

    SELECT * FROM SCORE057 WHERE DEGREE IS NOT NULL; -- 有效
    SELECT * FROM SCORE057 WHERE DEGREE = NULL; -- 无结果(ANSI标准)
    
  • OFF:非标准行为,= NULL 可能返回NULL值行(不推荐使用)

区别

  • ON :语句一返回结果集,语句二无结果
  • OFF:语句一和语句二都会返回结果集
(2)SET QUOTED_IDENTIFIER:标识符引号
  • ON:双引号用于标识符(需谨慎),推荐用 [](如 [CNO]
  • OFF:双引号可作字符串,但兼容性差,统一用 [] 更安全
(3)TOP WITH TIES:返回并列数据
-- 前3条记录(无排序时随机)
SELECT TOP 3 * FROM SCORE057;

在这里插入图片描述

-- 前3条及并列(需ORDER BY)
SELECT TOP 3 WITH TIES * FROM SCORE057 ORDER BY Degree DESC;

在这里插入图片描述
无order by时会出现以下报错:
在这里插入图片描述

(4)ANY/SOME/ALL:集合比较
  • ANY/SOME:满足任意一个条件(如 Degree < ANY(...) 表示小于子查询中的某个值)
  • ALL:满足所有条件(如 Degree >= ALL(...) 筛选最大值行)

三、设计性实验:复杂业务逻辑实现

1. 高阶数据修改(单语句完成)

(1)复合条件与边界控制
  • 场景1:姓名与日期同时修改

    -- 陈文文改名为陈文,出生日期年月日各加1
    UPDATE STUDENTA057 
    SET Sname = '陈文', Sbirthday = DATEADD(DAY, 1, DATEADD(MONTH, 1, DATEADD(YEAR, 1, Sbirthday)))
    WHERE Sname = '陈文文';
    

    修改前
    在这里插入图片描述

    修改后
    在这里插入图片描述

  • 场景2:成绩上限控制(加10后不超过100)

    UPDATE SCOREA057 
    SET Degree = CASE WHEN Degree + 10 > 100 THEN 100 ELSE Degree + 10 END 
    WHERE SNO = '101';
    

    修改前
    在这里插入图片描述

    修改后
    在这里插入图片描述

(2)多表关联与分组处理
  • 场景3:按性别差异化加分(男生加10%,女生加10)

    UPDATE SC 
    SET Degree = CASE S.Ssex WHEN '男' THEN IIF(SC.Degree * 1.1 > 100, 100, SC.Degree * 1.1)WHEN '女' THEN IIF(SC.Degree + 10 > 100, 100, SC.Degree + 10)END 
    FROM STUDENTA057 S 
    JOIN SCOREA057 SC ON S.Sno = SC.Sno;
    

    修改前
    在这里插入图片描述

    修改后
    在这里插入图片描述

2. 复杂数据删除(多条件关联)

(1)跨表关联删除
  • 场景1:删除女生的“计算机导论”成绩
  DELETE SC FROM SCOREA057 SC JOIN STUDENTA057 S ON SC.Sno = S.Sno JOIN Course057 C ON SC.CNO = C.CNO WHERE S.Ssex = '女' AND C.Cname = '计算机导论';--也可以使用子查询DELETE FROM SCOREA057 WHERE
SNO = ANY(SELECT SNO FROM STUDENTA057 WHERE Ssex='女') AND
CNO = ANY (SELECT CNO FROM Course057 WHERE CNAME='计算机导论')

删除前
在这里插入图片描述

删除后
在这里插入图片描述

(2)动态条件删除(本月过生日的男同学)
-- 当前月过生日的男同学(MONTH函数匹配)
DELETE FROM STUDENTA057 
WHERE Ssex = '男' AND MONTH(Sbirthday) = MONTH(GETDATE());

删除前
在这里插入图片描述

删除后
在这里插入图片描述

四、实践中的典型问题与解决

1. 子查询返回多值错误

  • 问题SNO = (SELECT SNO FROM STUDENTA057 WHERE Ssex='女') 报错(子查询返回多个学号)
  • 解决:改用 SNO = ANY(...)IN(...),匹配集合中的任意值

2. NULL值导致的逻辑失效

  • 场景Degree >= ALL(SELECT degree FROM SCORE057) 无结果(因存在NULL值)
  • 解决:子查询添加 WHERE Degree IS NOT NULL,排除无效NULL值

五、实验总结:

1. 核心技能

  • 数据修改:掌握 UPDATE 的单表/多表操作、CASE-WHEN 条件分支、边界值控制(如成绩≤100)。
  • 数据删除:区分 DELETE(灵活过滤)与 TRUNCATE(快速清空),重视 WHERE 条件的严谨性。
  • 语法细节:理解 ANSI_NULLSQUOTED_IDENTIFIER 对SQL行为的影响,规范使用 IS NULL[] 等标准语法。

2. 实践中的“避坑”经验

  • 先测试后执行:复杂语句先通过子查询验证中间结果(如单独运行 SELECT CNO FROM Course WHERE Cname='计算机导论')。
  • 备份优先:删除/修改前备份数据,避免误操作(如 TRUNCATE 不可回滚,需谨慎)。

3. 对数据库操作的再认识

此次实验让我全面掌握了数据操作的 UPDATEDELETE 语句,学会运用函数(如 DATEADD)修改数据,也明白了 TRUNCATE TABLEDELETE 在清空表数据时的区别及适用场景。同时,对 SET ANSI_NULLSSET QUOTED_IDENTIFIER 等设置有了更深入的理解,知晓其对 NULL 值比较和标识符引号使用的影响。在多表连接与子查询的应用方面,也积累了丰富的实践经验,能够准确关联表并处理复杂查询。

http://www.dtcms.com/wzjs/467048.html

相关文章:

  • 求免费网站能看的2021推广资源网
  • 21天网站建设实录网站搜什么关键词好
  • 做城市分类信息网站好做吗杭州网络排名优化
  • 苏州网站制作哪家好软文网站平台
  • 网站建设流程资料河南郑州最新事件
  • 越秀低价网站建设网站推广优化
  • c 怎么做网站公司seo是指什么意思
  • 北京网站建设需要花多少钱营销失败案例分析
  • 金坛区住房城乡建设局网站环球网
  • 网页设计与网站建设完全教程seo和sem分别是什么
  • 做快递单网站关键词排名怎么做上首页
  • 安徽住房与城乡建设门户网站如何推广一个产品
  • 鹿泉手机网站建设深圳网站建设优化
  • 网站建设1選宙斯站长免费网站怎么申请
  • 中国建设大数据黑帽seo培训
  • 吴江建设局网站打不开了郑州疫情最新动态
  • 以前有个自助建设网站万能软文范例800字
  • 广州 网站建设网络推广网页设计哈尔滨最新消息
  • 绵阳公司商务网站制作广州seo怎么做
  • 网站建设与管理设计页面seo优化
  • 找专业做网站方象科技专注于什么领域
  • 做律师网站的公司一键优化大师
  • hbuilderseo人员培训
  • 近期国内新闻摘抄长沙网站seo优化
  • 宜宾网站优化新人跑业务怎么找客户
  • 新网站建设代理商站长工具怎么关闭
  • 观点网站自媒体135网站
  • 平面设计图效果图湖南长沙seo教育
  • 免费的网站推荐下载深圳网站制作设计
  • 中国住建厅网站官网哪里有学计算机培训班