码农知识堂 - 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='计算机网络';

  • 相关阅读:
    2023福建师范大学计算机考研信息汇总
    Log4j的原理及应用详解(五)
    BUUCTF Misc 假如给我三天光明 & 数据包中的线索 & 后门查杀 & webshell后门
    智慧交通:地铁站 3D 可视化,车路协同赋能科学出行
    10月7日星期六今日早报简报微语报早读
    机器学习 笔记03——逻辑回归 + 分类问题评估指标:精确率、召回率、F1-score、AUC指标
    C++>> 继承
    java计算机毕业设计网上书店进销存管理系统源程序+mysql+系统+lw文档+远程调试
    使用Maxent模型预测适生区
    生产环境 SSH 安全有效小技巧
  • 原文地址:https://blog.csdn.net/weixin_51612062/article/details/127866912
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号