• 数据更新、视图的创建与改动


    一、实验目的

    1、学会使用INSERTUPDATEDELETESQL语句进行数据更新;

    2、学会使用CREATEDROPSQL语句创建和删除视图。

    二、实验内容

    1、在SQL Server Management Studio中使用INSERTUPDATEDELETE语句进行数据更新。

    2、在SQL Server Management Studio中使用CREATEDROP语句创建和删除视图。

    三、实验步骤

    1利用SQL Server Management Studio在数据库S_C的三个表中分别插入下面数据:学生表S

    sno

    sname

    birthday

    sdeptartment

    tel

    sex

    J0401

    李军

    1985-2-12

    计算机系

    0576-85123464

    J0402

    刘晨

    1986-5-22

    数学系

    0576-85123466

    J0403

    王敏

    1986-4-28

    计算机系

    0576-85123464

    J0404

    张立

    1984-9-8

    计算机系

    0576-85123464

    课程表C:

    cno

    cname

    teacher

    pcno

    C01

    数据库

    GUO

    C03

    C02

    VB

    LIU

    C03

    C03

    计算机基础

    LI

    C04

    数学

    WANG

    C05

    数据结构

    ZHANG

    C03

    C06

    C语言

    CHEN

    C03

    成绩表SC

    sno

    cno

    grade

    J0401

    C05

    92

    J0401

    C06

    85

    J0401

    C02

    88

    J0401

    C01

    90

    J0402

    C04

    80

    J0403

    C02

    76

    J0404

    C03

    88

    2、在查询窗体中:

    1选择数据库S_C,用INSERT语句向学生表S中插入一个新生记录(snoJ0405。sname:陈东;birthday1987-5-3sdeptartment中文系;tel0576-85123466;sex女)

    Sql语句:

    INSERT INTO S 

    VALUES('J0405', '陈东', '1987-5-3', '中文系', '0576-85123466', '')

    2把课程名为VB的成绩从基本表SC中删除

    Sql语句:

    DELETE FROM SC WHERE cno = 

    (SELECT cno FROM C WHERE cname = 'VB')

    3把女生的成绩提高10%

    Sql语句:

    UPDATE SC

    SET SC.grade = SC.grade*1.1 FROM SC, S

    WHERE SC.sno = S.sno AND S.sex = ''

    4假设学号为J0404的学生成绩少于90分。则加上10

    Sql语句:

    UPDATE SC

    SET SC.grade = SC.grade+10

    WHERE SC.sno = 'J0404' AND SC.grade < 90

    5将成绩最低的学生成绩加上10

      UPDATE SC

    SET SC.grade = SC.grade+10

    WHERE SC.grade = (SELECT TOP 1 SC.grade FROM SC ORDER BY SC.grade)

    6将成绩最高前3名的学生成绩减去20

    Sql语句:

    UPDATE SC

    SET SC.grade = SC.grade-20

    WHERE SC.grade IN (SELECT TOP 3 SC.grade FROM SC ORDER BY SC.grade DESC)

    7将成绩最低前10%的学生成绩减去5

    Sql语句:

    UPDATE SC

    SET SC.grade = SC.grade-5

    WHERE SC.grade IN (SELECT TOP 10 PERCENT SC.grade FROM SC ORDER BY SC.grade)

    8把王敏同学的学习选课和成绩所有删去。

    Sql语句:

    DELETE FROM SC

    WHERE SC.sno = (SELECT S.sno FROM S WHERE S.sname = '王敏')

    9从学生表中删除成绩出现过 分的全部学生信息

    Sql语句:

    DELETE FROM S

    WHERE S.sno = (SELECT SC.sno FROM SC WHERE SC.grade = 0)

    3、在查询分析器中用CREATE语句建立视图。

    1建立计算机系学生的视图IS_student

    Sql语句:

    CREATE VIEW IS_student

    AS

    SELECT * FROM S

    WHERE S.sdeptartment = '计算机系'

    WITH CHECK OPTION

    2建立计算机系选修了C02课程的学生的视图IS_C02

    Sql语句:

    CREATE VIEW IS_C02

    AS

    SELECT * FROM S

    WHERE S.sdeptartment = '计算机系' AND S.sno = 

    (SELECT SC.sno FROM SC WHERE SC.cno = 'C02')

    WITH CHECK OPTION

    3建立计算机系选修了C02课程且成绩在90分以上的学生的视图IS_C0290

    Sql语句:

    CREATE VIEW IS_C0290

    AS

    SELECT * FROM S

    WHERE S.sdeptartment = '计算机系' AND S.sno = 

    (SELECT SC.sno FROM SC WHERE SC.cno = 'C02' AND SC.grade >= 90)

    WITH CHECK OPTION

    4、在查询分析器中用DROP语句删除视图IS_student。

    Sql语句:

    DROP VIEW IS_student

    四、实验总结

    新手自学 有错勿喷

  • 相关阅读:
    错题
    URL和URI区别
    适配器
    JAVA 反射机制
    JAVA 面试题
    JAVA 继承
    多态 JAVA
    Java面向对象编辑
    [LeetCode] Merge k Sorted Lists
    [LeetCode] Valid Palindrome
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6806382.html
Copyright © 2020-2023  润新知