SQL 基础(八)数据更新操作实战演练

简介: SQL 基础(八)数据更新操作实战演练

实验内容

根据数据库 db_student 中的 tb_student 表、tb_scoretb_course,完成下列更新语句

表结构

  • tb_student(sno,sn,dept,sex,birthday,polity)
  • tb_score(sno,cno,score)
  • tb_cource(cno,cn,ct,th)

任务题解

任务一

向学生表中插入一条记录,学号为 00000000,姓名为 XXX,性别为 X 的记录。

INSERT INTO tb_student(sno,sn,sex)
VALUES('00000000','XXX','X')

任务二

向学生有中插入一条记录,各字段值依次为:00000000,name,sex,department,XXXX-XX-XX,polity。

INSERT INTO tb_student(sno,sn,sex,dept,birthday,polity)
VALUES('00000000','name','sex','department','XXXX-XX-XX','polity')

任务三

在课程表中添加一门新课程,其信息为:(‘C8’,‘计算机新技术’,‘XXX’)。

ALTER TABLE tb_course
ADD na varchar(10) null
INSERT INTO tb_course(cno,cn,na) 
VALUES('c8','计算机新技术','XXX')

任务四

在选修关系表 SC 中添加所有学生对’C8’课程的选修关系记录,成绩暂定为 60,请用一条命令完成本批量添加任务。

INSERT INTO tb_score(sno,cno,score) 
SELECT sno,'c8',60 -- cno/score 定值
from tb_student

任务五

将女生的所有数据形成一张新表,表名为 student_girl。

select * 
INTO student_girl 
FROM tb_student WHERE sex='女'

任务六

将学生表中姓名为 XX 同学,性别改为女,出生日期为 1998-1-1。

UPDATE tb_student
SET sex='女',birthday='1998-1-1'
WHERE sn='XX'

任务七

将 tb_score 表中的 c04 的课程折合为 60%并加上 40 分。

UPDATE tb_score
SET score=score*0.6+40
WHERE cno='c04'

任务八

将选修数据结构课程的学生成绩增加 15 分。

UPDATE tb_score
SET score=score+15
WHERE cno=(SELECT cno 
       FROM tb_course 
       WHERE cn='数据结构')

任务九

把选“计算机新技术”课程的男学生的成绩暂全部初始化重新设置为 0。

UPDATE tb_score
SET score=0
WHERE sno IN (SELECT sno
        FROM tb_student
        WHERE sex='男')
AND cno=(SELECT cno -- 两个并列关系子查询
     FROM tb_course
     WHERE cn='计算机新技术')

任务十

删除学生表中所有姓张的同学。

DELETE FROM tb_student
WHERE LEFT JOIN(sn,1)='张' -- 或 WHERE sn LIKE '张%'

任务十一

删除 student 表中不及格同学的所有信息。

DELETE FROM tb_student
WHERE sno=(SELECT DISTINCT sno
       FROM tb_score
       WHERE score<60)

任务十二

XXX 同学的学生信息及其选课情况等全部删除。

-- 删除顺序颠倒会导致成绩表中无法找到XXX学生学号
-- 1.删除成绩表XXX成绩信息
DELETE FROM tb_score
WHERE sno=(SELECT sno
           FROM tb_student
       WHERE sn='XXX')
-- 2.删除XXX学生信息           
DELETE FROM tb_student
WHERE sn='XXX'

任务十三

删除学生表中所有学生信息(两种方法)。

-- method1
DELETE FROM tb_student
-- method2
TRUNCATE TABLE tb_student

在修改表信息书写 SQL 语句时,遵循 SETUPDATEWHERE 的书写顺序

即首先设置值,然后选定作用范围,最后增加限制条件。这样思路会更加清晰


相关文章
|
1月前
|
SQL 关系型数据库 MySQL
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
|
1月前
|
SQL 数据处理 数据库
SQL语句优化与查询结果优化:提升数据库性能的实战技巧
在数据库管理和应用中,SQL语句的编写和查询结果的优化是提升数据库性能的关键环节
|
1月前
|
SQL 监控 关系型数据库
SQL语句性能分析:实战技巧与详细方法
在数据库管理中,分析SQL语句的性能是优化数据库查询、提升系统响应速度的重要步骤
|
1月前
|
SQL 关系型数据库 Serverless
sql注入原理与实战(四)数据表操作
sql注入原理与实战(四)数据表操作
|
1月前
|
SQL 存储 Java
sql注入原理与实战(二)数据库原理
sql注入原理与实战(二)数据库原理
|
1月前
|
SQL 前端开发 安全
sql注入原理与实战(一)
sql注入原理与实战(一)
|
2月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
115 0
|
3月前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
74 0
|
3月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
55 0
|
3月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
58 0