数据库实验六

合集下载

数据库实验六-综合实验

数据库实验六-综合实验

实验六数据库原理综合实验1实验目的(1)运用所学的数据库设计技术,针对一个具体的应用系统,完成系统数据库的概念模型、逻辑模型和物理模型的设计。

以巩固理论课程上所学的知识,更好地掌握数据库设计技术方法。

(2)对前面章节所学的知识加以综合应用。

2实验内容给定一个应用环境,如学生选课系统、超市管理系统、某企业库存管理系统、学校图书管理系统、学校综合积分管理系统等等。

(同学们课从上述选定一个题目,也可以选取一个自己较熟悉的应用环境)。

完成下面的工作2.1 数据库概念模型设计(1)进行需求分析。

-对系统的语义进行描述(包括功能、所需的数据及他们之间的关系和处理方法)(2)识别系统中的实体及实体的属性,分析实体之间的联系。

(3)设计数据库概念模型,画出E-R图。

2.2 数据库逻辑模型设计(1)根据数据库概念模型设计数据库的逻辑模型。

-将E-R模型转化到逻辑模型(2)根据应用需要和规范化理论对逻辑模型进行优化。

2.3 数据库物理模型设计(1)针对某种DBMS,设计数据库物理模型,包括表空间、表和索引等于物理存储有关的设计。

(2)优化物理模型(3)生成某种DBMS的SQL语句,创建数据库及其表。

2.4 装载数据(1)收集真实数据或者生成模拟数据。

(2)批量加载数据到数据库中。

(3)设计一系列SQL语句,尤其是连接查询、嵌套查询等SQL语句,已测试数据库性能。

3实验要求(1)可以借助POWERDESIGNER等系统分析与设计辅助工具进行数据库设计,也可以使用WORD文件直接生成各种设计文档。

(2)选择的数据库应用系统应该规模适中,不宜太大太复杂,可能做不完;也不宜太小太简单,甚至仅有三两个表组成。

(3)要设计良好的数据库完整性约束。

(4)思考题:数据库设计通常由哪些辅助工具?各有哪些优缺点?4实验步骤4.1 数据库概念模型设计(1)进行需求分析。

(2)设计数据库概念模型,画出E-R图。

4.2 数据库逻辑模型设计(3)根据数据库概念模型设计数据库的逻辑模型。

数据库技术实验六

数据库技术实验六

课程名称数据库技术实验成绩实验名称存储过程和触发器的使用学号XX 班级日期实验目的:1.掌握存储过程的使用方法;2.掌握触发器的实现方法;实验平台:利用RDBMS(SQL Server 2008)与其交互查询工具(查询分析器)来操作T-SQL语言;实验内容:1.存储过程(1)创建存储过程,要求当一个员工的工作年份大于6年时将其转到经理办公室工作。

alterprocedure yuangong_infolEmployeeID char(6),name nchar(20)asbegindeclare year intset year=(select WorkYearfrom Employeeswhere EmployeeID=EmployeeID)declare DepartmentID char(3)set DepartmentID=(select DepartmentIDfrom Departmentswhere DepartmentName=name)if (year>6)update Employeesset DepartmentID=DepartmentIDwhere EmployeeID=EmployeeIDEndexec dbo.yuangong_infol'000000','经理办公室'(2)创建存储过程,根据每个员工的学历将收入提高500元。

alterproc SA_INenu char(6)asbeginupdate Salaryset InCome=InCome+500from Salary,Employeeswhere Employees.EmployeeID=Salary.EmployeeID and Education=enuendselect InComefrom Salary,Employeeswhere Salary.EmployeeID=Employees.EmployeeID and Education='本科'goexec dbo.sa_in'本科'goselect InComefrom Salary,Employeeswhere Salary.EmployeeID=Employees.EmployeeID and Education='本科'select InComefrom Salary,Employeeswhere Salary.EmployeeID=Employees.EmployeeID and Education='本科'(3)创建存储过程,使用游标计算本科与以上学历的员工在总员工数中的比例。

数据库原理与应用实验6(二版)

数据库原理与应用实验6(二版)

数据库原理与应用实验6(二版)实验六 T-SQL数据库单表查询一、实验目的及要求本实验主要目的是让学生通过本实验掌握基于一个表的SELECT语句的使用语法及使用规则,并能运用各种常用的查询方式及其形式。

●掌握SELECT语句的基本语法结构。

●掌握SQL语句中基于一个表的SELECT语句的使用规则和方式。

●能正确设置各种常用查询条件。

●掌握分组汇总查询的使用。

●要求学生不但写出语句,而且要执行语句,得到结果。

二、实验原理及背景知识1、了解SQL中SELECT语句的基本使用方式。

详情参考第一篇第三章。

2、理解关系代数中投影运算和选择运算的概念及原理。

简单来讲,SELECT实现的是投影,where实现选择运算。

3、实验前需要了解所使用的数据库中表的结构。

4、实验前需要在stuManag数据库中输入模拟数据。

三、实验内容及步骤Ⅰ:基本实验内容(一)输入下面的查询语句,执行后验证实验结果1、查询100165专业的学生的学号、姓名、性别和出生年月信息SELECT sno,sname,ssex,sbirthFROM studentWHERE mno=‘100165’2、查询职称不是教授的所有教师的全部信息SELECT *FROM teacherWHERE trank< >‘教授’3、查询不姓陈的学生学号和姓名信息SELECT sno,snameFROM studentWHERE sname NOT LIKE ‘陈%’4、查询100165专业中1991年之前出生的学生的学号、姓名、性别及出生年月信息SELECT sno,sname,ssex,sbirthFROM studentWHERE (mno=‘100165’) AND (sbirth <‘1991/01/01’)5、查询所有学生的序号、姓名及年龄信息,其中年龄由出生年月转换得到SELECT sno,sname,CAST((GETDATE()-sbirth)AS int)/365 AS ‘年龄’FROM student6、查询所有学生的学号、姓名、性别及出生年月信息,按照专业号升序、出生年月降序排列SELECT sno,sname,Ssex,sbirth,mnoFROM studentORDER BY mno,sbirth DESC7、查询091650102同学的所有课程的平均分、最高分和最低分SELECT AVG(grade) AS 平均分,MAX(grade) AS 最高分,MIN(grade) AS 最低分FROM skcWHERE sno=‘091650102’(二)输入下面查询语句,然后运行,根据结果思考并记录其功能1、SELECT *FROM skcWHERE Grade between 80 and 85功能:_________________________________________________2、SELECT count(*) as ‘0916501班人数’FROM studentWHERE sno like ‘0916501%’功能:_________________________________________________3、SELECT COUNT(*) AS ‘信管专业女学生人数‘FROM studentWHERE mno=‘100165’ AND ssex=‘女’功能:_________________________________________________4、SELECT DISTINCT SUBSTRING(sname,1,1)FROM student功能:_________________________________________________5、SELECT sno,sname,ssex,mnoFROM studentWHERE mno IN (‘100165’,’201148’,’100838’)功能:_________________________________________________6、SELECT sno,snameFROM studentWHERE sname LIKE ‘[陈李]%’功能:_________________________________________________7、SELECT kno,avg(Grade ) as ‘平均分’from skcWHERE sno like ‘09165%’GROUP BY kno功能:_________________________________________________(三)阅读并分析下面查询语句,根据其功能,补全语句之后进行验证1、查询0916502班超过5人选修的课程选修人数及平均分。

数据库实验报告(7个实验完整附截图)

数据库实验报告(7个实验完整附截图)

福建农林大学计算机与信息学院实验报告课程名称:数据库原理及应用姓名:系:计算机科学与技术专业:计算机科学与技术年级:2012 级学号:指导教师:***2014 年5月18 日实验项目列表实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 6.0 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL 语句和进行结果分析。

二、实验环境:硬件:PC机软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.0三、实验内容和原理:1、安装MySQL以及相应的GUI工具2、用SQL命令,建立学生-课程数据库基本表:学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept);课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit);选课SC(学号Sno,课程号Cno,成绩Grade);要求:1) 用SQL命令建库、建表和建立表间联系。

2) 选择合适的数据类型。

3) 定义必要的索引、列级约束和表级约束.四、实验步骤:1、运行Navicat for MySQL,然后进行数据库连接,进入到GUI界面;2、利用图形界面建立基础表:student 表的信息:course表的信息:sc表的信息:字段名类型长度约束条件Sno varchar9非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4Grade smallint6非空、主键、与course表中Cno外键关联(1)连接数据库,在 localhost 中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。

数据库实验六报告

数据库实验六报告

实验项目SQL Server 2000中数据库完整性约束触发器设置所属课程数据库原理实验目的1)熟悉通过SQL对数据进行完整性约束触发器控制。

2)完成作业的上机练习。

实验环境SQL Server 2000 window XP实验内容要求:在SQLSERVER2000中利用SQL语句完成以下操作。

1)通过SQL对表建立完整性约束。

2)通过SQL创建插入触发器。

3)通过SQL创建删除触发器。

4)通过SQL创建更新触发器实验过程1)复制生成xscj数据库的代码并运行。

2)为student表的年龄字段增加名为Checkage约束条件,限制年龄介于15到25之间。

3)为student表建立触发器Sinsert,如果student表中插入一条记录,则取消插入并提示错误。

4)为student表建立触发器Smodi,如果student表中某一学生年龄加1,则SC表中该学生的各门成绩都加15)为student表建立触发器Sdel,如果student表中某一学生删除,则SC表中该学生记录也删除。

实验结果及分析1.首先打开SQL查询分析器,复制生成xscj数据库的代码并运行实验操作步骤通过SQL Server 2000软件运行后所得截图如下:2:新建约束条件checkage:3:测试sinsert触发器:4.建立触发器Smodi:运行smodi触发器,当学好为2002151121的学生的年龄加一,sc表中,该同学的成绩加1.5:创建触发器sdel:运行sdel触发器,如图,删除学号为2002151121的在student表中的学生记录,相应的SC表中的记录也删除了。

实验心得总结通过这次的实验,我熟悉掌握了通过SQL对表建立完整性约束,了解了创建插入触发器,更加深入地学习了数据库的一些知识,充分地运用SQL软件的功能。

在为student表建立触发器Sdel,如果student表中某一学生删除,则SC表中该学生记录也删除的过程中存在着很多困难,多次运行失败,我通过查询资料以及翻阅课本知识,深入了解触发器的一些知识,对问题有了一些头绪,能够运行成功,基本解决的这个问题。

数据库 实验报告(实验六)

数据库 实验报告(实验六)

沈阳工程学院学生实验报告(课程名称:数据库原理及应用)实验题目:数据库设计班级软件本111 学号2011417104姓名吴月芬日期2012-11-27地点F606 指导教师孙宪丽祝世东一、实验目的利用PowerDesigner,熟练掌握数据库设计的步骤和方法。

二、实验环境安装能进行PowerDesigner操作的微机。

三、实验内容与要求工厂物资管理系统数据库中涉及到仓库、零件、供应商、项目和职工信息存储。

具体如下:(1)仓库包含属性仓库号、面积、电话号码,本实验涉及的属性数据类型和长度自己确定。

(2)零件包含属性零件号、名称、规格、单价、描述。

(3)供应商包含属性供应商号、姓名、地址、电话号码、帐号。

(4)项目包含属性项目号、预算、开工日期。

(5)职工包含属性职工号、姓名、年龄、职称。

在工厂物资管理系统中一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,用库存量来表示某种零件在某个仓库中的数量;一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作;职工之间具有领导-被领导关系,即仓库主任领导若干保管员;一个供应商可以供给多个项目多种零件,每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,同时记录某个供应商供给某个项目的零件数量。

进行此工厂物资管理系统的数据库设计。

具体要求:(1)在CDM工作区中设计出给定的概念模型,检查合理性。

(2)自动产生物理模型,检查是否正确。

(3)自动产生数据库中的表。

四、实验过程及结果分析1.进入PowerDesigner2.选择“Welcome to PowerDesigner”窗口中的“Create Model”选项或选择“File”/“New”,或单击,打开“New Model”窗口,点击“Model types”,选择“Conceptual Data Model”。

3.单击“OK”,进入CDM工作区。

4.添加实体,设置属性.同样的方法完成其他的实体的建立。

数据库实验报告(6)

数据库实验报告(6)

数据库实验报告(6)一实验题目1.存储过程的定义和使用2。

触发器的创建和使用二实验目的1.掌握存储过程的定义、执行和调用方法。

2.掌握触发器的创建和使用。

三实验内容1.存储过程的定义和使用(1)创建存储过程查找姓李的学生的选修课成绩信息。

(2)创建一个存储过程,计算每个学生选修课的总分,并显示得分最高的三名学生的分数。

(3)创建一个存储过程以查找课程的最高分数(带有输入参数的存储过程)。

(4)创建一个存储过程来计算同学的平均分数并返回统计结果。

(带输入和输出参数的存储过程)(5)创建一个存储过程,计算选修课的数量,然后返回数字。

(6)用存储过程统计选修课,用存储值最多的学生。

(存储过程的嵌套)2.触发器的创建与使用(1)如果学分大于5,在为表格C插入新课程信息时,定义行前级别的触发学分uu触发器分,自动修改为5分。

(2)定义行后级别触发器。

当SC表的等级发生变化时,它将自动出现在等级变化表SC_uu增加日志中加一条新的纪录,该新纪录包括:操作者名称、操作日期、操作类型。

(3)建立一个delete触发器,针对于sc表,每次只能删除一条信息。

(4)创建不允许用户更改学号的更新触发器。

如果学生号被更改,将给出提示信息:学生号不允许更改。

(5)执行相应的SQL语句来触发上面定义的触发器。

(6)删除触发信用触发四实验步骤1.存储过程的定义和格式:createproc[edure]procedure_name[;number][{@parameterdata_type}[变化][=默认值][输出][with[用于复制]assql_statement[...n]创建存储过程以查找姓李的学生的选修课分数信息。

(1)创建存储过程,统计每个学生的选修课的总成绩,显示成绩最好的前3名学生成绩。

SC表的基本信息如图1所示:图表1代码:createprocp_sumscoreas从SCGroupByNo中选择Top 3Sum(成绩)作为总分execp_sumscore运行结果:命令已成功完成。

实验六答案数据库综合查询[精品文档]

实验六答案数据库综合查询[精品文档]

1、查询以‘DB_’开头,且倒数第三个字符为‘s’的课程的详细情况select*from coursewhere cname like'DB\_%s__'2、查询名字中第二个字为“阳”的学生姓名和学号及选修的课程号、课程名select student.sno,student.sname,o,cnamefrom student,course,scwhere sname like'_阳%'and student.sno=sc.sno and o=o 3、列出选修了‘数学’或‘大学英语’的学生学号、姓名、select student.sno,sname,sdept,o,cname,gradefrom student,sc,coursewhere student.sno=sc.sno and o=o andsc.sno in(select sc.sno from sc,course where (cname='大学英语'or cname='数学')and o=ogroup by sc.sno)select student.sno,sname,sdept,cno,gradefrom student,scwhere Cno in(select Cno from coursewhere cname='数学'or cname='大学英语')and sc.sno=student.sno4、查询缺少成绩的所有学生的详细情况;select*from student,scwhere Grade is null and student.sno=sc.sno5、查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;select*from studentwhere sage<>(select sagefrom studentwhere sname='张力')6、查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩select student.sno,sname,平均成绩=AVG(grade)from student,scwhere student.sno=sc.snogroup by student.sno,snamehaving AVG(Grade)>(select AVG(Grade)from sc,student where sname='张力'and student.sno=sc.sno)7、按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。

数据库原理实验六 ODBC和JDBC数据库编程

数据库原理实验六 ODBC和JDBC数据库编程

《数据库原理》实验报告题目:实验六ODBC/JDBC数据库编程学号姓名班级日期2016.10.27一、实验内容、步骤以及结果1.ODBC配置以及程序调试:(50分)(1)配置一个ODBC数据源,要求数据源名称:student,其中包含s(学生信息)表。

打开运行-〉输入odbcad32.exe,确定-〉在ODBC数据源管理器,点击“添加”(2)阅读并运行实验给出的例子程序,理解ODBC编程,要求简单写出自己对这段程序的理解或者流程图,并且请给出程序运行结果示例图。

因为该MFC项目是一个窗口项目,窗口加载时调用的是ODBC_TESTDlg.cpp中的OnInitDialog给窗口中各个输入框赋初值。

在在点击执行按钮时运行函数OnButtonExcute。

在这个函数中完成数据库连接,执行SQL语句的一系列过程。

1.新建变量并初始化。

分配语句句柄。

2.连接数据库3.执行SQL语句4.结果集处理:循环显示select的结果。

5.断开数据源,释放相关的句柄。

2.参考给出的ODBC编程示例,使用ODBC技术,编写一个简单的程序,包含对数据库SPJ的连接,查询,插入,修改和删除。

(50分)打开运行-〉输入odbcad32.exe,确定-〉在ODBC数据源管理器,点击“添加”修改程序,使其支持对SPJ表的查询:将语句文本框改为可写的,以支持其他语句。

查询:插入:修改:删除:3.用JDBC实现对数据库student的连接,查询,插入,修改和删除。

(选做实验) 添加sqljdbc的库:依次插入,修改,删除数据,并查询修改的结果:二、实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。

问题:MFC项目是从哪里启动的?解答:开始时一直想在项目里找main函数,一直没有找到,然后才知道这个窗口项目的代码应该从窗口构造函数处开始看,与数据库有关的的代码都在点击BUTTON后执行的那个函数里。

实验六 数据库的查询数据库的查询 实验报告

实验六 数据库的查询数据库的查询 实验报告

实验6 数据库的查询(三)一.实验名称:数据库的查询(三)二.目的和要求:(1)掌握数据汇总的方法。

(2)掌握SELECT语句的GROUP BY子句的作用和使用方法。

(3)掌握SELECT语句的ORDER BY子句的作用和使用方法。

三.实验准备(1)了解数据汇总的方法。

(2)了解SELECT语句的GROUP BY子句的作用和使用方法。

(3)了解SELECT语句的ORDER BY子句的作用和使用方法。

四.实验时间:2011年4月28日五.实验设备和实验环境:(1) PC机。

(2) SQL Server 2000。

六.实验内容:1.数据汇总(1)求数学系学生的平均年龄。

在查询分析器的编辑窗口输人如下语句并执行。

SELECT A VG(Sage) AS ‘数学系平均年龄’FROM StudentWHERE Sdept=’CS’思考与练习:查询数学系学生的最高年龄和最低年龄。

select max(sage) as '最高年龄',min(sage) as '最低年龄'from studentwhere sdept='math'(2)求选修数据库系统学生的平均成绩。

在查询分析器的编辑窗口输入如下的语句并执行:SELECT A VG(Grade) AS ‘数据库系统平均成绩’FROM ScWHERE Cno=(SELECT CnoFROM CourseWHERE Cname=’数据库系统’)思考与练习:求选修数据库系统学生的最高成绩和最低成绩。

select max(grade) as '最高成绩',min(grade) as '最低成绩'from scwhere cno=(select cnofrom coursewhere cname='数据库')(3)求数学系学生的总人数。

在查询分析器的编辑窗口输入如下的语句并执行:SELECT COUNT(Sno)FROM StudentW HERE Sdept=‘数学系’思考与练习:统计选修数据库系统课程成绩大于等于90分的人数。

实验六 数据库的完整性定义与检查 (2)

实验六  数据库的完整性定义与检查 (2)

实验六数据库的完整性定义与检查实验目的:1.充分理解关系数据库中关于数据库完整性的概念。

2.掌握实体完整性的定义和检查方法。

3.掌握参照完整性的定义和检查方法。

4.掌握用户自定义完整性的定义和检查方法。

实验内容:一、在企业管理器中定义以下数据表中各字段的完整性约束(包括实体完整性、参照完整性和用户定义完整性)。

1.Student表。

记录学生基本信息。

表1-1 Student 表结构[Sno] [char](9)PRIMARY KEY,[Sname] [char](8)NOT NULL,[Ssex] [char](2)CHECK(Ssex IN('女','男')),[Sage] SMALLINT CHECK(Sage>=15 AND Sage<=45),[Sdept] [char](20)default('计算机'))2.Course表。

记录课程信息。

表1-2 Course 表结构[Cno] [char](10)PRIMARY KEY,[Cname] [char](20)NOT NULL,[Ccredit] SMALLINT CHECK(Ccredit>0),[Semester] SMALLINT CHECK(Semester>0),[Period] SMALLINT CHECK(Period>0),)3.Sc表。

记录学生选修课程的信息。

表1-3 Sc 表结构[Sno] [char](9)NOT NULL,[Cno] [char](10)NOT NULL,[Grade]SMALLINT CHECK(Grade>=0 and Grade<=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno))二、在查询编辑器中,写出创建表的语句同时写出设置实体完整性、参照完整性和用户自定义完整性的语句。

数据库实验示例带答案

数据库实验示例带答案

示例1实验一实验名称:SQL语句的应用(6课时)一、实验目的通过使用SQL SERVER企业管理器建立表。

模式为人事表、客户表、销售表、销售明细表、产品表。

理解数据库模式的概念,理解主键约束、外键约束、UNIQUE约束和CHECK 约束。

通过SQL SERVER企业管理器建立表间的约束。

将得到的表生成脚本,保存。

二、实验环境是MS SQL SERVER 2000的中文客户端。

三、实验示例create table employee1(emp_no char(5) not null,constraint emp_nochk check(emp_no like '[E-F][0-9][0-9][0-9][0-9]'),emp_name char(10) not null,emp_sex char(1) not null,constraint emp_sexchk check(emp_sex in ('m','f')),emp_phone char (13) not null,constraint emp_phonechk check(emp_phone like '([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'), emp_add varchar(60) not null,emp_salary char(5) not null,constraint emp_salarychk check (emp_salary between 60000 and 80000))go四、实验内容与步骤1、建立五张表,每张表至少需要20条记录。

(1)/*员工人事表employee */(3)/*销售主表sales */(4)/*销货明细表sale_item */2、建立表的同时创建表的约束。

(1)为每张表建立主键约束。

数据库实用技术-实验六

数据库实用技术-实验六

实验报告单院(系)计算机学院专业计算机科学与技术班级姓名学号同组人实验室S4305 组号日期课程数据库实用技术指导教师成绩实验项目编号8103203006 实验项目名称索引和数据的完整性一、实验目的(1)掌握索引的使用方法;(2)掌握数据完整性的实现方法;二、实验环境WIN7操作系统SQL Server2008三、实验原理(或要求)(1)了解索引的作用与分类;(2)掌握索引的创建方法;(3)理解数据的完整性的概念与分类;(4)掌握各种数据完整性的实现方法。

四、实验步骤(1)建立索引①使用CREATE INDEX语句创建索引。

●对YGGL数据库的Employees表中的DepartmentID列建立索引。

在查询分析器中输入如下程序并执行:USE YGGLGOCREATE INDEX depart_indON Employees(DepartmentID)GO●在Employees表的Name列和Address列上建立复合索引。

CREATE INDEX Ad_indON Employees(Name,Address)●对Departments表上的DepartmentName列建立唯一非聚集索引。

CREATE UNIQUE INDEX Dep_indON Departments(DepartName)②使用界面方式创建索引。

使用界面方式在Employees表的PhoneNumber列上创建索引。

启动SQL Server Management Studio,在对象资源管理器中展开数据库YGGL,展开表Employees,右击“索引,选择“新建索引”选项。

在新建索引的窗口中填写索引的名称和类型,单击“添加”按钮,在列表框中选择要创建的索引的列,选择完单击“确定”按钮即完成创建工作。

(2)重建索引。

重建表Employees中的所有索引。

USE YGGLGOALTER INDEX ALLON Employees REBUILD(3)删除索引。

数据库原理实验报告(6)

数据库原理实验报告(6)

南京晓庄学院《数据库原理与应用》课程实验报告实验六分组统计查询和集合查询设计所在院(系):数学与信息技术学院班级: 11软工转本2学号: 11130708 11130710姓名:马琦乔凌杰1.实验目的(1)熟练掌握数据查询中分组条件表达、选择组条件的表达方法。

(2)熟练使用统计函数和分组函数。

(3)熟练各类计算和分组计算的查询操作方法。

(4)掌握集合查询的实现方法。

2.实验要求(1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作:a)查询各个院系学生的总人数,并按人数进行降序排列。

b)查询各系各门课程的平均成绩。

c)查询每个院系各种职称的教师人数,输出院系、职称、人数。

d)查询数学与信息技术学院学生的平均年龄。

e)查询07294003课程的最高分和最低分。

f)查询选修人数超过30人,且课程号以07开头的课程号、课程名称和选修人数。

按选修人数降序排列。

g)查询选修了5门以上课程的学生学号。

h)查询年龄大于女同学平均年龄的男同学姓名和年龄。

i)查询SC表中最高分与最低分之差大于20分的课程号。

j)查询平均成绩大于75分的课程的课程号、课程名、平均分。

k)查询期末考试平均分排名前10%的学生,输出学号和平均分。

l)查询教师人数最多的前3个院系,输出院系和教师人数。

m)查询全校老师和学生的姓名,输出姓名和类别两列(类别中显示教师或学生),结果按类别排序。

n)用集合查询实现同时讲授过07294003和07295007两门课的老师的工号。

o)用集合查询实现教师表中职称不是教授的老师的详情。

(2)按要求完成实验报告。

3.实验步骤、结果和总结实验步骤/结果将调试成功的T-SQL语句写在下方(标明题号)。

(1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作:a)查询各个院系学生的总人数,并按人数进行降序排列。

select DEPT_ID, COUNT(*) 总人数from dbo.Studentgroup by DEPT_IDorder by DEPT_ID descb)查询各系各门课程的平均成绩。

实验六 数据库的创建与操作第三稿

实验六 数据库的创建与操作第三稿

实验六数据库的创建与操作【实验目的】1.熟练掌握创建数据库、使用数据库、修改数据库的方法。

2.掌握创建、删除表间关系及如何建立参照完整性。

3.掌握使用数据库设计器的方法。

【实验内容】创建一个关于某公司员工的数据库,具体操作要求如下:(1)数据库名为“职工库”。

(2)在库中建立如下数据表:a)职工情况表(编号,姓名,性别,职称,出生日期,参加工作时间)b)职工工资表(编号,姓名,基本工资,奖金,房租,水电,实发工资)c)考核表(编号,姓名,完成工作否,优秀否)(3)建立“职工情况表”与“职工工资表”之间的永久性关系。

(4)定义“职工情况表”与“职工工资表”之间的参照完整性规则,定义删除规则为“级联”,更新规则和插入规则为“限制”。

(5)将“考核表”从该库中移出,成为自由表。

操作步骤:一、创建数据库方法一:先创建数据库,再添加至已有的项目中去。

(不推荐)1、单击“文件”菜单下的“新建”命令。

2、在“新建”对话框中的文件类型单选框中选中“数据库”选项,再单击“新建文件“按钮。

3、在创建对话框数据库名一栏中输入数据库名称“职工库”,单击“保存”按钮。

4、单击“文件”菜单下的“打开”命令。

5、选中“职工管理.pjx”文件,再单击“确定”按钮。

6、弹出项目管理器-职工管理,此时的“添加”等按钮均为灰色不可选。

点击数据左侧的加号,再单击数据库,“添加”按钮显现为可选,此时单击“添加”按钮.7、弹出打开对话框,选中“职工库.dbc”,再单击“确定”按钮8、“职工管理“项目成功添加了“职工库”数据库。

如图所示:方法二:先创建项目或打开已有项目,通过项目管理器新建数据库。

(推荐)1、单击“文件”菜单下的“新建”命令。

2、在“新建”对话框中的文件类型单选框中选中“项目”选项,再单击“新建文件“按钮。

3、在弹出的创建对话框中,在项目文件一栏输入“职工管理”,再单击“保存”按钮。

4、弹出项目管理器-职工管理,此时的“新建”等按钮均为灰色不可选。

数据库实验六实验报告

数据库实验六实验报告
梧 州 学院
实验报告
实验课程:数据库原理 学 院:信息与电子工程学院
梧州学院实验报告
SQL server 2014
1、掌握T-SQL 流控制语句; 2、掌握创建存储过程得方法; 3、掌握存储过程得执行方法; 4、掌握存储过程得管理与维护;
实验原理: 存储过程就是一种数据库对象,将执行计划存储在数据库得服务器中。它得运行速度比
Exec course_average cname,avg out
begin
if avg <60
print cast(cname as varchar)+ '课程得平均成绩为'+cast
else
print '不存在,可创建!’
go
create procedure student_sc sno1 nchar(8),sno2 nchar(8) as select student、sno,sname,sum(grade)总成绩 from student,sc,course where student、sno=sc、sno
select student、sno ,sname,DATEDIFF (year,birth,getdate())as age, cname,grade
from student ,sc ,course where student 、sno=sc、sno and sco =course o
and sdept like depart ‫ ﻩ‬and sname like name
x“。
执行语句为:
批处理语句:
declare
avg int

declare cname nvarchar(20)
Exec course_average cname,avg out

数据库原理实验报告

数据库原理实验报告

计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:*****姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。

2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。

3、熟练掌握备份和还原数据库。

二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。

SQL数据库实验报告实验六

SQL数据库实验报告实验六

第1部分实验8 存储过程和触发器1.实验目的(1)掌握通过SQL Server 管理平台和Transact-SQL 语句CREA TE PROCEDURE 创建存储过程的方法和步骤。

(2)掌握使用Transact-SQL 语句EXECUTE 执行存储过程的方法。

(3)掌握通过SQL Server 管理平台和Transact-SQL 语句ALTER PROCEDURE 修改存储过程的方法。

(4)掌握通过SQL Server 管理平台和Transact-SQL 语句DROP PROCEDURE 删除存储过程的方法。

(5)掌握通过SQL Server 管理平台和Transact-SQL 语句CREA TE TRIGGER 创建触发器的方法和步骤。

(6)掌握引发触发器的方法。

(7)掌握使用SQL Server 管理平台或Transact-SQL 语句修改和删除触发器。

2.实验内容及步骤(1)在查询设计器中输入以下代码,创建一个利用流控制语句的存储过程letters_print ,该存储过程能够显示26个小写字母。

CREATE PROCEDURE letters_print ASDECLARE @count int SET @count=0 WHILE @count<26 BEGINPRINT CHAR(ASCII('a')+ @count) SET @count=@count +1 END单击查询分析器的“执行查询”按钮,查看studentsdb 数据库的存储过程是否有letters_print 。

使用EXECUTE 命令执行letters_print 存储过程。

(2)输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对应的学生的各科成绩。

CREATE PROCEDURE stu_info @name varchar(40)ASSELECT a.学号,姓名,课程编号,分数FROM student_info a INNER JOIN grade taON a.学号= ta.学号WHERE 姓名= @name使用EXECUTE命令执行存储过程stu_info,其参数值为“马东”。

数据库实验1-7

数据库实验1-7

1《实验一 认识DBMS 》在SQL Server 2005中完成以下操作:(1) 建立SC 数据库,数据库命名:SC_姓名拼音+学号后三位,如SC_xiebing131;(2) 在其中建立Student 表、Course 表和SC 表,表结构如下,自己选择各属性的数据类型;学生关系Student(Sno ,Sname ,Ssex ,Sage ,Sdept)其中Sno 为主码,并且Sname 取值也唯一 课程关系Course(Cno ,Cname ,Cpno ,Ccredit)其中Cno 为主码,并且Cname 取值也唯一选修关系SC(Sno ,Cno ,Grade) 其中Sno 和Cno 不能为空,(Sno, Cno)为主码(3) 参照教材在各表中输入一定的记录,在student 表中输入一条自己的记录;(4) 进行表结构的修改和记录的修改、删除操作;(5) 验证教材P45基本关系具有的6个性质;(6) 分离数据库,保存数据库文件,以后上机要带上。

《实验二数据定义》实验内容:(1) 数据库的定义与删除(2)基本表的创建、修改及删除;(3) 索引的创建和删除;(4) 使用SQL 对数据进行完整性控制(实体完整性、参照完整性);(一)使用命令行方式建立SPJ 数据库(1)用SQL 语言建立SPJ 数据库,数据库命名:SPJ-姓名拼音+学号后三位,如SPJ-liyan112;(2)用SQL 语言在其中建立S 表、P 表、J 表和SPJ 表(要求进行完整性定义),表结构如下;厂家 S (SNO ,SNAME ,STA TUS ,CITY ),其中STA TUS (状态)为整型,其他均为字符型产品 P (PNO ,PNAME ,COLOR ,WEIGHT ),其中WEIGHT (重量)为浮点型,其他均为字符型工程 J (JNO ,JNAME ,CITY ),其中各属性均为字符型供应 SPJ (SNO ,PNO ,JNO ,QTY ),其中QTY (供应量)为整型,其他均为字符型建立数据表的语法格式CREA TE TABLE <表名>(<列名><数据类型>[<列级完整性约束条件> ] [,<列名><数据类型>[<列级完整性约束条件>]] …[,<表级完整性约束条件> ] );(3) 参照教材用SQL 语言分别在4个数据表中输入一定的记录;插入数据的语法格式:INSERTINTO <表名> [(<属性列1>[,<属性列2 >…)]V ALUES (<常量1> [,<常量2>] … )(4) 保存SQL 文件,文件名:SPJ-姓名拼音+学号后三位.sql ,如SPJ-xukai012.sql(二)使用命令行方式建立学生课程数据库(1) 用SQL 语言建立学生课程数据库,数据库命名:SC_学号后四位及姓名,如SC_3112liyan ;(2) 用SQL 语言在学生课程数据库中建立3个表,要求进行完整性定义;学生关系Student(Sno ,Sname ,Ssex ,Sage ,Sdept)其中Sno 不能为空,值是唯一的,并且Sname 取值也唯一,Sage 自定义约束“大于16” 课程关系Course(Cno ,Cname ,Cpno ,Ccredit)其中Cno 不能为空,值是唯一的,并且Cname 取值也唯一教师关系Teacher(Tno ,Tname ,Department ,Email ,Salary) 其中Tno 不能为空,值是唯一的选修关系SC(Sno ,Cno ,Grade) 其中Sno 和Cno 不能为空,(Sno, Cno)为主码,Grade 的数据类型为int(3) 修改数据表:✓ 将SC 表中Grade 的数据类型改为f loat ;✓ 在Student 表中增加一个属性Scome 记录学生的入学时间,其数据类型为DATETIME ;✓ 删除Student 表中新增加Scome 属性;✓ 删除表Teacher 表中的Email 属性;✓ 删除Student 表中对Sname 属性创建的Unique 约束。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6 综合型实验项目索引和数据完整性
匹配课程代码及名称:070785,数据库应用设计
适用专业及本项目实验学时:计算机科学与技术专升本,6学时
一、实验目的及要求
(1)掌握索引的使用方法;
(2)掌握索引的设计与实现方法。

(3)掌握数据完整性的类型;
(4)掌握数据完整性的实现方法。

二、实验内容
在已建好的YGGL数据库中,设计并创建索引,并进行索引的重建、删除操作。

提交程序源代码(电子版,1周内)和实验报告(纸制、1周内)。

三、实验条件及设备要求
已安装SQL Server 2008数据库管理系统的实验机。

四、实验相关知识点
数据库实体完整性、索引。

五、实验实施步骤
(一)建立索引
1、对YGGL数据库的Employees表中的DepartmentID列建立索引。

createindex depart_ind
on Employees(DepartmentID)
2、在Employees表的Name列和Address列上建立复合索引。

create index ad_ind on Employees(Name,Address)
3、对Departments表上的DepartmentName列建立唯一非聚集索引。

go
create unique index dep_ind on Departments(DepartmentName) go
(二)重建索引
1、重建表Employees中的所有索引。

alter index all on Employees rebuild
(三)删除索引。

1、使用DROP INDEX语句删除表Employees上的索引Depart_ind。

drop index Depart_ind on Employees
2、使用DROP INDEX一次删除Employees表上的多个索引。

go
drop index Departments.Dep_ind,Employees.Ad_ind
go
(四)数据完整性操作
1、创建一个表Employees5,只含EmployeesID,Name,Sex和Education列。

将Name,设为主键,作为列Name的约束。

对EmployeesID列进行UNIQUE约束,并作为表的约束。

create table Employees5(
EmployeesID char(6)not null,
Name char(10)not null primary key,
Sex tinyint,
Education char(4),
constraint UK_id unique(EmployeesID)
)
2、删除上题中创建的UNIQUE约束。

alter table Employees5
drop constraint UK_id
3、使用T-SQL命令创建一个新表,使用一个复合列作为主键,作为表的约束,并为其命名。

create table Employees7
(
EmployeeID char(6)not null,
Name char(10)not null,
Education char(4)not null,
Birthday date not null,
Sex bit not null default 1,
WorkYear tinyint null,
Address varchar(40)null,
PhoneNumber char(12)null,
DepartmentID char(3)not null,
primary key (EmployeeID,DepartmentID),
constraint ED_UK unique(EmployeeID,DepartmentID)
)
4、使用语句为表ALTER TABLEEmployees5添加一个新列Address,并为该列定义UNIQUE约束,并了解如何使用图形向导方式删除主键和UNIOQUE约束。

alter table Employees5
add Address varchar(40),
constraint AD_UK unique (Address)
5、创建新表student,只考虑“号码”和“性别”两列,性别只能包含男或女。

向该表插入数据,“性别”列插入“男”和“女”以外的字符,查看会发生什么情况。

create table student(
号码char(6)not null,
性别char(2)check(性别='男'or性别='女')
)
6、创建新表Salary2,结构与Salary相同,但Salary2表不可以OutCome列大于Income列。

向表中插入数据,查看OUTCOME值比INCOME值大是会有什么情况。

create table Salary2
(EmployeeID char(6)not null,
InCome float not null,
OutCome float not null,
check(InCome>=OutCome)
)
7、创建一个表Employees6,只考虑“学号”和“出生日期”两列,出生日期必须晚于1980年1月1日。

create table Employees6
(
学号char(6)not null,
出生日期date not null check(出生日期>'1980-01-01'),
)
8、对YGGL数据库中的Employees表进行修改,为其增加“DepartmentID”字段的CHECK约束。

约束条件为DepartmentID值应大于等于1且小于等于5。

测试CHECK约束的有效性。

alter table Employees
add constraint depart check(DepartmentID>=1 and DepartmentID<=5)
9、创建一个表Salary3,要求所有Salary3表上EmployeeID列的值都要出现在Salary表中,利用参照完整性约束实现,要求当删除或修改Salary表上的EmployeeID列时,Salary3表中的EmployeeID值也会随之变化。

create table Salary3
(
EmployeeID char(6)not null primary key,
InCome float not null,
OutCome float(8)not null,
foreign key(EmployeeID)
references Salary(EmployeeID)
on update cascade
on delete cascade
)
六、实验报告要求
1、按照山东女子学院实验报告格式书写。

2、关键部分的内容规范和要求如下:
(一)、实验目的及要求
指导教师给出的实验目的及具体实验要求。

(二)、实验使用的主要设备(含软件系统)
设备:名称、规格型号、数量;
软件:系统、软件名称、版本;
其他实验器材。

(三)、实验操作过程及内容
按照实验步骤写出操作要求,能够实现要求的语句及结果。

(四)、实验结论、问题与建议(含取得的成果)
总结实验过程,记录实验过程中所遇的问题及调试过程、处理方法,简述实验效果,回答实验思考题等。

七、实验成绩评定办法
主要评分点:实验流程、调试过程、解决问题的能力、实验结果、实验效果等。

相关文档
最新文档