zoukankan      html  css  js  c++  java
  • SQL Sever实验三 视图与数据更新

    一. 实验目的

    1.掌握创建视图的 SQL 语句,数据更新的 SQL 语句。

    2.了解使用创建视图向导创建视图的方法。

    3.掌握使用 SQL 创建视图的方法,使用 SQL 更新数据的方法。

    二. 实验准备

    1.了解创建视图与数据更新的方法。

    2.掌握创建视图与数据更新的 SQL 语句的语法格式。

    3.了解删除视图与数据更新的 SQL 语句的用法。

    三. 实验要求

    1. 用不同的方法创建视图,练习数据更新。

    2. 提交实验报告,并验收实验结果。

    四. 实验内容 

    1)定义计算机系学生基本情况视图 V_Computer; 
    USE stsc
    GO
    CREATE VIEW V_Computer
    AS
    SELECT * 
    FROM Student
    
    2)将 student, course 表和 score 表中学生的学号,姓名,课程号,课程名,成绩定义为视图 V_S_C_G;
    USE stsc
    GO
    CREATE VIEW V_S_C_G
    AS
    SELECT Student.stno, Student.stname, Course.cname ,Score.grade
    FROM Student,Score,Course
    
    3)将各系学生人数,平均年龄定义为视图 V_NUM_AVG; 
    USE stsc
    GO
    CREATE VIEW V_NUM_AVG("系名","平均人数", "平均年龄")
    AS
    SELECT speciality, COUNT(*), AVG(year(getdate())-year(stbrithday))
    FROM Student
    GROUP BY speciality
    
    4)定义一个反映学生出生年份的视图 V_YEAR; 
    USE stsc
    GO
    CREATE VIEW V_Year("出生日期")
    AS
    SELECT stbrithday
    FROM Student
    
    5)将各位学生选修课程的门数及平均成绩定义为视图 V_AVG_S_G; 
    USE stsc
    GO
    CREATE VIEW V_AVG_S_G("学号", "选修门数", "平均成绩")
    AS
    SELECT Student.stno, COUNT(*), AVG(Score.grade)
    FROM Student, Score
    WHERE Score.stno = Student.stno
    GROUP BY Student.stno
    
    
    6)将各门课程的选修人数及平均成绩定义为视图 V_AVG_C_G。 
    USE stsc
    GO
    CREATE VIEW V_AVG_C_G("课程号", "平均成绩")
    AS
    SELECT Course.cno, AVG(Score.grade)
    FROM Course, Score
    WHERE Score.cno = Course.cno
    GROUP BY Course.cno
    
    2.查询视图 
    1)通过查询 V_AVG_S_G 视图得到平均成绩为 90 分以上的学生的学号和成绩;
    
    USE stsc
    SELECT *
    FROM V_AVG_S_G
    WHERE "平均成绩" >= 90
    
    2)通过查询 V_NUM_AVG 视图得到人数超过 10 人,且平均年龄在 18 岁以上的院系;
    USE stsc
    SELECT *
    FROM V_NUM_AVG
    WHERE "平均年龄" >= 18 AND "平均人数" >= 10
    
    3.删除视图 
    使用 SQL 语句删除视图 V_YEAR。 
    USE stsc
    DROP VIEW V_Year
    
    
    4.数据更新 
    
    (1)将一个新学生记录(学号:XX(根据自己定义的学号修改);姓名:陈冬;性别: 男;所在系:XX(根据自己定义的系名修改);年龄:18)插入 student 表中; 
    USE stsc
    INSERT INTO Student values
    ('122009', '陈冬', '男', '1992-11-23', '计算机', 50)
    (2)插入一条选课记录:学号为 200215126 的学生选修了 1 号课程;
    USE stsc
    INSERT INTO Score values
    ('200215126 ', '102', NULL)
     
    
    (3)将学生 XX(根据自己定义的学号修改)所在系改为其他系别(例如:数学系, 具体地,根据自己定义的系名修改); 
    USE stsc
    UPDATE Student SET speciality = '通信'
    WHERE stno = '121002'
    (4)删除学号为 XX 的学生记录; 
    USE stsc
    DELETE FROM Student
    WHERE stno = '121002'
    (5)删除 XX 系(根据自己定义的系名修改)所有学生。
    USE stsc
    DELETE FROM Student
    WHERE Student.speciality = '通信'
  • 相关阅读:
    常用命令
    经典算法
    框架
    计算机网络
    设计模式
    JVM
    数据库
    多线程
    Java中HashMap的底层实现原理
    构建大小顶堆
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10434025.html
Copyright © 2011-2022 走看看