《SQL高级应用和数据仓库基础(MySQL版)》作业 ·005
问题列表
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相关推荐
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·001【数据库基本概念、MySQL安装与介绍】
文章目录 一.数据库基本概念 1.DB与DBMS 2.数据库系统的构成 3.数据管理发展过程 4.数据库 5.关系型数据库 二.MySQL安装与卸载 三.与MySQL相关的常用命令 四.MySQL相关 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·007【简单查询】
文章目录 一.select语句 1.作用 2.语法 3.空值处理 4.反引号.单引号.双引号 5.列和表的别名 6.distinct去重 7.查询表结构 8.条件查询 (1).限定条件 (2).常用比 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·007
问题描述 1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪.2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得 (不考虑奖金部分,年薪的试用期6个月的月薪+转 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·006
文章目录 问题列表 参考解答 前提补充 注意点整理 分解代码 整体代码 问题列表 1.使用如下语句,建立以下表 create table copy_emp (empno int(4),ename va ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·006【事务】
文章目录 一.事务 1.事务介绍 2.事务组成 3.事务结束 4.MySQL事务处理 5.保存点与回档 6.事务隔离级别 7.脏读.不可重复读.幻读 一.事务 1.事务介绍 事务,也称工作单元,是由一 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·005【表的CRUD操作(DML语句)】
文章目录 一.表的CRUD操作(DML语句) 1.insert语句 2.update语句 3.delete语句 二.其他注意点 1.MySQL查询区分大小写的方式 2.truncate语句与delet ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·011【视图和索引】
文章目录 一.视图 1.介绍 2.作用 3.使用示例 4.视图上的DML操作 二.索引 1.介绍 2.作用 3.分类 4.创建 4.删除 5.验证 一.视图 1.介绍 视图是指计算机数据库中的视图,是 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·010【高级查询】
文章目录 一.分组函数(聚合函数) 1.介绍 2.格式 3.常用函数 (1).MIN函数.MAX函数 (2).SUM函数.AVG函数 (3).COUNT函数 4.group by子句 5.having ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·008【常用函数】
文章目录 一.常用函数 1.建议 2.MySQL函数概述 3.常用函数分类 一.常用函数 1.建议 使用函数时,建议将MySQL升级为8.0版本 2.MySQL函数概述 单行函数 语法 函数名(参数列 ...
最新文章
- LeetCode简单题之构造矩形
- Android 中几个常用的分析工具的下载地址
- nagios 3.2安装详解(一)
- DHCP服务器的配置详细说明
- Python open读写文件实现脚本
- IDEA中cannot resolve method getBean in applicationContext的解决方法
- 化工热力学:第三章 纯流体的热力学性质
- Apache Camel Test Framework(MOCK)
- python中主函数循环,带有菜单函数的Python主函数循环不起作用?
- java安全(六)java反序列化2,ysoserial调试
- 漫画:IT公司年终总结会开崩了...
- Servlet简单实现请求分发(类thinkphp5)
- sysbench数据库性能压测详解
- 【Java从0到架构师】MySQL 基础
- 用Postwoman搭建团队使用的API调试工具
- 大数据全球战略布局全面升级
- 错误代码:1120 当前Hsql数据库已被另一线程锁定
- CalendarDemo Calendar 类的创建及用法
- SQL中NOW() 函数
- 斯皮尔曼等级相关系数 matlab,斯皮尔曼等级相关(matlab专题)
热门文章
- 计算机病毒解析与防范结束语,2016年04月30日计算机病毒解析与防范题纲_向必青.doc...
- java小项目图书管理系统_Java小项目迷你图书管理系统
- python杨辉三角_python中的部分高级特性
- java 统计字符串中每个字符出现的次数(数组或HashMap实现)
- Feature Scaling(特征缩放)的一些方法和使用选择
- 《Android测试的学习笔记》——Introduction
- Jupyter Lab——如何添加没有出现的kernel
- CUDA 10[Linux]最新 百度云下载[免费]
- vijos:旅行家的预算[贪心]
- gpu版本的torch安装