数据库的更新实验

举报
rivers 发表于 2021/12/22 22:57:26 2021/12/22
【摘要】 文章目录 实验6 数据库的更新实验实验目的相关知识实验内容实验步骤收获体会 实验6 数据库的更新实验 实验目的 本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企...

实验6 数据库的更新实验

实验目的

本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。

相关知识

  • SQL Server提供了很多方法更新表中数据。

    以插入记录为例,可以使用INSERT语句、VALUES子句将特定值集合插入一行;本实验主要掌握INSERT、UPDATE和DELETE语句的基本用法。
    
        
       
    • 1
  • 插入操作,其语句的一般格式为

    INSERT INTO 表名 values ()
    
        
       
    • 1
  • 修改操作语句的一般格式为

    UPDATE 表名 set 列名 表达式
    
        
       
    • 1
  • 删除语句的一般格式为

    DELETE  FROM <表名> [WHERE <条件>];
    
        
       
    • 1

其功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示要删除表中的所有元组,但表的定义仍在字典中。

实验内容

  • 本实验的主要内容是:
    • 通过企业管理器,在学生选课数据库的学生、课程和选课3个表中各输入10条记录。要求记录不仅满足数据约束要求,还要有表间关联的记录。
    • 具体完成以下例题。将它们转换为SQL语句表示,在学生选课库中实现其数据更新操作。

实验步骤

  • 1.将一新学生记录(学号:95050;姓名:陈冬;性别:男;年龄:18;所在系:计算机科学系)插入学生表中。

    insert into S values('95050','陈冬','男','18','计算机科学系')
    
        
       
    • 1
  • 2.插入一条选课记录(‘95020’,’C1’)。

    insert into SC values('95020','1',null)
    insert into S values('95020','错误','女','23','CS')
    
        
       
    • 1
    • 2
  • 3.对每一个系,求学生的平均年龄,并把结果存入数据库。

    第一步:建个表
    create table Dept_age(Sdept CHAR(15),Avg_age SMALLINT);
    
    第二步:使用子查询,先将学生按系分组求得平均年龄,然后再将其插入
    INSERT INTO  Dept_age(Sdept,Avg_age)
     SELECT  Sdept,AVG(Sage)
     FROM     S
     GROUP BY Sdept;
     
      对于这道题,首先要在数据库中建立一个有两个属性列的新表,其中一列存放系名,另一列存放相应系的学生平均年龄。
      CREATE TABLE Deptage(所在系 CHAR(20),平均年龄SMALLINT);
      然后对数据库的学生表按所在系分组求平均年龄,再把所在系和平均年龄存入新表中。
    
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 4.将学生95001的年龄改为22岁。

    insert into S VALUES('95001','嘿嘿','男',null,null) #先添加一个95001
    update S set sage='22' where sno='95001'
    
        
       
    • 1
    • 2
  • 5 .将所有学生的年龄增加一岁。

    update S set sage=sage+1
    
        
       
    • 1
  • 6.将计算机科学系全体学生的成绩置零。

    update SC set grage=0 
    where sno in
    (select sno from S where sdept='CS')
    
        
       
    • 1
    • 2
    • 3
  • 7.删除学号为95006的学生记录

    insert into S values('95006',null,null,null,null)
    delete from S where sno='95006';
    
        
       
    • 1
    • 2
  • 8.删除所有的学生选课记录

    delete from SC
    
        
       
    • 1
  • 9.删除计算机科学系所有学生的选课记录

    delete from SC where sno in 
    (select sno from S where sdept='CS')
    
        
       
    • 1
    • 2

将查询需求用SQL语言表示;在SQL Server查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。

收获体会

本次实验不难,需要注意字表与主表的关系,这里需要注意SC类容和S的内容,通过本次实验,对更新语句更加熟练

文章来源: rivers.blog.csdn.net,作者:宝山的博客,版权归原作者所有,如需转载,请联系作者。

原文链接:rivers.blog.csdn.net/article/details/116173900

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。