问题列表

1.使用如下语句,创建学生表student和班级表class
create table student( -- 学生表xh char(4),         -- 学号xm varchar(10),     -- 姓名sex char(2),        -- 性别birthday date,      -- 出生日期sal double(7,2),    -- 奖学金studentcid int(2),  -- 学生班级号
);create table class( -- 班级表classid int(2),   -- 班级编号cname varchar(20),-- 班级名称ccount int(3)     -- 班级人数);
2.基于上述学生表和班级表,完成如下问题
(1)添加三个班级信息为:1, JAVA1班, null2, JAVA2班, null3, JAVA3班, null
(2)添加学生信息如下:'A001', '张三', '男', '01-05-05', 100, 1
(3)添加学生信息如下:'A002', 'MIKE', '男', '1905-05-06', 10, 2
(4)插入部分学生信息:'A003', 'JOHN', '女'
(5)将A001学生性别修改为'女'
(6)将A001学生信息修改如下:性别为男,生日设置为1980-04-01
(7)将生日为空的学生班级修改为Java3班
(8)请使用一条SQL语句,使用子查询,更新班级表中每个班级的人数 字段

参考题解

/*
* 注:建议在创建表之前,确认当前数据库的字符集是utf8,否则后面插入中文可能会失败。
**/-- 1.添加三个班级
insert into class
values(1, 'JAVA1班', null),(2, 'JAVA2班', null),(3, 'JAVA3班', null);-- 2.添加一个学生信息
insert into student
values('A001', '张三', '男', '01-05-05', 100, 1);-- 3.添加一个学生信息
insert into student
values('A002', 'MIKE', '男', '1905-05-06', 10, 2);-- 4.插入一个学生部分信息
insert into student(xh, xm, sex)
values('A003', 'JOHN', '女');-- 5.修改一个学生性别
update student
set sex='女'
where xh='A001';-- 6.修改一个学生部分信息
update student
set sex='男', birthday='1980-04-01'
where xh='A001';-- 7.修改所有满足条件的学生的班级
update student
set studentcid=(select classid from class where cname='JAVA3班')
where birthday is null;-- 8.子查询更新班级人数
delimiter $$ create procedure getStuNum()begindeclare cid_i int(2);declare done int default false;declare cur cursor for select classid from class;declare continue handler for not found set done=true;open cur;fetch cur into cid_i;while(not done) doupdate classset ccount=(select count(*) from student where studentcid=cid_i)where classid=cid_i;fetch cur into cid_i;end while;close cur;end$$
delimiter ;call getStuNum();
修改标注:1、将原题文本部分的建表语句进行了优化2、将原题的2中的(2)的日期从'01-5月05'改为了'01-05-05'3、将原题中2中的(3)的学生信息加上了其班级编号为2(因为原题有区分添加学生信息和插入部分学生信息,就算真的是部分信息也不难实现插入)

注:

第8题的常规写法如下:

update class
set ccount=(select count(*) from student where student.studentcid=class.classid);

《SQL高级应用和数据仓库基础(MySQL版)》作业 ·005相关推荐

  1. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·001【数据库基本概念、MySQL安装与介绍】

    文章目录 一.数据库基本概念 1.DB与DBMS 2.数据库系统的构成 3.数据管理发展过程 4.数据库 5.关系型数据库 二.MySQL安装与卸载 三.与MySQL相关的常用命令 四.MySQL相关 ...

  2. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·007【简单查询】

    文章目录 一.select语句 1.作用 2.语法 3.空值处理 4.反引号.单引号.双引号 5.列和表的别名 6.distinct去重 7.查询表结构 8.条件查询 (1).限定条件 (2).常用比 ...

  3. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·007

    问题描述 1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪.2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得 (不考虑奖金部分,年薪的试用期6个月的月薪+转 ...

  4. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·006

    文章目录 问题列表 参考解答 前提补充 注意点整理 分解代码 整体代码 问题列表 1.使用如下语句,建立以下表 create table copy_emp (empno int(4),ename va ...

  5. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·006【事务】

    文章目录 一.事务 1.事务介绍 2.事务组成 3.事务结束 4.MySQL事务处理 5.保存点与回档 6.事务隔离级别 7.脏读.不可重复读.幻读 一.事务 1.事务介绍 事务,也称工作单元,是由一 ...

  6. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·005【表的CRUD操作(DML语句)】

    文章目录 一.表的CRUD操作(DML语句) 1.insert语句 2.update语句 3.delete语句 二.其他注意点 1.MySQL查询区分大小写的方式 2.truncate语句与delet ...

  7. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·011【视图和索引】

    文章目录 一.视图 1.介绍 2.作用 3.使用示例 4.视图上的DML操作 二.索引 1.介绍 2.作用 3.分类 4.创建 4.删除 5.验证 一.视图 1.介绍 视图是指计算机数据库中的视图,是 ...

  8. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·010【高级查询】

    文章目录 一.分组函数(聚合函数) 1.介绍 2.格式 3.常用函数 (1).MIN函数.MAX函数 (2).SUM函数.AVG函数 (3).COUNT函数 4.group by子句 5.having ...

  9. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·008【常用函数】

    文章目录 一.常用函数 1.建议 2.MySQL函数概述 3.常用函数分类 一.常用函数 1.建议 使用函数时,建议将MySQL升级为8.0版本 2.MySQL函数概述 单行函数 语法 函数名(参数列 ...

最新文章

  1. LeetCode简单题之构造矩形
  2. Android 中几个常用的分析工具的下载地址
  3. nagios 3.2安装详解(一)
  4. DHCP服务器的配置详细说明
  5. Python open读写文件实现脚本
  6. IDEA中cannot resolve method getBean in applicationContext的解决方法
  7. 化工热力学:第三章 纯流体的热力学性质
  8. Apache Camel Test Framework(MOCK)
  9. python中主函数循环,带有菜单函数的Python主函数循环不起作用?
  10. java安全(六)java反序列化2,ysoserial调试
  11. 漫画:IT公司年终总结会开崩了...
  12. Servlet简单实现请求分发(类thinkphp5)
  13. sysbench数据库性能压测详解
  14. 【Java从0到架构师】MySQL 基础
  15. 用Postwoman搭建团队使用的API调试工具
  16. 大数据全球战略布局全面升级
  17. 错误代码:1120 当前Hsql数据库已被另一线程锁定
  18. CalendarDemo Calendar 类的创建及用法
  19. SQL中NOW() 函数
  20. 斯皮尔曼等级相关系数 matlab,斯皮尔曼等级相关(matlab专题)

热门文章

  1. 计算机病毒解析与防范结束语,2016年04月30日计算机病毒解析与防范题纲_向必青.doc...
  2. java小项目图书管理系统_Java小项目迷你图书管理系统
  3. python杨辉三角_python中的部分高级特性
  4. java 统计字符串中每个字符出现的次数(数组或HashMap实现)
  5. Feature Scaling(特征缩放)的一些方法和使用选择
  6. 《Android测试的学习笔记》——Introduction
  7. Jupyter Lab——如何添加没有出现的kernel
  8. CUDA 10[Linux]最新 百度云下载[免费]
  9. vijos:旅行家的预算[贪心]
  10. gpu版本的torch安装