码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL增删改查语句练习(grade表,student表,subjects表,result表)


    目录

    问题描述

    问题分析

    1. 添加操作

    2. 修改操作

    3. 删除操作

    问题实现

    1. 添加测试数据

    2. 根据题目要求完成crud操作

    1. 将地址是西安市的更新为西安科技二路

    2. 将S1001的email修改为空的字符串

    3. 将第二门课的名字更新为 java基础,课时为60 ,班级编号是2

    4. 将S1001,课程编号为 2 的成绩提高5分

    5. 将 S1004,课程编号为3 的成绩更新为60,考试时间更新为 2015-10-10

    6. 经核实 S1004 课程编号为2 的缺考

    7. 将计算机网络课程删除掉


    问题描述

    根据上一篇MySQL的建表练习中的练习三,所建的四张表(grade表,student表,subjects表,result表),我们添加测试数据完成已下操作:

    1. 将地址是西安市的更新为西安科技二路

    2. 将S1001的email修改为空的字符串

    3. 将第二门课的名字更新为 java基础,课时为60 ,班级编号是2

    4. 将S1001,课程编号为 2 的成绩提高5分

    5. 将 S1004,课程编号为3 的成绩更新为60,考试时间更新为 2015-10-10

    6. 经核实 S1004 课程编号为2 的缺考

    7. 将计算机网络课程删除掉

    上一篇文章链接:

    MySQL数据库基础:数据库基础知识,MySQL数据库及配置安装_不会敲代码的HZ的博客-CSDN博客icon-default.png?t=M85Bhttps://blog.csdn.net/weixin_51612062/article/details/127850829?spm=1001.2014.3001.5501


    问题分析

    根据题目我们需要对数据表进行插入、修改、删除操作,那我我们来看看这些操作的语法。

    1. 添加操作

    插入单条数据:

    1. -- 方法1
    2. insert into 表名 values(value1, value2, ..., valuen);
    3. -- 方法2
    4. insert into 表名(col1, col2, ..., coln) values(value1, value2, ..., valuen);

    注意:若不指定字段名列表,值列表与插入的表中的列一一对 应【个数对应,类型对应】;若指定字段名列表,值列表与列举出的列保持一致。插入的记录不能违反约束。

    插入多条数据:

    insert into 表名 values(valuelist1_val1, valuelist1_val2), (valuelist2_val1, valuelist2_val2);

    2. 修改操作

    update 表名 set 字段名1=value1, 字段名2=value2 [where 条件];

    注意:[]括起来的部分可以指定也可不指定。若不指定,则更新全部;指定则只更新符合条件的数据。

    3. 删除操作

    DELETE FROM 表名 [WHERE 条件];

    注意:删除同上,若不指定则删除所有行记录;指定则只删除指定行数据。


    问题实现

    1. 添加测试数据

    1. use myschool;
    2. -- 添加测试数据
    3. -- 1.grade表
    4. select * from grade; -- 查看表中数据
    5. desc grade; -- 查看表结构
    6. insert into grade values(2, '二年级'), (3, '三年级');
    7. -- 2.student表
    8. select * from student;
    9. desc student;
    10. insert into student values('s1002', '123456', '张三', '男', 1, '18791112222', '西安市', '2000-01-02', 'zs@163.com'),
    11. ('s1003', '123456', '李四', '女', 2, '13511112222', '西安市', '2000-01-02', 'ls@163.com'),
    12. ('s1004', '123456', '王麻子', '男', 2, '18912342222', '西安市', '2000-01-02', 'wmz@163.com');
    13. select * from subjects;
    14. desc subjects;
    15. insert into subjects values(2, 'JavaWeb后端开发', 50, 1);
    16. insert into subjects values(3, '计算机网络', 50, 2);
    17. select * from result;
    18. desc result;
    19. insert into result values(2, 's1002', 1, 65, '2022-10-20'),
    20. (3, 's1001', 2, 90, '2022-10-21'),
    21. (4, 's1002', 2, 80, '2022-10-21'),
    22. (5, 's1003', 3, 92, '2022-10-22'),
    23. (6, 's1004', 3, 0, '2022-10-22');

    各个表测试数据如下

    grade表:

    student表:

    subjects表:

    result表:

    2. 根据题目要求完成crud操作

    1. 将地址是西安市的更新为西安科技二路

    update student set Address='西安科技二路' where Address='西安市';

    2. 将S1001的email修改为空的字符串

    update student set Email='' where StudentNo='s1001';

    3. 将第二门课的名字更新为 java基础,课时为60 ,班级编号是2

    update subjects set SubjectName='java基础', ClassHour=60, GradeId=2 where SubjectId=2;

    4. 将S1001,课程编号为 2 的成绩提高5分

    update result set StudentResult=StudentResult+5 where StudentNo='s1001' and SubjectId=2;

    5. 将 S1004,课程编号为3 的成绩更新为60,考试时间更新为 2015-10-10

    update result set StudentResult=60, ExamDate='2015-10-10' where StudentNo='s1004' and SubjectId=3;

    6. 经核实 S1004 课程编号为2 的缺考

    这里测试数据我们少考虑了这一条,我们先插入一条数据。

    1. insert into result values(7, 's1004', 2, 0, '2022-10-20');
    2. update result set StudentResult=null where StudentNo='s1004' and SubjectId=2;

    7. 将计算机网络课程删除掉

    这里因为要删除的数据是一个父表 Subjects 的一行记录,其还有子表 Result。直接删除会报如下错误:Cannot delete or update a parent row

    所以应该先删除子表中关于计算机网络课程的记录,才能删除父表中记录。

    1. delete from result where SubjectId=(SELECT SubjectId FROM subjects WHERE SubjectName='计算机网络');
    2. delete from subjects where SubjectName='计算机网络';

  • 相关阅读:
    LSTM 词语模型上的动态量化
    Zero-shot RIS SOTA:Text Augmented Spatial-aware Zero-shot Referring Image Segmentation 论文阅读笔记
    qtchooser 配置和使用多个Qt版本
    uni-app —— 小程序加入购物车实现过程
    Java最基础模糊知识点快过
    ubuntu20.04如何安装搜狗输入法
    C语言操作符详解(1)
    跨境商城源码部署(多商户入驻,一键铺货,快速部署)
    【故障公告】今年第五次:数据库服务器 CPU 100%
    java计算机毕业设计基于ssm的少儿编程管理系统(源代码+数据库+Lw文档)
  • 原文地址:https://blog.csdn.net/weixin_51612062/article/details/127866912
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号