头歌数据库SQL练习——数据增删改

第一关

本关任务:

  • 用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中,字符串用""括起来。

USE test_wyy_db_guet
GO

SET NOCOUNT ON


-- ********** Begin ********** --
-- ********** 此处写第一题的SQL语句 ********** --
insert into student(Sno,Sname,Ssex,Sage,Sdept)
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 student
where Sno="04003";
-- ********** End ********** --
GO


--此处请不要随意修改
select * from student

GO

第二关

  • 使用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)

USE test_wyy_db_guet
Go

SET NOCOUNT ON


-- ********** Begin ********** --
---------- 第一题----------
update Student 
set Sage=Sage+1;

-- ********** End ********** --
GO


-- ********** Begin ********** --
---------- 第二题----------
update Student
set Sdept="TS"
where Sdept="IS";
-- ********** End ********** --
GO

-- ********** Begin ********** --
---------- 第三题----------
update Student
set Sno='08'+RIGHT(Sno,3)
where Sdept="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开头的本科生导师元组

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

  • 34
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值