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

  • 相关阅读:
    Spring注解驱动之自定义组件中如何注入Spring底层的组件
    线性回归模型(OLS)3
    自制肥鲨HDO2电源延长线,支持3S~6S动力电池
    C++中的fsanitize指令
    8年思科C语言程序员转web独立开发者年收入超10万美元
    UVM sequence 3种启动方式
    电子电气架构设计之三电系统设计
    HTTPSConnectionPool
    Rust嵌入式编程---panic处理和异常处理
    MySQL—多表查询(概述、基本实操、分类)
  • 原文地址:https://blog.csdn.net/weixin_51612062/article/details/127866912
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号