SQL实验报告总结

时间:2019-05-12 14:28:44下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《SQL实验报告总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《SQL实验报告总结》。

第一篇:SQL实验报告总结

《数据库系统概论(第四版)》

学号: 姓名: 班级: 教师:

期实 验 总 结 与 心 得

【实验名称】 数据库的创建 【实验内容】

1、新建sql注册表。

2、新建数据库。主数据文件:逻辑文件名为student_data,物理文件名为student.mdf,初始大小为10mb,最大尺寸为无限大,增长速度为10%;

数据库的日志文件:逻辑名称为student_log,物理文件名为student.ldf,初始大小为1mb,最大尺寸为5mb,增长速度为 1mb

3、修改已注册的sql server属性为使用sql server身份验证。

【实验名称】 数据库的附加、分离、导入导出及分离 【实验内容】 1.数据库文件的附加与分离(转载于:sql实验报告总结)2.数据库文件的导入和导出 3..数据库的删除 4.修改数据库

【实验名称】 数据库的创建(书中作业)【实验内容】 1.在数据库student中创建一个学生基本信息表 1.用企业管理其创建表 2.用查询分析器创建表 2.sql server 2005的系统数据类型分为哪几类?常用的数据类型有哪些?

答:字符串类型、整型、长整型、短整型、浮点数类型、定点数类型、日期、时间。常用的数据类型有:字符串类型、整型、长整型、短整型、浮点数类型、定点数类型、日期、时间

3.在数据库student中创建一个名为t_couse(课程信息表)1.用企业管理其创建t_course表 2.用查询分析器创建t_course 4.在数据库student中创建一个名为t_score(学生成绩)的表 5.sql server 2005 中有多少种约束?其作用分别是什么

答:非空约束,作用指定某一列不允许空值有助于维护数据的完整性,因为这样可以确保行中的列永远保护数据。

主键约束,作用可以保证实体的完整性,是最重要的一种约束。唯一约束,作用指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值。

检查约束,作用对输入列或者整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性。

默认约束,作用指定在插入操作中如果没有提供输入值。怎系统自动指定值。外键约束,作用主要用来维护两个表之间数据的一致性。6.分别为t_course表和t_score表创建唯一性约束、检查约束、默认约束。篇二:sql server综合实验报告

华北科技学院计算机系综合性实验

实 验 报 告 课程名称 数据库系统 实验学期 2010 至 2011 学年 第 二 学期

学生所在系部 计算机系 年级 二年级 专业班级

网络工程b093班

学生姓名

沈亚强

学号

200907024313

任课教师

郭红 实验成绩

计算机系制

实验报告须知

1、学生上交实验报告时,必须为打印稿(a4纸)。页面空间不够,可以顺延。

2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。

3、教师应该填写的内容包括:实验成绩、教师评价等。

4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验

中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一

刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。

5、未尽事宜,请参考该课程的实验大纲和教学大纲。《

数据库系统

》课程综合性实验报告 篇三:数据库上机实验报告+总结

数据库集中上机报告

学 生: 马志鹏 学 号: 0221090118 班 级: 02210901 专

业:计算机应用技术 重庆邮电大学移通学院 2011年6月

第一天:access数据库基本操作 1 实验目的

1、熟悉的掌握access数据库结构与创建

2、了解创建、修改、删除、查询、保存等操作

3、输入数据创建、设计器创建、向导创建。2 实验内容 3 实验结果

1.2.2 2 access数据表的编辑

第二天 数据表基本操作 1 表关系与编辑数据 1 实验目的:

1、实现一对一,一对多,多对多的实体关系

2、对“学生基本信息”表中的记录进行排序,按出生日期降序排列

3、从“学生基本信息”表中筛选出所有计算机系男生的记录

4、从“学生基本信息”表中筛选出回族和蒙古族的所有学生记录 3 2 实验内容

1.select 学生基本信息表.学生姓名, 成绩档案表.* from 成绩档案表 inner join 学生基本信息表 on 成绩档案表.学生学号 = 学生基本信息表.学生学号

where(((学生基本信息表.学生姓名)=张冰冰));2 select 学生基本信息表.* from 学生基本信息表 where(((学生基本信息表.性别)=男)and((学生基本信息表.班级名称)=计算机系));3 select 成绩档案表.c语言, 课程表.* from 成绩档案表, 课程表;4 select 学生基本信息表.*, 学生基本信息表.性别, 学生基本信息表.班级名称 from 学生基本信息表 where(((学生基本信息表.性别)<>男)and((学生基本信息表.班级名称)<>计算机系));5 select 学生基本信息表.*, 学生基本信息表.出生日期 from 学生基本信息表 where(((month([出生日期]))=9)and((day([出生日

期]))=1));6 select 学生基本信息表.* from 学生基本信息表 where(((学生基本信息表.学生姓名)like 李*));3 实验结果 4 第3天 sql查询设计 1 sql语言查询 1 实验目的:

熟悉了解sql语句 5 篇四:sqlserver实验报告—数据库和表的创建

数据库实验报告

课程名称信息系统数据库技术 实验名称 数据表的管理 专业班级

姓 名

学 号 实验日期

实验地点 2012—2013学年度 第 一 学期 篇五:数据库上机实验报告sql server 2000 课程代码:1010000450 数据库 database 学分:3 总学时:48 实验学时:16 面向专业:信息与计算科学,数学与应用数学

一、实验教学目标

数据库是计算机科学与技术专业的专业必修课程。课程内容主要包括:数据模型、关系代数、关系数据库标准语言sql、关系系统、关系数据理论、数据库设计方法。学习本课程的过程中,只有通过上机实验,才能使学生真正深层次了解数据库系统的体系结构,掌握数据库系统的基础理论、技术和方法,掌握主流数据库管理系统sql server 2000的应用技术及数据库应用系统的设计、开发能力。

二、实验教学基本要求

认真阅读教材中与实验相关的章节内容,提前做好实验准备,做到在每个实验前明确实验目的、掌握实验的基本内容及操作方法;在实验中正确使用实验设备,认真观察、分析实验结果;实验后要根据要求做好总结,写出实验报告。

三、实验教材或实验指导书

《数据库系统概论》,萨师煊 王珊主编,高等教育出版社

四、考核方式与评分办法 实验成绩评定分两部分:上机实验操作占50%,实验报告占50%。

五、实验项目设置

六、实验内容与实验方式

实验一

安装sql server 2000

(一)实验内容 1.安装microsoft的数据库服务软件sql server 2000。以sql server2000企业版为例安装教程

第一步:打开安装文件中的“autorun”文件,安装程序会自动运行出现版本选择界面,我们以选择企业版为例。

第二步:在接下来的界面中选择“安装数据库服务器”选项。

第三步:这时出现安装向导,出现“计算机名”窗口。“本地计算机”是默认选项,其名称就显示在上面,我们按其默认点“下一步”。

第四步:接下来,在“安装选择”对话窗口中,同样按其默认项“创建新的sql server实例,或安装客户端工具”点下一步。

第五步:在 用户信息 窗口,输入用户信息,并接受软件许可证协议。

第六步:在 安装定义窗口,选择 服务器和客户端工具 选项进行安装。我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作,对于我们学习sql server很有用处。如果你已经在其它机器上安装了sql server,则可以只安装客户端工具,用于对其它机器上sql server的存取。

第七步:在 实例名 窗口,选择 默认 的实例名称。这时本sql server的名称将和windows 2000服务器的名称相同。第八步:在 安装类型 窗口,选择 典型 安装选项,并指定 目的文件夹。

第九步:在 服务账号 窗口,请选择 对每个服务使用统一账户...的选项。在 服务设置 处,选择 使用本地系统账户。如果需要 使用域用户账户 的话,请将该用户添加至windows server的本机管理员组中。

第十步:在 身份验证模式 窗口,请选择 混合模式...选项,并设置管理员sa账号的密码。如果需要更高的安全性,则可以选择 windows身份验证模式,这时就只有windows server的本地用户和域用户才能使用sql server了。

第十一步:在 选择许可模式 窗口,根据您购买的类型和数量输入(0表示没有数量限制)。每客户表示同一时间最多允许的连接数,处理器许可证表示该服务器最多能安装多少个cpu。笔者这里选择了 每客户 并输入了100作为示例。

第十二步:约10多分钟的安装时间,然后打开开始菜单下的sql子目录下的企业管理器。2.熟悉软件的使用以及各个组成部分。

第一:打开企业管理器,可以对本地的数据进行管理,也可以登录服务器端,即可以远程操作自己的数据库 ;

第二:登录查询分析器,可以通过sql管理语句,对数据库进行管理。

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库sql server2000,最后老师检查操作结果。每次86组,每组1人。

实验二

启动sql server2000和建库、表

(一)实验内容 1.启动数据库服务软件sql server 2000。第一步:打开企业管理器,可以登录服务器端,即可以远程操作自己的数据库,登录步骤如下; 第二步:左侧方框中控制台根目录的子目录的sql server组上,右击,并新建sql server注册„; 第三步:在“服务器”一栏里输入想要登录的服务器ip地址,选择使用sql server身份验证,写入登录名和密码,就可以登录了。

第四步:登录查询分析器,可以通过sql管理语句,对数据库进行管理。2.在sql server 2000中建立数据库。

第一步:通过企业管理器进入服务器端以后,可以在数据库文件里“新建数据库”。第二步:输入数据库名称。

第三步:通过相关需求对数据库的相关属性进行设置,然后完成。3.在数据库上建立表。第一步:登录企业管理器

第二步:进入自己的database,并打开“表”选项;

第三步:在表选项右侧空白处,点击右键,选择“新建表„”;

第四步:在弹出的窗口中,分别填写列名,数据类型,长度和是否允许空值,然后关闭窗口。第五步:关闭窗口会弹出是否保存表,选择是,接下来弹出的窗口中填写表名即可。

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库sql server2000,最后老师检查操作结果。每次86组,每组1人。

实验三

sql server2000查询分析器

(一)实验内容 1.启动数据库服务软件sql server 2000的查询分析器。第一步:在登录企业管理器的前提下,登录查询分析器。

第二步:登录查询分析器与登录企业管理器类似,需要输入ip地址或者如果是本地数据库,直接用windows身份验证即可。2.在查询分析器中建立表。

第一步:在查询分析器命令栏里输入以下语句: 定义一个学生-课程模式s-t create schema “s-t” authorization wang /*为用户wang定义了一个模式s-t*/ 然后点击“分析查询”和“执行查询”。第二步:在查询分析器命令栏里输入以下语句:

建立“学生”表student,学号是主码,姓名取值唯一 create table student(sno

char(9)primary key, /* 列级完整性约束条件*/ sname char(20)unique, /* sname取唯一值*/ ssex char(2), sage smallint, sdept char(20));然后点击“分析查询”和“执行查询”。

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库sql server2000,最后老师检查操作结果。每次86组,每组1人。

实验四

sql语言的ddl

(一)实验内容 1.用如下语句对表进行操作:create table 建表;drop table 删除表;alter table 更改表。

create table student(sno char(4)primary key)drop table student /*当student表与其他数据有级联关系或者其他关系时,不能删除。*/ alter table student add s_entrance date null/*向student表增加“入学时间”列,其数据类型为日期型*/ alter table student drop column sno /*删除student表中的sno这一列,含有以下关系的列不能被删除: ? 被复制列。

? 用在索引中的列。

? 用在 check、foreign key、unique 或 primary key 约束中的列。? 有相关联的默认值(由 default 关键字定义)的列,或绑定到默认对象的列。? 绑定到规则的列。*/ 2.用如下语句对视图进行操作:create view 建视图;drop view 删除视图。/*创建一个is_student视图,视图中返回来自于表student中sdept=’is’的所有学生的sno,sname,sage列*/ create view is_student

as

select sno,sname,sage

from student where sdept=is /*删除is_student视图*/ drop view is_student 3.如下语句对索引进行操作:create index 建立索引;drop index 删除索引。/*创建一个stusname索引,在student 表中以sname列升序排列*/ create clustered index stusname on student(sname)/*删除student表中的stusname索引*/ drop index student.stusname

(二)实验方式与分组要求

老师先讲解十分钟,学生上机操作数据库sql server2000,最后老师检查操作结果。每次86组,每组1人。

实验五 sql语言的dml

(一)实验内容 1.启动数据库服务软件sql server 2000的查询分析器,用insert语句对表进行插入操作。/*将一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:is;年龄:18岁)插入到student表中*/ insert into student(sno,sname,ssex,sdept,sage)values(200215128,陈冬,男,is,18)/*学生张成民的信息插入到student表中*/ insert into student values(200215126,张成民,18,cs,男)/*对表student中每一个系,求学生的平均年龄,并把结果存入表dept_age表中。*/ 第一步:create table dept_age(sdept char(15), /* 系名*/ avg_age smallint)/*学生平均年龄*/ 第二步:insert into dept_age(sdept,avg_age)

select sdept,avg(sage)from student group by sdept 2.用update语句对表中已有的记录进行修改。/*将学生200215121的年龄改为22岁*/ update student set sage=22 where sno=200215121 /*将所有学生的年龄增加1岁*/ update student set sage= sage+1 /*将cs系全体学生的成绩置零*/ update sc set grade=0 where cs=(select sdept from student where student.sno = sc.sno)3.用delete语句对表中已有的记录进行删除。

第二篇:sql上机实验报告

实验一(2.20)

实验内容:熟悉sql server 2005

实验目的:掌握sql服务器的启动和停止方法、熟悉management studio 的操作界面和新建查询。

重点:使用数据库引擎启动数据库服务器、停止数据库服务;服务器的认识以及如何启动查询分析器

难点:无

实验操作:

1.使用数据库引擎启动数据库服务器:

开始->程序->microsoft sql server 2005->

sql server management studio->数据库引擎->服务器名称(选择)->连接。

2.分别打开数据库,安全性和管理文件夹查看文件内容。

3.点击新建查询建立一个查询窗口。

4.打开model数据库,查看其中的文件。

实验二(2.27)

实验内容:使用manegement studio和查询分析器创建数据表

实验目的:掌握创建数据表的方法

重点:学会使用查询分析器创建数据表

难点:字段数据类型的选择以及数据长度的定义

实验操作:

在basetest数据库中创建学生表,学生(sno,sname,ssex,sage,sdept)。其中sno,sname,ssex,sdept字

段数据类型设为char,长度为10;sage字段数据类型设为int!create table 学生

实验三(3.5)

实验内容:添加表的约束

实验目的:掌握使用alter table 语句修改表的时候添加表的约束

重点:为表添加主键外键约束

难点:为列设置列级完整性约束;使用sql语句为表设置外键。

实验操作:

1:为学生表添加主键约束pk约束,设置sno为主键

alter table 学生

add constraint pk约束

primary key(sno)

实验四(3.12)

查询

(一)实验目的:掌握Select语句的使用方法

实验重点:Select语句的语法结构

实验难点:连接查询

实验步骤:1.练习查找指定列的查询

2.练习查找经过计算的列

3.练习为查找字段设置字段别名

4.Where子句的使用

5.多表连接查询

实验五(3.19)

查询

(二)实验目的:掌握SQL语句的使用方法

实验重点:统计查询和嵌套查询和联合查询

实验难点:子查询的方法

实验步骤:1.1.Compute与Compute By的区别

2.子查询 In与Exsits的区别

3.比较运算的子查询

4.联合查询

5.OrderBy子句的使用

6.统计函数的使用

7.Group By 与Having的使用

实验六(3.36)

查询

(三)实验目的:掌握SQL语句的使用方法

实验重点:简单查询和统计查询和嵌套查询

实验难点:嵌套查询的方法

实验步骤:1.在student表中查询CS系学生信息,并产生一个总人数行

2.查询学生信息,统计总人数并对每个系产生一个学生总人数行

3.按系分组,并在每组下显示本系中年龄最大学生年龄

4.按系和性别分组并统计最大年龄和最小年龄

实验七(4.2)

实验内容:创建索引

实验目的:掌握创建索引的方法

重点:掌握索引的基本功能

难点:使用sql语句创建索引

实验操作:

1:使用manegement studio 创建索引

2:创建一表myfriend,所包含的属性列为(名字char(10),性别(10),地址(100)),并在该表上基于名字创建一个唯一聚集索引wj索引,索引的填充为100。

实验八(4.9)

实验内容:创建视图

实验目的:掌握创建视图的方法

重点:掌握视图的基本功能

难点:使用sql语句创建视图

1、在basetest数据库中创建一个MA系的学生信息视图

2、创建IS系女生选课信息,指定字段中文名

3、使用WITH CHECK OPTION子句创建男生信息视图

4、在CS系学生信息视图中查询女生的信息

5、修改cs系学生05008的年龄为21岁

实验九(4.16)

实验内容:流程控制语句与用户自定义函数的使用

实验目的:掌握流程控制语句与用户自定义函数的使用

重点:掌握自定义函数的创建

难点:表值用户自定义函数的创建

实验操作:

1:计算1+2+3+...+100的和

2:计算n!(n=10)

3: 查询是否有选修成绩高于90分的学生,有则输出该生信息,没有就输出“不存在选修成绩高于90分的学生。”

实验十(4.23)

实验内容:存储过程、事务及游标

实验目的:掌握存储过程、事务及游标的使用

重点:掌握存储过程的创建、事务创建及游标的使用方法

难点:带参数的存储过程的创建、游标的使用

实验操作:

1:创建存储过程ppa,能根据给定的‘系别’返回该系对应的学生的sno,sname,ssex 2:创建存储过程ppb,能根据给定的‘系别’统计该系的人数,并将人数输出显示!

第三篇:sql作业实验报告

实验报告—基本表的创建、查询及更新任务 实验日期和时间:

实验室:

班级:

学号:

姓名:

实验环境:

硬件:

软件:

实验目的:

本次实验的主要目的是…… 实验主要任务:(不够时另附页)一.建立各个表的 SQL 语句。

二.单表查询操作及(任选三题结果截图附上)。

三.多表查询操作其结果截图(任选三题结果截图附上))。

四.数据更新及其结果截图(最后附上四个基本表的数据截图)。

一.利用查询分析器在数据库 ShiYan 中建立以下四个数据表(S 表,P 表,J 表,SPJ表),并依次向各数据表中输入相应的数据记录。

(1)供应商表 S(NO,SNAME,STATUS,CITY)

SNO:表示供应商编号,定义其为长度为 4 字节的字符串类型。

SNAME:表示供应商的名称,定义其为最大长度为 20 字节的变长字符串类型。

STATUS:表示供应商的基本状况,定义其为短整数类型。

CITY:表示供应商所在的城市,定义其为最大长度为 30 字节的变长字符串类型。

要求:SNO 字段为表的主键,其属性值必须不重复且不允许取空值,SNAME 属性值不允许取空值。

SNO SNAME STATUS CITY S1 精 益 20 天津 S2 盛 锡 10 北京 S3 东方红 30 北京 S4 丰泰盛 20 天津 S5 为 民 30 上海 PNO PNAME COLOR WEIGHT P1 螺 母 红 12 P2 螺 栓 绿 17 P3 螺丝刀 蓝 14 P4 螺丝刀 红 14 P5 凸 轮 蓝 40

(2)零件表 P(PNO,PNAME,COLOR,WEIGHT)

PNO:表示零件的编号,定义其为长度为 4 字节的字符串类型。

PNAME:表示零件的名称,定义其为最大长度为 20 字节的变长字符串类型。

COLOR:表示零件的颜色,定义其为长度为 6 字节的字符串类型。

WEIGHT:表示零件的重量,定义其为实数类型且缺省值为 0。

要求:PNO 字段为表的主键,PNAME 属性值不允许取空值。

(3)工程项目表 J(JNO,JNAME,CITY)

JNO:表示工程项目的编号,定义其为长度为 4 字节的字符串类型。

JNAME:表示工程项目的名称,定义其为最大长度为 20 字节的变长字符串类型。

CITY:表示工程项目所在的施工城市,定义其为最大长度为 30 字节的变长字符串类型。

要求:JNO 字段为表的主键,其属性值必须不重复且不允许取空值,JNAME 属性值不允许取空值。

P6 齿 轮 红 30 JNO JNAME CITY J1 三

建 北京 J2 一

汽 长春 J3 弹 簧 厂 天津 J4 造 船 厂 天津 J5 机 车 厂 唐山 J6 无线电厂 常州 J7 半导体厂 南京(4)供应商-零件-工程项目关联关系表 SPJ(SNO,PNO,JNO,QTY)

SNO:表示为某工程项目供应零件的供应商的编号,定义其为长度为 4 字节的字符串类型。

PNO:表示某供应商为工程项目所供应的零件的编号,定义其长度为 4 字节的字符串类型。

JNO:表示正在被施工的工程项目的编号,定义其为长度为 4 字节的字符串类型。

QTY:表示某供应商为工程项目所供应的零件的数量,定义其为整数类型。

要求:SNO、PNO、JNO 属性值不允许取空值;SPJ 表的主键为 SNO、PNO 和 JNO 三属性的组合;SNO、PNO、JNO 均为外码,且 SNO 字段的取值参照 S 表中 SNO 字段的取值,PNO 字段的取值参照 P 表中 PNO 字段的取值,JNO 字段的取值参照 J 表中 JNO 字段的取值;QTY 属性值不能为空值,且 QTY 属性值限制在 1~10000 范围内。

SNO PNO JNO QTY

S1 P1 J1 200 S1 P1 J3 100 S1 P1 J4 700 S1 P2 J2 100 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J4 500 S2 P3 J5 400 S2 P5 J1 400 S2 P5 J2 100 S3 P1 J1 200 S3 P3 J1 200 S4 P5 J1 100 S4 P6 J3 300 S4 P6 J4 200 S5 P2 J4 100 S5 P3 J1 200 S5 P6 J2 200 S5 P6 J4 500 二、针对实验数据库 ShiYan,完成以下单表查询操作:

1.查询为工程 J1 供应零件的供应商号码 SNO。

2.查询为工程 J1 供应零件 P1 的供应商号码 SNO。

3.找出所有供应商的名称和所在城市。

4.找出零件的所有信息,以及仅找出零件的颜色和重量。

5.找出使用供应商 S1 所供应零件的工程号码。

6.找出为工程供应零件的总数量不低于 500 的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列。

7.从 J 表中分别检索出第 1 条及前 33%的工程项目信息。

8.统计 P 表中颜色为红色的零件的个数,并指定该查询列的名称为“红色零件数”。查询 P 表中各工程项目编号,名称及重量按 86%计算后的信息,其中重量按 86%计算后的查询列名改为“零件净重”。

10.查询 SPJ 表,要求查询结果式样为“供应商 S1 为工程项目 J1 供应零件 P1 的数量为300”。

11.查询 S 表 STATUS 值大于 20 且小于 40,或 SNAME 字段值的第一个字为“精”或第三个字为“益”或“民”的供应商信息。

12.查询 J 表中 JNAME 值为三建和机车厂的工程项目信息。

三、完成以下多表查询操作:

1.查询为工程 J1 供应红色零件的供应商号码 SNO。

2.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号 JNO。

3.查询至少选用了供应商 S1 所供应的全部零件的工程号 JNO。

4.找出工程项目 J2 使用的各种零件的名称及其重量。

5.找出上海厂商供应的所有零件号码。

6.找出使用上海产的零件的工程名称。

7.找出没有使用天津产的零件的工程号码。

8.找出重量最轻的红色零件的零件编号 PNO。

9.找出供应商与工程所在城市相同的供应商提供的零件号码。

10.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为 PNAME。

11.重复第 15 题,但不检索两个 CITY 值相同的三元组。

12.找出供应商 S1 为工程名中含有“厂”字的工程供应的零件数量总和。

四、针对实验数据库 ShiYan,完成下列数据更新操作:

1.在 S 表中插入元组“s6,华誉,40,广州,02085268888”。

2.在 J 表中插入元组“j8,传感器厂”。

3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库。

4.将 P 表中 PNO 值为 p6 的元组的 color 属性值改为绿,weight 属性值改为 60。

5.将 SPJ 表中前 4 个元组的 qty 属性值统一修改为 300。

6.将 S 表中 city 属性名含有“京”或“津”的相应 status 属性值增加 100。

7.将供应商 s2 为“一汽”工程项目所供应的零件数量修改为 2000。

8.将全部红色零件的颜色修改为浅红色。

9.由 s5 供给 j4 的零件 p6 改为由 s3 供应,请在数据库中作必要的数据修改。

10.在 SPJ 表中新增一列属性名为 SDATE 的属性列,对该表中的每一元组在 SDATE 属性列上填上实验当时的日期和时间。

第四篇:SQL实验报告

实验四触发器实验

(一)

after

触发器

(1 1)

在l l i neitem 表上定义一个 after 触发器, , 当修改列项目e e x tendedprice d i scount

x tax 时, , 要把 s orders 表得to o tal pri ce e 一起修改, , 以保证数据一致性

C RE ATE T RIGGER

trig _line ite m_ pr ice_ update on line it em fo r upda te

a as

begin i f(UPDATE(ex tend edprice)

o r UPDATE(tax)

or UPD AT E(di scou nt))begin

-— 声明游标变量指向 inserted 表

d eclare

cursor_inserted c urs or

rea d_only

o for select order key,linenu mber,exte nd edpr ice, dis coun t, tax

from

in ser ted

—-息信找查取获量变明声ﻩ 声明变量获取查找信息

de clare order key in t, @linenumb er

int,exte nd edprice

real,dis scount real,tax real

—-打开游标 epoﻩ en cursor_i ns ert ed

—-标游取读ﻩ 读取游标

fe tch

next

from cur sor _i ns erte d int o @o rderkey, @lin enumber,e ext ende dprice, @di scount,t ax

w whi le FETC H_S TATUS =0 nigebﻩ n

ﻩ —-声明一个变量保存重新计算得新价格 cedﻩﻩ ecl are @n ew_tota lpri ce

r eal

ﻩ select @n ew_t otal price= @ext en dedpr ice *(1 -@di scou nt)*(1 +@tax)

—-用新得总价格变量更新 orders 表得 t ot alprice puﻩﻩ update orde rs

se t tot alpri ce= new_totalprice where or derkey=orde rkey

en hctefﻩ ext f ro m cur sor_i nser ted int o @order ke y, @li nenum ber, @ex tende dp rice,discoun t, @tax

dneﻩllaedﻩ locate c ur sor_i nser te d e end end ﻩ(2)在 在 linei tem表上定义一个 aftr er 触发器, , 当增加一项订单明细时, ,自动修改 s orders 表得 total p rice, 以保证数据一致性

CREATE TR IGGER tri g_ lineit em_price_ in sert on l ine item f for inse rt

a s begin ——向指量变标游明声ﻩ 声明游标变量指向ins erted 表

de clare

c ursor_inse rted

cursor

read_ onl y

ﻩ for s ele ct orderkey,linenumbe r,ex te ndedp ric e,di scou nt,t ax

from ins serte d

--声明变量获取查找信息 edﻩ eclare @orde rk ey

int, @lin enumber int,e xten dedp rice

real, @discount

real, @ta x real -—ﻩ - 打开游标

open cursor_i ns erte d --ﻩ - 读取游标

fe tc h

nex t

f rom

cu rsor_ins erted

into

@o rd erkey,li nen umbe er r, ex ten ded pric e,dis count,tax ihwﻩ ile @@FE TCH_ STATU S=0 ebﻩ egin

-—格价新得算计新重存保量变个一明声ﻩﻩ 声明一个变量保存重新计算得新价格

cedﻩ clare @n ew_tot alprice real

celesﻩ ct new _to ta lprice= @extend edp rice *(1-d is count)*(1+tax)—-新更量变格价总得新用ﻩﻩ 用新得总价格变量更新orders 表得totalpri ce

ﻩ u pda te

or ders s et

t ota lpric e=total pric e+ @new_ tota lpr ice w wh he re o rderke y=orderkey

tefﻩ etch next from cursor_ ins erte d into o rder key, @l inen umber,e xtended dp ric e, @disc ou nt, @t ax

e end aedﻩ deall oca te cu rsor_in serted en d

(3)

在l in e ite m表上定义一个a ft er触发器, , 当删除一项订单明细记录时, ,自动修改 orders 表得 tot a lprice, 以保证数据一致性

CREATE TRI GG ER trig _line item_price_de let e

on line item fo r de let e

A AS begin

--声明游标变量指向delet ed 表

de clar e curso r_d eleted cursor

re ad _on ly

es

rofﻩﻩ ele ct ord erk ey,line numbe r,extende dp rice,discoun t, tax

from

del eted -ﻩ -- 声明变量获取查找信息

declare ord erkey int,linenum be r

int,extendedp ri ce r eal,discou nt real,ta x real -—ﻩ -

打开游标 epoﻩ en c urso r_ deleted

——标游取读ﻩ 读取游标 efﻩ etch next fr om cur sor_delete d in to

order ke y,l inenumb er,ext end dedprice, @di scoun t,tax

wh ile @FETCH_STATUS=0

begi n

-— 声明一个变量保存重新计算得新价格

ﻩ declare @ne w_ to talpric e real

ﻩ s selec t @new_t otalpr ice= @exte nde dpri ce*(1-@disco unt)*(1+ tax)

-ﻩ -— 用新得总价格变量更新orders 表得tot alp rice uﻩﻩ upd ate

orders set t otalpri ce=to talpr ice-@new _totalp rice wh er e order key= @ord erkey

fetch

n ext f rom cursor_inse rt ed in to orderkey, @line numbe r,extende ed dprice, @d iscou nt,t ax dneﻩ nd

d deal lo cat e cur sor_inse rted e end((4 4))验证 up d at e触发器

— -查瞧 号订单得 to ta a l pr i ce

selec t

fro o m

o o r ders where

orde r key=1 8 30;

— -查瞧明细表得相关信息

se l ect *

f ro m

lin ei i te e m

w here or de e r key=183 0

and l ine num m be e r =1;

—— 验证 e update 触发器

updat e

lineitem set t ax=tax+0、05

whe re orderkey=1830;

(二)

i i n stead

of

触发器

((1))

在 在 lineit em 表上定义一个ins tead o f upda te触 发器, 当修改明细表中得数量 量quan ti ty 时, 应先检查供应表par tsupp 得av ai lqty 就是否足够, 不足够则拒绝执行, 否则执行并修改相应数值以保证数据一致性 于 由于 in stead

of 触发器更新某个表会使得该表上其她不满足更新列不能更新,因 因用 此逆向思维使用 a fter 触发器实现相同效果 即先更新 qu antity, 再比较av ailq qt ty, 如果满足更新数量, 就修改partsupp 得 表得 a vailqty, 如果不满足, 则把lineitem得quantity 更新之后得数据重新修改回来 c create trigge r trig_lin eit em_quanti ty_ upda te

on

li neit em f or upda te

as begin if UPDATE(qu ant ity)b begin ——向指别分量变标游明声ﻩ 声明游标变量分别指向 i nserted 表与 d el eted 表 edﻩ declare c urso r_inser ted

cur sor

r ead_on ly

for

tcelesﻩﻩ t

orde rkey, partk ey,s uppkey,lin enum ber, quantit y fr om i nserted

decl are

cursor_de leted c urs or

rea d_ onl y

f or select quantity

fr om deleted

-—息信找查取获量变明声ﻩ 声明变量获取查找信息

decl are

@qu an tity _dif f_lineitem i nt,q uanti ty_pa rtsup p i nt cedﻩ clare suppkey int, @par tke y in t,o rd erkey i nt,unenilﻩﻩ um ber int ,qty _inserted in t , @qty_delete d int

-- 打开游标 ruc nepoﻩ rsor_in sert ed poﻩ open cur sor_d eleted

-—量变给赋值数标游取读ﻩ 读取游标数值赋给变量 fﻩ fet ch next from

cu rsor_ insert ed

ﻩ i into or de rk ey,pa rtkey, @suppk ey, @line nu mber, @qty _ins erte d

f et ch

next from

cursor _d eleted

int o q ty _de lete d

whi le fe tch_st atus=0 gebﻩ egin

--计算订单明细修改时, 订购数量得变化值 inserte d表项-d elet ed表项

s sel ect quantity_d if f_ li neit em= @q ty _in se rte d—@ @q ty_delete ed

ﻩ --从parts upp 表获取ava ilq ty值, 注意partsupp 表得主键为(partk ey,suppke ey)tcelesﻩﻩ t @quanti ty_p ar tsupp =av ailq ty fro m pa rtsu pp

wﻩﻩ wh er e suppkey= suppke y

and part key= @par tk ey

-—断判始开ﻩﻩ 开始判断

gebﻩ begi n

fiﻩ f quant ity _d iff_ lin eite m=0

ﻩ p rin t “ 更新得数量与原表中得值相同, 不需要更新”

e ls e if @quantit y_d iff_lin eitem 〈=q uantity_partsupp

be gin

ﻩ puﻩﻩ pd ate partsupp

s et avail qty= availqty-@qua ntit y_d iff_li ne item

ﻩ pus erehwﻩ ppkey=suppkey

and

p artkey= @par tke y

ﻩ p rint “ 两个表都更新成功’ ﻩ

ﻩﻩneﻩ nd

els e

igebﻩﻩ in

ﻩ uﻩﻩ update li nei tem

set

quantit y=quantity+ @quanti ty_diff_linei tem

whe re o rd erke y=@orde rke y and li nenu mber= @li ine number

p ri nt '更新失败”

ﻩﻩ end

ﻩ e nd efﻩﻩ etch ne xt

fr om c urso r_i nserted

i nto @ord erke y, @partkey,s upp key, @linenumb er, @qt y_ ins ert ed

f etch ne xt from curso r_de leted into @qt y_d elet ed dneﻩ nd

d eallocat e cur sor _i nserte d

dealloc at e cursor_de le ted e end e end(2)在 在 l ineite m表上定义一个 instea d of in sert 触发器, 当插入明细表中一条记录 时 时, 应先检查供应表par tsupp 得 得 ava il qt y就是否足够 qu anti ty 得数量 c rea te t rig ger tri g_lineitem_q ua nti ty_ insert

on

line item i instead of inser t as b begin

-— 声明游标变量指向 inserte d表

d eclar e cur sor_inserte d cur sor

rea d_ only f or

sﻩﻩ select or derk ey,pa rtkey,sup pk ey, lin en umber,q uantity

f rom ins er ted

-—

声明变量获取查找信息

dec lare quantity int, @av ailq ty i nt, @suppkey

in t, @partkey

in nt t, @o rderkey int, @linenu mber int

-—标游开打ﻩ 打开游标 c nepoﻩ curs or_ins erted -ﻩ -— 读取游标

f etc h next fro m cursor_insert ed int o @orde rkey,partkey,@ @s suppkey, @linenumber,qu antity

wh ile @@FETCH_S TATUS= 0 igebﻩ in

--为变量赋值

a tcelesﻩ availqty y

= =av ai lqt y fr om

partsupp

wﻩ whe re suppkey =@su ppk ey and part ke y= partke y

ﻩ if @quant ity 〈= @avail qt y

-— 如果可以更新

bﻩ begin /ﻩﻩﻩ /*将 将 insert ed 表中得记录插入到明细表*/

ﻩ sniﻩ sert

i nto l ineite m select *

from i nserted

ro=yekredro

erehwﻩﻩ rderk ey and

linenumb er = @linenumber */ﻩﻩ新更时同ﻩ *同时更新 part supp 表得数量*/

ﻩﻩ u upd ate pa rtsup p set a vailqty=availqty-@quanti ty

erehwﻩ e sup pke y= @sup pkey and partkey=part key

p pr int ’pa arts upp 表有足够得货物可以满足 lin eitem 得quan tity y, 插入成功’

end

else

begin

ﻩﻩ p rint t

' 'pa rt sup p表没有足够得货物可以满足 l ineitem 得 得 q uantity,插入失败’

dneﻩfﻩﻩ fetc h next from curso r_ins ert ed in to @ord erkey, partkey, suppkey, @li inenumbe r, qu antity eﻩ en d

deall ocat e cursor_ inserted end(3)在 在 line ite m表上定义一个 inste ad of del ete 触发器,当 当 删除 明细表中记录 时 时, 同时改变表 供应表 partsupp 得ava il qty y 数值 c re ate trigge r tri g_ lin eit em_quanti ty_ del ete o n line item inste ad of del ete as be gin

—-声明游标变量指向deleted 表

de cla re curs or_ del eted c ursor

read _only for

lesﻩﻩ elect or derke y, par tkey,sup pkey, linenumbe r,quan tity fr om deleted -ﻩ --声明变量

decl are s upp key i nt, par tke y

int, @orde rkey int,linen umb er

int, @qua ant it y int

—-标游开打ﻩ 打开游标

open

cursor_deleted

-—标游取读ﻩ 读取游标

f fetch next fr om

curs or _del et ed

in to @ord erkey , @partkey,s uppke ey, @lin en umber,q ua ntity

whi le

F FET CH_ STATUS=0 igebﻩ in

*/*除删ﻩ *删除*/

ﻩ de let e from

lineite m where linenu mber= line number and o rde rkey =ord der key

*/新更时同ﻩ 同时更新 pa rt supp 表得数量*/

u pdate

parts upp se t

availqt y=a vai lq ty+quant ity

ﻩ where s uppke y= @s uppkey a nd par tk ey= @p ar tkey

ﻩ p rin t

’ 删除成功, 并且已经把货物数量归还到 p ar tsup p里“ fﻩﻩ fetc h ne xt fr om

curso r_del eted

into @ord er ke y,p ar tkey,@ @suppkey, @lin enu mber,quanti ty neﻩ nd edﻩ ea lloc ate cursor_ delete d end(4)验证 update 触发器--查瞧li neit em 得quan tit y select *

fr om

lin eit em whe re or derk ey =1830

and li nenum ber=1;

—— 查询partsupp 表得ava ilqt y se lect * from part supp w here suppk ey =(select

supp key fr om

lin e

item w here ord erkey=18 30)

and partk ey

=(s elec t part key from lin eite m wh er e

order key =18 30 a nd linenu mber=1)

---更新数量过大

—— 更新得值与原值相同

---更新到+ + 2 00 数量, , 成功

update

li neitem set

quant ity

=q uanti ty+ 200

where order key=1830

and lin en umber = 1;

--更新 +2 00 成功后l ineite m得 quanti ty y 变化

—— 更新+200 成功后par ts upp 表得a va ilqty 变化

实验到此。所有创建得触发器结果

删除触发器

dr op trigger tri g_li nei tem_de lete;实验六存储过程实验

(1 1)

定义无参数 得存储过程并执行

更新所有订单总价

goﻩ

CREATE

PROCED URE Pro c_Ca lTotalP ri ce

AS BEGIN

up date

o rders set to talprice =

(sele ct sum(exte ndedprice*(1-discount)*(1+ tax))

ﻩ fr om li nei tem

erehwﻩ orders、orderkey= li neite m。o rderke y)END

go 执行此存储过程

exec P ro c_CalTotal Pric c e;;

(2 2)

定义有参数得存储 过程并执行

更新给定订单号得总价

g go create pro cedu re P ro_Cal TotalP rice 4Ord er @id_ order

intege r a as be gin

u up date e

o orders set total price=(lesﻩ lect SU M(ext en ded price*(1 -di sc ount)*(1 +tax))

ﻩ fr om li neit em

ﻩ whe re

orde rs。or derke y=lin eite m。orderkey)end g o 执行此存储过程 exe c P ro_ CalTota lPr ice 4Order @id_ order=2;((3))

定义有局部变量得存储过程 更新某一个顾客所有订单得总价 g o cr eate

procedure Proc_Ca lTot alPr ice4Custo me r n ame _cus to mer varc har(50)as

dec lare cus tk ey _c usto mer i nt b egin tcelesﻩ t

cus tke y_cu stomer=cu st key

from

cu sto mer

where name _customer =RTRI M(n ame)

u pdate order s set to talp ri ce=(tcelesﻩﻩ t S UM(exte nde dp rice *(1 -dis count)*(1+tax))rfﻩﻩ rom li neite m

wﻩ wher e orders、order key=lineitem。or derke y

ﻩ and

o rde rs、cust key= @c ustkey _cust omer)ﻩe nd go 执行此存储过程

e xec Pro c_CalT ot alPr ic e4C ustome r name_custom er=” 艾锦亮’;查瞧结果 u pdate

linei te m set

ex tende dpric e=1 00 , ta x=0.25 where orderkey=“1 830’;s elect * from

l ineite m

w here order key ='183 0’;

s elect * fr om or ders wh ere custke y=(sele ct cus tk ey from custo mer whe re name=’ 艾锦亮’);

(4)

定义一个带输出参数得存储过程 更新某个顾客得所有得订单总价, 并输出总价 go crea te proc edure Proc_C alT otalP ri ce4Custo me r2

na me_ cu st ome r va rch ar(50), totalpr ice_ord er real out put

as —— 声明一个变量存储 name 对应得顾客编号 d eclar e @c us tkey _cus tomer integer

—— 为该变量赋值

se lec t c ustke y_cu sto mer =cu stkey

from cus tome r w here n ame_ customer=R TRIM(n ame)begi n -ﻩ -- 更改订单总价

up date

o rd ers

set t otalp rice=(se lec t SUM(ext endedprice*(1-dis count)*(1+tax))

fﻩ fr om l in eitem rehwﻩﻩ ere

orders。o rderk ey=li neit em.ord erk ey、sredro dnaﻩ、c ustkey =@custkey_ custome r)

-— 为返回变量赋值

select

totalprice_order=total pri ce fro m orders

ﻩ w here custk ey= @c ustkey_c ustom er

e nd go —-执行带有输出参数得存储过程要声明输出参数变量 declare t otalp rice re al;exe c Proc_ Cal Tota lPrice4C ustomer2

” 艾锦亮 ', @to talpri ce

output;--在屏幕上输出返回值结果

selec t t otalpri ce;

实验到此, , 所有结果显示

(5 5)

修改存储过程名

exec sp_renam e ’Pr o_Cal TotalPrice4Ord er",’C alTotalPr ice4 Or der';

(6)编译存储过程

exe c sp_ re compile ’CalTotalPric ce 4Order’;

(7)删除存储过程

d drop

proc edure CalT otalPric e4Orde r;e exe c sp_h elptext CalT ot alPrice4 Order;

第五篇:SQL数据库系统_实验报告2

实验时间:2014年4月1日

实验名称:数据库表的管理与查询语句

实验目的:

1、熟练掌握数据表的创建、修改和删除方法

2、熟练掌握表中数据的插入、修改、删除和查询方法

3、熟练掌握SQL语句的使用方法

4、理解数据表的约束及其使用

实验原理:

数据库是保存数据的集合。表是数据的集合,由行列构成,行又被称为记录,列被称为字段。SQL全称是Structured Query Language,其主要有功能有:创建数据库并定义表的结构、查询需要的数据、更新或者删除指定的数据、管理数据库。

仪器与材料:

装有Windows操作系统的PC机一台,SQL Server安装包ISO镜像

实验步骤:

1、加载示例数据库,查看示例数据库及内部的数据库表结构

2、向“学生基本信息表”中添加“出生日期”字段

3、删除“学生基本信息表”中“年龄”字段

4、删除表“教师基本信息表”

5、向“学生基本信息表”中添加5条记录

6、修改“学生基本信息表”中学号为3的学生的姓名为“张三”

7、删除“学生基本信息表”中姓名为“李四”的学生信息

8、查询“学生基本信息表”中所有学生的所有信息

9、查询“学生基本信息表”中所有男生信息

10、查询“学生基本信息表”中所有19岁以上学生信息

11、查询“学生基本信息表”中所有姓“张”的学生信息

12、查询“学生基本信息表”中所有选修103号课程的学生信息

实验记录:

1、加载示例数据库,查看示例数据库及内部的数据库表结构

2、向“学生基本信息表”中添加“出生日期”字段

„„

3、删除“学生基本信息表”中“年龄”字段

„„

4、删除表“教师基本信息表”

„„

(以下略)

讨论及问题回答:

尝试查询所有选修了“SQL数据库系统”并且成绩优秀的学生信息。

下载SQL实验报告总结word格式文档
下载SQL实验报告总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    SQL数据库系统_实验报告45篇

    实验四 实验时间:2014年4月29日 实验名称:T-SQL、存储过程、触发器 实验目的: 1、掌握T-SQL常量、变量、运算符、表达式、函数的使用方法 2、掌握T-SQL流程控制语句使用方法 3......

    数据库实验报告 SQL语言

    数据库原理及实验报告 实验6 视图 实验目的:1)掌握交互式创建、删除视图的方法 2)掌握使用SQL创建、删除视图的方法 3)掌握交互式更新视图的方法 4)掌握使用SQL更新视图的方法 实......

    SQL数据的定义实验报告

    实验1、数据定义班级:计自班姓名:学号:1、实验目的熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。2、实验内容l用SSMS创建数据库University_M......

    sql实验报告6[5篇范例]

    闽 南 师 范 大 学 实 实 验 报 告 告班级14 计本高一班 学号 1408200104 姓名 林强成绩同组人实验日期 2014.10.28 课程名称:MS SQL 程序设计 实验题目:利用控制流语句编程......

    SQL数据库实验报告 实验二

    实验2SQL Server数据库的管理 1.实验目的 (1)了解SQL Server 数据库的逻辑结构和物理结构的特点。 (2)掌握使用SQL Server管理平台对数据库进行管理的方法。 (3)掌握使用Transact-S......

    SQL总结(精选合集)

    1.SQL语句的With cte as用法: with as短语,也叫做子查询部分。即定义一个SQL片断,该片断会让整个SQL语句所用到。 eg: with cr as (select CountryRegionCode from person.Count......

    实验一 SQL SERVER 2008入门实验报告

    实验一 SQL SERVER 2008环境 一、实验目的 1、了解SQL SERVER 2008的安装过程中的关键问题; 2、掌握通过SQL Server Management Studio管理数据库服务器、操作数据库对象的方......

    SQL语句经典总结

    SQL语句经典总结 一、入门 1、说明:创建数据库 CREATE DATABASE database-name2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device......