当前位置: 首页 > news >正文

SQL-CRUD-1

第一关任务描述

本关任务:

  • 用insert给数据库添加数据

相关知识

有关系student(sno,sname,ssex,sage,sdept),属性对应含义:学号,姓名,性别,所在系。现有的部分元组如下所示

insert 向数据库表插入数据的基本格式有三种:R,S是关系名

  • 1.insert into R(属性列表) values (对应属性的值列表)
  • 2.insert into R values(对应关系默认属性的值列表)
  • 3.insert into R(属性列表) select 属性列表 from S R, S 可以是同一关系

编程要求

我们已经为你建好了数据库与数据表,并添加了相应的数据内容。 你只需根据右侧提示,完成以下任务:

  • 1.补全右侧代码片段中 第一题 下 Begin-End 区间的代码,实现功能:MA系新来一名学生,学号07002,姓名 lucy, 性别 F,年龄21,请用insert语句将该学生信息加入student。
  • 2.补全右侧代码片段中 第二题下 Begin-End 区间的代码,实现功能:新来一名学生,学号07003,姓名 Andy ,性别 F, 但尚未知道年龄, 也未确定分配到哪个系, 请插入已知信息到student。 。

  • 3.补全右侧代码片段中 第三题 下 Begin-End 区间的代码,实现功能:有一名学生学号是04005,其余信息与学号04003相同,请将学生信息插入表student。

注意:sql语句不区分大小写,但是元组的数据是区分大小写的。另外在Mysql中,字符串用""括起来。

测试说明

测试过程:

  • 本关涉及到的测试文件是 step1_test.sh ,平台将运行用户补全的 step1.sql 文件,得到数据;

  • 将得到的数据与答案比较,判断代码是否正确。

第一关实验代码

USE test_wyy_db_guet
GOSET NOCOUNT ON-- ********** Begin ********** --
-- ********** 此处写第一题的SQL语句 ********** --
insert into student values('07002','lucy','F',21,'MA');-- ********** End ********** --GO-- ********** Begin ********** --
-- ********** 此处写第二题的SQL语句 ********** --
insert into student(sno,sname,ssex) values('07003','Andy','F');
-- ********** End ********** --GO-- ********** Begin ********** --
-- ********** 此处写第三题的SQL语句 ********** --
insert into student(sno,sname,ssex,sage,sdept)select '04005',sname,ssex,sage,sdept from studentwhere sno='04003';
-- ********** End ********** --
GO--此处请不要随意修改
select * from studentGO

第二关任务描述

  • 使用update 修改关系中元组的值。
  • 基本格式: update R set 属性名A=属性值B where 条件C 将关系R中满足条件C的元组中的属性A的值修改为B

编程要求

  • 1.补全右侧代码片段中 第一题 下 Begin-End 区间的代码,将所有学生的年龄增加1岁;
  • 2.补全右侧代码片段中 第二题 下 Begin-End 区间的代码,IS系改名为TS了,请修改相应学生的信息。
  • 3.补全右侧代码片段中 第三题 下 Begin-End 区间的代码,MA系学生的学号前两位修改为08,其他不变. 学号长度为5,你们可以查阅right或substring函数,并用连接的方式得到新的学号。

使用的表结构: Student(Sno, Sname, Ssex, Sage, Sdept)

测试说明

测试过程:

  • 本关涉及到的测试文件是 step2_test.sh ,平台将运行用户补全的 step2.sql 文件,得到数据;

  • 将得到的数据与答案比较,判断代码是否正确。

第二关实验代码(right or substring)

USE test_wyy_db_guet
GoSET NOCOUNT ON-- ********** Begin ********** --
---------- 第一题----------
update student set sage=sage+1;
-- ********** End ********** --
GO-- ********** Begin ********** --
---------- 第二题----------
update student set sdept='TS' where sdept='IS';
-- ********** End ********** --
GO-- ********** Begin ********** --
---------- 第三题写法right----------
update student 
set sno = '08' + right(sno,len(sno)-len('08'))
where sdept like 'MA%';---------- 第三题写法substring----------
update student 
set sno = '08' + substring(sno,3,5)
where sdept like 'MA%';
-- ********** End ********** --
GO-- **********下面的语句请不要修改 ********** --
select * from student
GO

第三关任务描述

本关任务:使用 delete 删除符合条件的元组

相关知识

  • delete语句格式 delete from R where 条件C

编程要求

我们已经为你建好了数据库与数据表R,S,并添加了相应的数据内容。 R代表本科生导师, S代表研究生导师,属性列一样,如下:

 
  1. id varchar(20) not null,
  2. name varchar(30) not null,
  3. sex varchar(2) not null
  • 1.补全右侧代码片段中 第一题 下 Begin-End 区间的代码,删除id是1002 的本科生导师元组

  • 2.补全右侧代码片段中 第二题 下 Begin-End 区间的代码,删除研究生导师关系中,同时也是本科生导师,且性别为M的元组

  • 3.补全右侧代码片段中 第三题 下 Begin-End 区间的代码,删除姓名是A开头的本科生导师元组

测试说明

测试过程:

  • 本关涉及到的测试文件是 step3_test.sh ,平台将运行用户补全的 step3.sql 文件,得到数据;

  • 将得到的数据与答案比较,判断代码是否正确。

第三关实验代码

USE test_wyy_db_guet
GoSET NOCOUNT ON---------- 第一题 ----------
-- ********** Begin ********** --
delete from R where id='1002';-- ********** End ********** --GO---------- 第二题 ----------
-- ********** Begin ********** --
delete
from 
S
where id in
(select id from R where sex = 'M');-- ********** End ********** --GO---------- 第三题 ----------
-- ********** Begin ********** --
delete
from R
where name like 'A%';-- ********** End ********** --GO--********** 下面的语句请不要删除 ********** --
select id,name,sex from R
union all
select id,name,sex from S
GO

PS:
第三关的第二题查找id是因为其他属性均有可能重复(名字、性别);所以这里使用id而不用姓名。

相关文章:

  • Available platform plugins are: linuxfb, minimal, offscreen, vnc.
  • Centos7.9备份mysql数据库
  • 【YOLOv5改进系列(5)】高效涨点----添加密集小目标检测NWD方法
  • 【Java程序设计】【C00376】基于(JavaWeb)Springboot的社区帮扶对象管理系统(有论文)
  • android各种软件下载
  • 使用API有效率地管理Dynadot域名,使用API进将其他平台的域名转移至dynadot
  • 动态ip白名单频繁更改问题解决方案
  • 代码随想录算法训练营DAY9|C++字符串Part.2|LeetCode:28.实现strStr()、459.重复的子字符串|KMP算法
  • Redis入门到实战-第二十弹
  • QT 二维坐标系显示坐标点及点与点的连线-通过定时器自动添加随机数据点
  • [AIGC] MySQL存储引擎详解
  • 每日一练:LeeCode-350. 两个数组的交集 II【数组+哈希表】
  • 【检索稳定|火爆征稿中】2024年企业管理与数字化经济国际学术会议(ICBMDE 2024)
  • 生产调度问题分类——约束视角
  • 如何通过主数据管理开启数据治理
  • 收藏网友的 源程序下载网
  • 【mysql】环境安装、服务启动、密码设置
  • java2019面试题北京
  • JS函数式编程 数组部分风格 ES6版
  • JWT究竟是什么呢?
  • Leetcode 27 Remove Element
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PHP 的 SAPI 是个什么东西
  • React Native移动开发实战-3-实现页面间的数据传递
  • React-flux杂记
  • scrapy学习之路4(itemloder的使用)
  • storm drpc实例
  • Webpack 4 学习01(基础配置)
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 目录与文件属性:编写ls
  • 前端设计模式
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 物联网链路协议
  • 译有关态射的一切
  • 字符串匹配基础上
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (C语言)字符分类函数
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (学习日记)2024.01.09
  • (一)基于IDEA的JAVA基础1
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Core 中的路径问题
  • .net 获取url的方法
  • .netcore 获取appsettings
  • .net反混淆脱壳工具de4dot的使用
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @RequestBody的使用
  • @RequestParam详解
  • @SuppressLint(NewApi)和@TargetApi()的区别