精华内容
下载资源
问答
  • 数据库本科作业数据库编程 --1、创建一个名为“PROC_系部读者借阅信息”的无参存储过程,要求显示计算机系读者 --2014-1-1以后-借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”个字段。 --创建完成...
  • 实验:表数据操作sql文件 实验:表数据操作实验报告

    实验三:表数据操作sql文件

    sql文件已上传到资源管理中心,有需自取

    /删除三个表/
    drop table stu_grade,stu_info,course_info;
    go

    use student;
    go
    /*
    创建stu_info表
    */
    create table stu_info
    (
    stu_id char(10) not null constraint stu_id primary key,
    name nvarchar(20) not null,
    birthday date,
    sex nchar(1) default ‘男’,
    address nvarchar(20),
    mark smallint,
    major nvarchar(20),
    sdept nvarchar(20)
    );
    go

    /*
    创建course_info表
    */

    create table course_info
    (
    course_id char(3) not null constraint course_id primary key,
    course_name nvarchar(20) not null,
    course_type nchar(2) default ‘考试’,
    course_mark tinyint,
    course_time int
    );
    go

    /*
    创建stu_grade表
    */

    create table stu_grade
    (
    stu_id char(10) not null constraint fk_stu_id foreign key references stu_info(stu_id),
    course_id char(3) not null constraint fk_course_id foreign key references course_info(course_id),
    grade decimal(5,2)
    );
    go

    /*
    将stu_grade表中的stu_id与course_id合在一起作为主键
    */

    alter table stu_grade
    add constraint pk_stu_course primary key(stu_id,course_id);
    go

    /*
    增加备注字段,
    字段名memo,
    字段类型nvarchar,
    字段长度200;
    */

    alter table stu_grade
    add memo nvarchar(200);
    go

    /*
    在表course_info中,
    对于字段course_name设置UNIQUE约束;
    */

    alter table course_info
    add unique(course_name);
    go

    /*
    在表stu_grade中,
    对于字段grade设置CHECK约束,
    其取值在0到100之间;
    */

    alter table stu_grade
    add check(grade between 0 and 100);
    go

    /*
    在表stu_grade中,
    对于字段stu_id设置FOREIGN KEY约束,
    其取值参照表stu_info中stu_id字段的取值;
    */

    alter table stu_grade
    add foreign key(stu_id) references stu_info(stu_id);
    go

    /*
    在表course_info中,
    增加先行课字段,
    字段名pre_course_id,
    其取值参照该表中course_id字段的取值;

    步骤:
    1.先创建pre_course_id列;
    2.再设置外码约束
    */

    –创建pre_course_id
    alter table course_info
    add pre_course_id char(3);
    go

    –设置外码约束
    alter table course_info
    add foreign key (pre_course_id) references course_info(course_id);
    go

    /*
    利用INSERT INTO命令
    向 学生信息表stu_info、
    课程信息表course_info、
    学生成绩表stu_grade中添加数据
    */

    –学生信息表
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept)
    VALUES(‘2007070101’,‘张元’,‘男’,‘1985-10-09’,‘河南郑州’,580,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept)
    VALUES(‘2007070102’,‘张红’,‘女’,‘1985-01-14’,‘河南开封’,565,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070103’,‘王明’,‘男’,‘1986-07-08’,‘河南洛阳’,570,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070104’,‘李伟’,‘男’,‘1986-03-11’,‘河南郑州’,564,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070201’,‘郑澜’,NULL,‘1985-12-01’,‘河南平顶山’,567,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070202’,‘赵恒’,‘男’,‘1986-02-03’,‘河南周口’,566,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070203’,‘张兰’,‘女’,‘1986-04-06’,‘河南许昌’,571,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080101’,‘李伟’,‘男’,‘1985-09-12’,‘河南郑州’,578,‘会计学’,‘会计学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080102’,‘钱丽’,‘女’,‘1985-11-23’,‘河南安阳’,573,‘会计学’,‘会计学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080201’,‘孙楠’,‘男’,‘1986-11-19’,‘河南南阳’,577,‘财务管理’,‘会计学院’)

    –课程信息表course_info
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘701’,‘计算机基础’,‘考试’,3,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘702’,‘操作系统’,‘考试’,4,50,‘701’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘703’,‘计算机网络’,‘考试’,‘4’,50,‘701’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘704’,‘数据库原理’,‘考查’,‘3’,50,‘701’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘706’,‘Java’,‘考查’,‘3’,50,‘704’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘801’,‘宏观经济学’,‘考试’,‘4’,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘802’,‘初级会计’,‘考试’,‘4’,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘803’,‘财政学’,‘考试’,‘3’,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘804’,‘会计电算化’,‘考查’,‘3’,NULL,NULL)

    –学生成绩表stu_grade
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘701’,89)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘702’,81)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘703’,52)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘701’,85)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘702’,47)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘703’,77)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070104’,‘701’,91)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070104’,‘702’,88)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080101’,‘801’,79)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080101’,‘802’,91)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080102’,‘801’,87)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080102’,‘802’,40)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080201’,‘803’,75)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080201’,‘804’,82)

    /*
    在表stu_info中,
    将学号(stu_id)为“2007070102”同学
    的院系(sdept)改为“会计学院”;
    */
    update stu_info
    set sdept = '会计学院’where stu_id = ‘2007070102’;
    go

    /*
    在数据表stu_grade中,
    将信息学院成绩(grade)小于60分的所有同学成绩置空;
    */

    update stu_grade set grade = NULL where grade<60;
    go

    /*
    利用DELETE命令删除表数据
    */

    /*
    在表stu_info中,
    删除所有籍贯(address)为“河南洛阳”的同学信息;
    */
    delete from stu_info where address = ‘河南洛阳’;
    go

    /*
    在表stu_grade中,
    删除“张元选修操作系统”这一选课信息;
    */
    delete from
    stu_grade
    where
    stu_id
    in
    (select stu_id from stu_info where name = ‘张元’)
    and
    course_id in (select course_id from course_info where course_name=‘操作系统’);
    go

    /*
    假设有表“借阅(借书证号,书名,借阅日期,是否到期)”,
    修改表中各记录在字段“是否到期”上的值,
    用借阅日期与当前日期比较,
    当差值大于规定期限(如60天)时,
    将字段“是否到期”的值由“否”(默认值)改为“是”。
    */

    /*
    创建 借阅 表
    */
    use student;
    create table 借阅
    (
    借书证号 char(10) not null,
    书名 nvarchar(20) not null,
    借阅日期 date,
    是否到期 nchar(1)
    );
    go

    /*
    修改表中各记录在字段“是否到期”上的值,
    用借阅日期与当前日期比较,
    当差值大于规定期限(如60天)时,
    将字段“是否到期”的值由“否”(默认值)改为“是”。
    */

    update 借阅 set 是否到期 = ‘是’ where getdate()-借阅日期> 60;
    go

    /*
    查看 借阅 表
    */

    select
    *
    from
    借阅;
    go

    实验三:表数据操作实验报告

    实验目的:

    1. 学会使用图形化方法对表中数据进行插入、修改和删除;
    2. 熟练使用T-SQL命令对表中数据进行插入、修改和删除;
    3. 了解数据在插入、修改和删除时要注意数据的完整性。

    实验场地及仪器、设备和材料:
    若干台装有Microsoft SQL Server 2012的计算机。

    实验训练内容(包括实验原理和操作步骤):

    1. 实验原理:图形化方法是利用向导方式对数据库中的表进行插入、修改和删除的;T-SQL命令方法是利用结构化查询语言对数据库中的表进行插入、修改和删除的。二者作用等同,只是操作方式不一样。
    2. 实验步骤
      (1)启动SQL Server服务;
      (2)启动SQL Server Management Studio,利用图形化方法向学生信息表stu_info、课程信息表course_info和学生成绩表stu_grade中添加数据,其数据内容参考下表。
      (3)利用图形化方法对表数据进行如下修改:
       在表stu_info中,将学号(stu_id)为“2007070101”同学的籍贯(address)改为“河南洛阳”;
       在表stu_grade中,将成绩(grade)小于60分的所有同学成绩增加10%;
      (4)利用图形化方法删除数据表stu_grade中成绩(grade)小于60分的选课记录;
      (5)利用INSERT INTO命令向学生信息表stu_info、课程信息表course_info和学生成绩表stu_grade中添加数据,其数据内容参考下表;
      (6)利用UPDATE命令修改表数据:
       在表stu_info中,将学号(stu_id)为“2007070102”同学的院系(sdept)改为“会计学院”;
       在数据表stu_grade中,将信息学院成绩(grade)小于60分的所有同学成绩置空;
      (7)利用DELETE命令删除表数据:
       在表stu_info中,删除所有籍贯(address)为“河南洛阳”的同学信息;
       在表stu_grade中,删除“张元选修操作系统”这一选课信息;
      (8)假设有表“借阅(借书证号,书名,借阅日期,是否到期)”,修改表中各记录在字段“是否到期”上的值,用借阅日期与当前日期比较,当差值大于规定期限(如60天)时,将字段“是否到期”的值由“否”(默认值)改为“是”。
      学生信息表(stu_info)
      STU_ID NAME BIRTHDAY SEX ADDRESS MARK MAJOR SDEPT
      2007070101 张元 1985-10-09 男 河南郑州 580 计算机科学与技术 信息学院
      2007070102 张红 1985-01-14 NULL  河南开封 565 计算机科学与技术 信息学院
      2007070103 王明 1986-07-08 男 河南洛阳 570 计算机科学与技术 信息学院
      2007070104 李伟 1986-03-11 男 河南郑州 564 计算机科学与技术 信息学院
      2007070201 郑澜 1985-12-01 NULL  河南平顶山 567 电子商务 信息学院
      2007070202 赵恒 1986-02-03 男 河南周口 566 电子商务 信息学院
      2007070203 张兰 1986-04-06 女 河南许昌 571 电子商务 信息学院
      2007080101 李伟 1985-09-12 男 河南郑州 578 会计学 会计学院
      2007080102 钱丽 1985-11-23 女 河南安阳 573 会计学 会计学院
      2007080201 孙楠 1986-11-19 男 河南南阳 577 财务管理 会计学院
      课程信息表(stu_info)
      COURSE_ID COURSE_NAME COURSE_TYPE COURSE_MARK COURSE_TIME PRE_COURSE_ID
      701 计算机基础 考试 3 50 NULL
      702 操作系统 考试 4 50 701
      703 计算机网络 考试 4 50 701
      704 数据库原理 考查 3 50 701
      706 Java 考查 3 40 704
      801 宏观经济学 考试 4 50 NULL
      802 初级会计 考试 4 50 NULL
      803 财政学 考试 3 50 NULL
      804 会计电算化 考查 3 NULL  NULL
      学生成绩表(stu_grade)
      STU_ID COURSE_ID GRADE STU_ID COURSE_ID GRADE
      2007070101 701 89 2007070104 702 88
      2007070101 702 81 2007080101 801 79
      2007070101 703 52 2007080101 802 91
      2007070102 701 85 2007080102 801 87
      2007070102 702 47 2007080102 802 40
      2007070102 703 77 2007080201 803 75
      2007070104 701 91 2007080201 804 82

    二、实验总结与评价
    实验总结(包括实验数据分析、实验结果、实验过程中出现的问题及解决方法等):

    /删除三个表/
    drop table stu_grade,stu_info,course_info;
    go

    use student;
    go
    /*
    创建stu_info表
    */
    create table stu_info
    (
    stu_id char(10) not null constraint stu_id primary key,
    name nvarchar(20) not null,
    birthday date,
    sex nchar(1) default ‘男’,
    address nvarchar(20),
    mark smallint,
    major nvarchar(20),
    sdept nvarchar(20)
    );
    go

    /*
    创建course_info表
    */

    create table course_info
    (
    course_id char(3) not null constraint course_id primary key,
    course_name nvarchar(20) not null,
    course_type nchar(2) default ‘考试’,
    course_mark tinyint,
    course_time int
    );
    go

    /*
    创建stu_grade表
    */

    create table stu_grade
    (
    stu_id char(10) not null constraint fk_stu_id foreign key references stu_info(stu_id),
    course_id char(3) not null constraint fk_course_id foreign key references course_info(course_id),
    grade decimal(5,2)
    );
    go

    /*
    将stu_grade表中的stu_id与course_id合在一起作为主键
    */

    alter table stu_grade
    add constraint pk_stu_course primary key(stu_id,course_id);
    go

    /*
    增加备注字段,
    字段名memo,
    字段类型nvarchar,
    字段长度200;
    */

    alter table stu_grade
    add memo nvarchar(200);
    go

    /*
    在表course_info中,
    对于字段course_name设置UNIQUE约束;
    */

    alter table course_info
    add unique(course_name);
    go

    /*
    在表stu_grade中,
    对于字段grade设置CHECK约束,
    其取值在0到100之间;
    */

    alter table stu_grade
    add check(grade between 0 and 100);
    go

    /*
    在表stu_grade中,
    对于字段stu_id设置FOREIGN KEY约束,
    其取值参照表stu_info中stu_id字段的取值;
    */

    alter table stu_grade
    add foreign key(stu_id) references stu_info(stu_id);
    go

    /*
    在表course_info中,
    增加先行课字段,
    字段名pre_course_id,
    其取值参照该表中course_id字段的取值;

    步骤:
    1.先创建pre_course_id列;
    2.再设置外码约束
    */

    –创建pre_course_id
    alter table course_info
    add pre_course_id char(3);
    go

    –设置外码约束
    alter table course_info
    add foreign key (pre_course_id) references course_info(course_id);
    go

    /*
    利用INSERT INTO命令
    向 学生信息表stu_info、
    课程信息表course_info、
    学生成绩表stu_grade中添加数据
    */

    –学生信息表
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept)
    VALUES(‘2007070101’,‘张元’,‘男’,‘1985-10-09’,‘河南郑州’,580,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept)
    VALUES(‘2007070102’,‘张红’,‘女’,‘1985-01-14’,‘河南开封’,565,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070103’,‘王明’,‘男’,‘1986-07-08’,‘河南洛阳’,570,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070104’,‘李伟’,‘男’,‘1986-03-11’,‘河南郑州’,564,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070201’,‘郑澜’,NULL,‘1985-12-01’,‘河南平顶山’,567,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070202’,‘赵恒’,‘男’,‘1986-02-03’,‘河南周口’,566,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070203’,‘张兰’,‘女’,‘1986-04-06’,‘河南许昌’,571,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080101’,‘李伟’,‘男’,‘1985-09-12’,‘河南郑州’,578,‘会计学’,‘会计学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080102’,‘钱丽’,‘女’,‘1985-11-23’,‘河南安阳’,573,‘会计学’,‘会计学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080201’,‘孙楠’,‘男’,‘1986-11-19’,‘河南南阳’,577,‘财务管理’,‘会计学院’)

    –课程信息表course_info
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘701’,‘计算机基础’,‘考试’,3,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘702’,‘操作系统’,‘考试’,4,50,‘701’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘703’,‘计算机网络’,‘考试’,‘4’,50,‘701’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘704’,‘数据库原理’,‘考查’,‘3’,50,‘701’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘706’,‘Java’,‘考查’,‘3’,50,‘704’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘801’,‘宏观经济学’,‘考试’,‘4’,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘802’,‘初级会计’,‘考试’,‘4’,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘803’,‘财政学’,‘考试’,‘3’,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘804’,‘会计电算化’,‘考查’,‘3’,NULL,NULL)

    –学生成绩表stu_grade
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘701’,89)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘702’,81)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘703’,52)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘701’,85)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘702’,47)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘703’,77)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070104’,‘701’,91)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070104’,‘702’,88)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080101’,‘801’,79)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080101’,‘802’,91)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080102’,‘801’,87)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080102’,‘802’,40)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080201’,‘803’,75)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080201’,‘804’,82)

    /*
    在表stu_info中,
    将学号(stu_id)为“2007070102”同学
    的院系(sdept)改为“会计学院”;
    */
    update stu_info
    set sdept = '会计学院’where stu_id = ‘2007070102’;
    go

    /*
    在数据表stu_grade中,
    将信息学院成绩(grade)小于60分的所有同学成绩置空;
    */

    update stu_grade set grade = NULL where grade<60;
    go

    /*
    利用DELETE命令删除表数据
    */

    /*
    在表stu_info中,
    删除所有籍贯(address)为“河南洛阳”的同学信息;
    */
    delete from stu_info where address = ‘河南洛阳’;
    go

    /*
    在表stu_grade中,
    删除“张元选修操作系统”这一选课信息;
    */
    delete from
    stu_grade
    where
    stu_id
    in
    (select stu_id from stu_info where name = ‘张元’)
    and
    course_id in (select course_id from course_info where course_name=‘操作系统’);
    go

    /*
    假设有表“借阅(借书证号,书名,借阅日期,是否到期)”,
    修改表中各记录在字段“是否到期”上的值,
    用借阅日期与当前日期比较,
    当差值大于规定期限(如60天)时,
    将字段“是否到期”的值由“否”(默认值)改为“是”。
    */

    /*
    创建 借阅 表
    */
    use student;
    create table 借阅
    (
    借书证号 char(10) not null,
    书名 nvarchar(20) not null,
    借阅日期 date,
    是否到期 nchar(1)
    );
    go

    /*
    修改表中各记录在字段“是否到期”上的值,
    用借阅日期与当前日期比较,
    当差值大于规定期限(如60天)时,
    将字段“是否到期”的值由“否”(默认值)改为“是”。
    */

    update 借阅 set 是否到期 = ‘是’ where getdate()-借阅日期> 60;
    go

    /*
    查看 借阅 表
    */

    select
    *
    from
    借阅;
    go

    (如留存空白不足,可附A4纸)
    对实验的自我评价:

    课堂上认真听讲真的很重要,不是上课就简单听课那么简单,更多的是找技巧,找到规律,上课的东西比较多,一定要记下来,不能眼高手低。
    在本次实验过程中,真的感觉书很陌生,翻书都感觉很吃力,不知道往哪里翻,对书太陌生了,而且上课讲的语句的语法结构都忘完了,啥也没有记住。写的时候真的很感慨,不过我也再网上找到了,就是相对来说比较耗费时间和精力。
    对于在实验过程中出现的问题,例如报错,我也不知道怎么处理,最开始的时候是吧报错的语句复制粘贴到百度上寻找答案,后来慢慢的我自己也琢磨为什么会报错,是语句格式问题吗?数据类型不对应吗?超出数据类型的规定长度了吗?等等,不过也当然会有我想不出来的问题,就百度上搜或者在csdn上问,不过肯定会有最后也没有解决的问题,就准备上课的时候问老师或者在学习通界面上问老师。
    指导教师评语:

    实验成绩评定: 指导教师(签名): 日期: 年 月 日
    请勿转载,谢谢!!!

    展开全文
  • 数据库原理与应用 实验报告 实验:表数据操作 1.使用数据库student use student; go 2.向 学生信息表stu_info 添加信息 --学生信息表 INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept) ...

    数据库原理与应用

    sql语句

    实验三:表数据操作

    1.使用数据库student

    use student;
    go
    

    2.向 学生信息表stu_info 添加信息

    --学生信息表
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept)
    VALUES('2007070101','张元','男','1985-10-09','河南郑州',580,'计算机科学与技术','信息学院')
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept)
    VALUES('2007070102','张红','女','1985-01-14','河南开封',565,'计算机科学与技术','信息学院')
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES('2007070103','王明','男','1986-07-08','河南洛阳',570,'计算机科学与技术','信息学院')
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES('2007070104','李伟','男','1986-03-11','河南郑州',564,'计算机科学与技术','信息学院')
    INSERT INTO stu_info(stu_id,name,sex,birthday,address,mark,major,sdept )
    

    运行结果:
    在这里插入图片描述

    备注: 因为这里语句较多,所以摘取一部分,同样下面两张表语句太多,所以添加信息也都是摘取一部分

    3.向 课程信息表course_info 添加信息

    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES('701','计算机基础','考试',3,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES('702','操作系统','考试',4,50,'701')
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES('703','计算机网络','考试','4',50,'701')
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES('704','数据库原理','考查','3',50,'701')
    

    运行结果:
    在这里插入图片描述

    4.向 学生成绩表stu_grade 添加信息

    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES('2007070101','701',89)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES('2007070101','702',81)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES('2007070101','703',52)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES('2007070102','701',85)
    

    运行结果:
    在这里插入图片描述

    5.在表stu_info中,将学号(stu_id)为“2007070102”同学的院系(sdept)改为“会计学院”;

    update stu_info
    set sdept = '会计学院'
    where stu_id = '2007070102';
    go
    
    

    运行结果;
    在这里插入图片描述

    6.在数据表stu_grade中,将信息学院成绩(grade)小于60分的所有同学成绩置空;

    update stu_grade 
    set grade = NULL 
    where grade<60;
    go
    

    运行结果:
    在这里插入图片描述

    7.利用DELETE命令删除表数据

    7.1在表stu_info中,删除所有籍贯(address)为“河南洛阳”的同学信息;

    delete from stu_info 
    where address = '河南洛阳';
    go
    

    运行结果:
    在这里插入图片描述

    7.2在表stu_grade中,删除“张元选修操作系统”这一选课信息;

    delete from 
    		stu_grade 
    where	
    		stu_id in 
    			(select stu_id 
    			from stu_info 
    			where name = '张元') 
    and
    		 course_id in 
    			(select course_id 
    			from course_info 
    			where course_name='操作系统');
    go
    
    

    运行结果:
    在这里插入图片描述

    8.借阅

    /*
    假设有表“借阅(借书证号,书名,借阅日期,是否到期)”,
    修改表中各记录在字段“是否到期”上的值,
    用借阅日期与当前日期比较,
    当差值大于规定期限(如60天)时,
    将字段“是否到期”的值由“否”(默认值)改为“是”。
    */
    
    

    8.1创建 借阅 表

    use student;
    create table 借阅
    (
    	借书证号 char(10) not null,
    	书名 nvarchar(20) not null,
    	借阅日期 date,
    	是否到期 nchar(1)
    );
    go
    
    

    运行结果:
    在这里插入图片描述

    8.2对其中数据进行修改

    具体要求如下:

    /*
    修改表中各记录在字段“是否到期”上的值,
    用借阅日期与当前日期比较,
    当差值大于规定期限(如60天)时,
    将字段“是否到期”的值由“否”(默认值)改为“是”。
    */
    

    相关sql语句操作如下:

    update 借阅 
    set 是否到期 = '是' 
    where getdate()-借阅日期> 60;
    go
    

    运行结果:
    在这里插入图片描述
    这里解释一下,因为“借阅“表中没有数据,所以会显示为0行收到影响

    8.3查看 借阅 表

    select 
    		* 
    from
    		借阅;
    go
    
    

    运行结果:
    在这里插入图片描述

    9.实验三:表数据操作sql文件和实验报告

    转载请标明出处

    展开全文
  • 数据库原理与应用》课程实验报告 --数据库的嵌套查询 一、实验目的 1.熟练掌握SQL Server Management Studio中查询分析的使用方法,加深对T-SQL结构化查询的理解。 2.掌握数据查询中嵌套查询语法格式,及使用IN,...

    《数据库原理与应用》课程实验报告 --数据库的嵌套查询

    一、实验目的

    1.熟练掌握SQL Server Management Studio中查询分析的使用方法,加深对T-SQL结构化查询的理解。
    2.掌握数据查询中嵌套查询语法格式,及使用IN,ANY,ALL,EXISTS操作符和比较运算符对数据库进行嵌套查询的操作。
    1.基本操作实验
    学生选课数据库中表结构如下:
    学生(学号,姓名,年龄,性别,所在系);
    课程(课程号,课程名,学分,先行课);
    选课(学号,课程号,成绩);
    在学生选课数据库中实现下面的数据查询操作。
    1)求计算机系学生选课的课程号和成绩。
    2)求选修了高等数学的学生学号和姓名。
    3)求选修成绩在90~95之间的课程名。
    4)针对C1课程,查询C1课程的成绩高于张三的学生学号和成绩。
    5)求其他系中比计算机系某学生年龄小的学生(即求年龄小于计算机系年龄最大者的学生)。
    6)求其他系中比计算机系学生年龄都小的学生。
    7)求没有选修C2课程的学生姓名。
    8)查询选修了“c1”课程但没有选修“c2”课程的学生学号。
    9)查询选修了全部课程的学生姓名。

    二、实验过程及分析

    实验过程

    --创建学生表
    create table student
    (
      s_num  int PRIMARYKEY,
      s_name varchar(20)not null,
      s_age int check(s_age between 10 and 35),
      s_sex varchar(10) check(s_sex in('男', '女')),
      s_unit varchar(20)
    )
    drop table student 
    select * from student
    --插入数据
    insert into student values (1815001,'张三',17,'男','数学系'),
                              (1815002,'李白',20,'女','计算机系'),
    						  (1815003,'后裔',18,'男','计算机系'),
    						  (1815004,'翠花',25,'女','数学系'),
    						  (1815005,'狗蛋',19,'男','机械系');
    						  
    --创建课程表
    create table course
    (
    c_num varchar(20) PRIMARYKEY,
    c_name varchar(20) not null,
    c_credit  int check(c_credit in (1,2,3,4,5,6)),
    front varchar(20) 
    )
    --插入数据
    drop table course
    insert into  course values ('C1','高等数学',2,' '),
    							('C2','程序设计电路',2,'c1'),
    							('C3','数字电路',3,'C1'),
    							('C4','计算机组成',3,'C3'),
    							('C5','计算机网络',4,'C4'),
    							('C6','操作系统',3,'C5')
    
    select * from course
    --创建选课表
    create table selectCourse
    (
     s_num  int,
     c_num varchar(20),
     score numeric(3,1)   ,
     primary key (s_num,c_num),
     foreign key ( s_num) references student(s_num),
     foreign key (c_num) references course(c_num),
    )
    drop table selectCourse
    --插入数据
    
    insert into  selectCourse(s_num, c_num, score) 
                               values(1815001,'C1',93),
    						         (1815002,'C1',90),
    								 (1815003,'C1',99),
    								 (1815004,'C1',96),								
                                     (1815001,'C2',80),
    								 (1815001,'C3',90),
    								 (1815001,'C4',78),
    								 (1815001,'C5',88),
    								 (1815001,'C6',98),
    								 (1815005,'C3',88),							   
    								 (1815004,'C3',98)
    insert into  selectCourse(s_num, c_num ) 
                                     values(1815005,'C4')
    select * from  Course
    select * from selectCourse
    

    嵌套查询

    --1)求计算机系学生选课的课程号和成绩
    select  selectCourse.c_num  as '课程号'  ,  selectCourse.score   as '成绩'
    from  selectCourse
    join  course  on  selectCourse.c_num = course.c_num
    join   student  on  student.s_num = selectCourse.s_num
    where  student.s_unit= '计算机系'
    
    --2)求选修了高等数学的学生学号和姓名。
    select  s_num as '学号'  ,s_name as '姓名'  from student
    where student.s_num in
    	(select  s_num from  selectCourse
        where  selectCourse.c_num  in 
    	           (
    				Select  c_num from course 
    				where  course.c_name =  '高等数学'
    				)
    	)
    
    --3)求选修成绩在90~95之间的课程名。
    select course.c_name  as  课程名 from  course
    where  course.c_num  in 
    			(
    			Select  selectCourse.c_num from selectCourse
    			where ( score between  90 and 95)
    			) 
    
    --4)针对C1课程,查询C1课程的成绩高于张三的学生学号和成绩。
    
     select   selectCourse.s_num as 学号  ,  selectCourse.score as  成绩
     from   selectCourse
     where   selectCourse.score > 
           (  select  score from  selectCourse
             where  c_num= 'C1'
    		 and  s_num=
    		 (
             select  s_num from  student
             where  s_name = '张三' 
    		 )
    	   )  
    
    --5)求其他系中比计算机系某学生年龄小的学生(即求年龄小于计算机系年龄最大者的学生)。
    select  s_num  as 学号 , s_name as 姓名  from   student
    where s_age  < 
    		any(
    		select  s_age from  student
    		where   s_unit= '计算机系'
    		)
    		and    s_unit!= '计算机系'
    
    --6)求其他系中比计算机系学生年龄都小的学生
    select  s_num  as 学号 , s_name as 姓名  from   student
    where s_age  < 
    		all(
    		select  s_age from  student
    		where   s_unit= '计算机系'
    		)
    		and    s_unit not in ( '计算机系')
    
    --7)求没有选修C2课程的学生姓名
     select   s_name as 姓名 from student
    where  s_num not in 
            (
    		select  s_num  from  selectCourse
    		where  c_num ='C2'
    		)
    
    
    --8)查询选修了“c1”课程但没有选修“c2”课程的学生学号。select s_num as 学号
    from  selectCourse A
    where A.c_num = 'C1' and  not exists (select * from selectCourse B
                                          where A.s_num=B.s_num  and  c_num ='C2' )
    --9)查询选修了全部课程的学生姓名
    SELECT s_name  FROM Student
             WHERE NOT EXISTS
                (SELECT *  FROM course
                  WHERE NOT EXISTS
                      (SELECT *FROM selectCourse
                       WHERE s_num= Student.s_num
                          AND c_num= Course.c_num))
    

    3.实验结果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.实验分析

    ①分析实验结果;
    达到了预期的效果
    ②说明实验过程中遇到的问题及怎么解决。
    第八题和第九的的exists 查询还不是掌握的很好。
    Exists执行的流程Exists首先执行外层查询,再执行内存查询,与IN相反。
    流程为首先取出外层中的第一元组, 再执行内层查询,将外层表的第一元组代入,若内层查询为真,即有结果时。返回外层表中的第一元 组,接着取出第二元组,执行相同的算法。一直到扫描完外层整表 。
    在这里插入图片描述

    ③对错误方面进行分析;
    不能熟练的掌握语法。下去还需继续深入的学习。

    展开全文
  • 数据库原理与应用》课程实验报告 数据库的组合和统计查询 目录《数据库原理与应用》课程实验报告 数据库的组合和统计查询二、实验过程及分析1.实验内容2.实验过程4.实验分析、实验总结 使学生进一步掌握SQL ...
  • 数据库原理与应用 实验指导书 实验六:视图 一、实验目的 理解视图的重要性; 掌握视图的建立; 掌握视图的使用。 二、实验内容 视图的创建、删除和查询。 实验原理、方法和手段 实验原理:视图实际上不是...

    数据库原理与应用

    实验指导书

    实验六:视图

    一、实验目的

    1. 理解视图的重要性;
    2. 掌握视图的建立;
    3. 掌握视图的使用。

    二、实验内容

    视图的创建、删除和查询。

    三、实验原理、方法和手段

    1. 实验原理:视图实际上不是直接存储在数据库中的,而是从一个或多个表(或视图)导出的表。
    2. 方法与手段:先由教师讲解并演示,然后学生根据实验报告进行实验。

    四、实验环境、条件

    若干台装有Microsoft SQL Server 2012的计算机。

    五、实验组织运行要求

    本实验是综合性实验,采用集中授课形式组织教学,先由教师讲解并演示,然后学生根据实验报告进行实验。

    六、实验步骤

    1.启动SQL Server服务;
    2.启动SQL Server Management Studio,利用图形化方法创建下列视图:
    ①视图view_male,包含学生信息表中所有男生信息;
    ②视图view_stu_grade,包含每个同学的学号、姓名、课程名和成绩信息;
    ③视图view_avg,包含每个同学的学号、姓名、平均成绩信息;
    3.利用图形化方法查询视图view_male中的信息;
    4.利用图形化方法删除视图view_male;
    5.利用CREATE VIEW命令创建下列视图:
    ①视图view_female,包含学生信息表中所有女生信息;
    ②视图view_count,包含每个院系的名称和学生人数信息;
    ③视图view_sum,包含每个同学的学号、姓名、课程总成绩信息;
    6.利用DROP VIEW命令删除视图view_female;
    7.通过视图,查询下列信息:
    ①查询“信息学院”的学生人数;
    ②查询“张元”同学的课程总成绩。

    七、实验六:视图 sql语句

    转载请标明出处

    展开全文
  • 数据库原理与应用 实验指导书 实验五:索引 一、实验目的 掌握索引的概念; 掌握使用图形化方法创建、删除索引; 掌握使用T-SQL命令创建、删除索引; 掌握索引分析的方法。 二、实验内容 索引的创建、删除 、...
  • 数据库原理与应用 实验指导书 实验四:数据查询 一、实验目的 掌握SELECT语句的基本语法; 熟练掌握模糊查询的用法; 熟练掌握连接查询的用法; 熟练掌握子查询的用法。 二、实验内容 表数据的查询 实验原理、...
  • 数据库原理与应用》课程实验报告 数据库的组合和统计查询 目录《数据库原理与应用》课程实验报告 数据库的组合和统计查询二、实验过程及分析1.实验内容2.实验过程4.实验分析、实验总结 使学生进一步掌握SQL ...
  • 数据库原理应用》课程实验 实验1 创建数据库和数据表 一、实验目的 熟悉SQL Server Management Studio界面;掌握通过图形化向导和执行Transact-SQL语句创建数据库的方法。 二、实验环境 Windows7操作系统,...
  • SQL Server数据库原理实验报告(完)

    万次阅读 多人点赞 2019-04-18 11:34:04
    实验三 使用SQL语言进行简单查询 实验四 使用SQL语言进行复杂查询 实验五 SQL常用数据更新操作 实验六 综合应用 实验一 熟悉数据库管理系统环境 实验目的 1、 熟悉并掌握SQL Server的基本使用环境; 2、 掌握SQL ...
  • PAGE PAGE 2 电子科技大学信息软件工程学院 实 验 报 告 学 号 姓 名 实验 课程名称 数据库原理应用 理论教师 张宁 实验教师 张宁 电子科技大学教务处制表 电 子 科 技 大 学 实 验 报 告 学生姓名 学号 指导...
  • 一、实验题目 本次实验为自定任务,我选择了一个与自主存取控制有关的实验。 设有一个企业,包括采购、销售和客户管理等个部门,采购部门经理David,采购员Fred;...二、相关原理与知识 (完成实验所...
  • 大学《数据库系统》课程设计报告

    万次阅读 多人点赞 2019-01-03 16:02:29
    湖南科技大学计算机科学工程学院 《数据库系统》 课 程 设 计 题 目: 教学管理系统 专 业:计算机科学技术 年 级: 2017级 班 级: 计科班 ...数据库系统课程设计是为了配合数据库原理应用开发而...
  • 本书介绍了Oracle的安装及卸载、数据库的启动关闭、表空间和数据文件的管理、Oracle网络管理、口令文件管理、内存管理、进程管理、用户管理、数据的导入导出、备份恢复、模式对象的管理以及应用程序开发等相关知识...
  • 本书介绍了Oracle的安装及卸载、数据库的启动关闭、表空间和数据文件的管理、Oracle网络管理、口令文件管理、内存管理、进程管理、用户管理、数据的导入导出、备份恢复、模式对象的管理以及应用程序开发等相关知识...
  • 研究生实验课程电子科技大学实验报告实验地点:信软楼440 实验时间:19.03.13一、实验名称:Java核心技术及数据库操作二、实验学时:4学时、实验目的:熟悉Java核心技术:类,接口,异常处理;完成网络通信中Java的...
  • Java多线程C/S综合应用程序设计(C/S聊天系统、ftp程序等)。 实验硬件、软件环境 1.PC计算机一台,配置为CPU为P4 2.8G,内存为512M,硬盘为80G。 2.WindowsXP + JSDK1.5 + JCreatorPro3.5 四、实验算法设计 ...
  • 基于socket聊天程序编写实验报告

    热门讨论 2009-06-19 10:41:58
    实验硬件、软件平台: 1. 硬件平台:多台PC机的一个局域网、Windows XP/2000、AMD Athlon64 X2 4000+ 、内存256MB以上、硬盘80G以上。 2. 软件平台:delphi7 1.3 运行环境 本系统基于WIN NT 和ACCESS XP...
  •  《循序渐进oracle:数据库管理、优化备份恢复》在分析实例的过程中,兼顾深度广度,不仅对实际问题的现象、产生原因和相关的原理进行了深入浅出的讲解,更主要的是,结合实际应用环境,提供了一系列解决问题的...
  • 书中内容主要集中在大多数企业常见的问题之上,如安装和升级到oracle database 11g数据库软件、创建数据库、导出和导入数据、数据库的备份恢复、性能调优,等等。  本书还提供了dba完成本职工作必备的基本的uniix...
  • 4.每组所选软件工程课程实践题目也作为数据库原理课程的课程实践题目,文档编制部分主要在软件工程课程实践中完成,程序编写部分主要在数据库原理课程的课程实践中完成。 五、实验题目: 1. 银行帐户管理、储蓄业务...
  • 实验报告应包括:实验目的 熟悉一阶谓词逻辑和产生式表示法,掌握产生式系统的运行机制,以及基于规则推理的基本方法。 实验内容 运用所学知识,设计并编程实现一个小型人工智能系统(如分类、诊断、预测等类型)。 ...
  • 软件编程规范培训实例练习 软件编程规范培训实例练习  问题分类 1 逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性、程序逻辑控制等方面出现的问题,在系统中起关键作用,将导致软件死机、功能...
  •  第部分深入MySQL系统的内部去探查这个系统的工作原理。首先介绍了一些高级的数据库技术,精辟阐述了有关理论和实践,使读者能够运用所学到的知识去解决与数据库系统有关的更为复杂的问题。这一部分还给出了一些...
  • 昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业用户需要实地地并频繁地检测机构沟通,从而提出自己的委托乃至下委托单、等待检测报告等,设计并研发了市场上首款提供...
  • 大学文献检索资料 DOC

    2009-11-28 10:35:24
    节 信息检索原理及步骤 一、信息检索原理: 文献信息检索实际上包括文献的存储和文献的检索两个相互依存的过程。 二、信息检索的步骤: 1.分析研究课题: 2.选择检索工具: 3.确定检索途径:分类途径、主题...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

数据库原理与应用实验报告三