文档库 最新最全的文档下载
当前位置:文档库 › 数据库-数据查询实验报告

数据库-数据查询实验报告

数据库-数据查询实验报告
数据库-数据查询实验报告

实验报告

课程名称数据库原理与应用实验名称数据查询

系别专业班级指导教师

学号姓名实验日期_

实验名称:数据查询

一、实验目的

1.熟悉各种基本的数据查询的含义。

2.掌握数据查询的SQL语句编写方法。

3.能根据要求写出正确的查询语句。

4.掌握基本的调试方法。

二、实验环境

1.硬件环境:微机

2.软件环境:Windows,Sql server2000或更高版本

三、实验内容及步骤

题目根据要求编写以下SQL查询语句

第一题简单查询

1.查询病人表,显示所有病人的病人编号、保险公司名称、电话号码(别名:病人电话)。

2.查询病人表,显示病人编号、病人姓名(病人姓+病人名)、保险公司名称,并在每个“电话号码”前面

显示字符串“病人电话:”。

3.查询病人表,要求显示保险公司名称,并消除重复的值。

4.查询病人表,要求只显示前五条的全部病人信息。

5.查询病人表,要求显示最年轻的前6位病人的病人编号,病人姓名,病人年龄

6.给医生表取别名:doctors,并显示医生表的所有信息

7.要求查询在“人民保险公司”投保的所有病人的信息

8.要求查询病人年龄在20~60岁之间的所有病人信息

9.要求查询姓“王”、姓“李”或姓“关”的所有病人的信息。(提示:用“in”或者用“or”两种方法查

询。)

10.查询电话号码为空的病人信息

11.要求按年龄从大到小显示病人信息

12.要求先按病人姓的升序;如果姓一样,再按年龄的降序,来显示病人信息

13.要求查询电话号码的最后一个数字为6的病人编号,病人姓名,电话号码

14.要求查询倒数第二个数字为7的病人编号,病人姓名,电话号码。

15.要求查询除区号外的第二个数字为2的病人编号,病人姓名,电话号码。(注:手机号不算。)

16.要求查询电话号码的最后一个数字为6、为3、为1的病人编号,病人姓名,电话号码。(注:至少两种

方法可以实现)

17.要求查询电话号码的最后一个数字除1、3、6外的病人编号,病人姓名,电话号码。

步骤(写出以上SQL语句)

--1.查询病人表,显示所有病人的病人编号、保险公司名称、电话号码(别名:病人电话)。

select病人编号,保险公司名称,电话号码病人电话

from病人表

go

--2.查询病人表,显示病人编号、病人姓名(病人姓+病人名)、保险公司名称,并在每个“电话号码”前面显示字符串“病人电话:”。

select病人编号,病人姓+病人名病人姓名,保险公司名称,'病人电话:'病人电话,电话号码

from病人表

go

--3.查询病人表,要求显示保险公司名称,并消除重复的值。

select distinct保险公司名称

from病人表

go

--4.查询病人表,要求只显示前五条的全部病人信息。

select top 5 *

from病人表

go

--5.查询病人表,要求显示最年轻的前位病人的病人编号,病人姓名,病人年龄

select top 5 病人编号,病人姓+病人名病人姓名,病人年龄

from病人表

order by病人年龄ASC

go

--6.给医生表取别名:doctors,并显示医生表的所有信息

select*

from医生表as doctors

go

--7.要求查询在“人民保险公司”投保的所有病人的信息

select*

from病人表

where保险公司名称='人民保险公司'

go

--8.要求查询病人年龄在~60岁之间的所有病人信息

select*

from病人表

where病人年龄between 20 and 60

go

--9.要求查询姓“王”、姓“李”或姓“关”的所有病人的信息。(提示:用“in”或者用“or”两种方法查询。)

select*

from病人表

where病人姓in('李','王','关')

go

--10.查询电话号码为空的病人信息

select*

from病人表

where电话号码is null

go

--11.要求按年龄从大到小显示病人信息

select*

from病人表

order by病人年龄DESC

go

--12.要求先按病人姓的升序;如果姓一样,再按年龄的降序,来显示病人信息

select*

from病人表

order by病人姓ASC,病人年龄DESC

go

--13.要求查询电话号码的最后一个数字为的病人编号,病人姓名,电话号码

select病人编号,病人姓+病人名病人姓名,电话号码

from病人表

where电话号码like'%6'

go

--14.要求查询倒数第二个数字为的病人编号,病人姓名,电话号码。

select病人编号,病人姓+病人名病人姓名,电话号码

from病人表

where电话号码like'%7_'

go

--15.要求查询除区号外的第二个数字为的病人编号,病人姓名,电话号码。(注:手机号不算。)

select病人编号,病人姓+病人名病人姓名,电话号码

from病人表

where电话号码like'____-_2%'

go

--16.要求查询电话号码的最后一个数字为、为、为的病人编号,病人姓名,电话号码。(注:至少两种方法可以实现)

select病人编号,病人姓+病人名病人姓名,电话号码

from病人表

where电话号码like'%6'or电话号码like'%3'or电话号码like'%1'

go

select病人编号,病人姓+病人名病人姓名,电话号码from病人表

where电话号码like'%[6,3,1]'

go

--17.要求查询电话号码的最后一个数字除、、外的病人编号,病人姓名,电话号码。

select病人编号,病人姓+病人名病人姓名,电话号码

from病人表

where电话号码not like'%[6,3,1]'

go

第二题分组查询

1.查询病人表,要求显示最大年龄值、最小年龄值、平均年龄值

2.查询病人表,要求统计在“太平洋保险公司”投保的病人数

3.查询一下病人表,要求统计有电话号码的病人数

4.查询病人表,要求统计在各个保险公司投保的各自病人数。(两种方法:group by与compute by)

5.查询病人表,要求统计投保人数2人以上(含2人)的保险公司名称与投保人数。

6.查询病历表,要求统计一下病人编号为"Pat0002"的病人结算总金额。(注:结算金额相同的只算一个记

入总金额中)

7.查询病历表,要求统计一下病人编号为"Pat0002"的病人结算总金额。(注:结算金额相同的不记入总金

额中)

步骤

--1.查询病人表,要求显示最大年龄值、最小年龄值、平均年龄值

select max(病人年龄)最大年龄,min(病人年龄)最小年龄,avg(病人年龄)平均年龄

from病人表

go

--2.查询病人表,要求统计在“太平洋保险公司”投保的病人数

select count(保险公司名称)太平洋保险公司投保的病人数

from病人表

where保险公司名称='太平洋保险公司'

go

--3.查询一下病人表,要求统计有电话号码的病人数

select count(电话号码)有电话号码的病人数

from病人表

where电话号码is not null

go

--4.查询病人表,要求统计在各个保险公司投保的各自病人数。(两种方法:group by与compute by)

select count(保险公司名称)

from病人表

where保险公司名称is not null

group by保险公司名称

go

--5.查询病人表,要求统计投保人数人以上(含人)的保险公司名称与投保人数。

select保险公司名称,count(*)投保人数

from病人表

group by保险公司名称

having count(*)>=2

go

--6.查询病历表,要求统计一下病人编号为"Pat0002"的病人结算总金额。(注:结算金额相同的只算一个记入总金额中)

select distinct sum(结算金额)结算总金额

from病历表

where病人编号='Pat0002'

go

--7.查询病历表,要求统计一下病人编号为"Pat0002"的病人结算总金额。(注:结算金额相同的不记入总金额中)select sum(结算金额)as结算总金额

from病历表

where病人编号='Pat0002'

go

第三题多表联接查询

1.查询所有有看过病的病人编号,病人姓名,住院日期,病历。

2.查询所有病人的病人编号,病人姓名,住院日期,病历。(注:如果有的病人暂时还没有看过病,则相

应内容显示为NULL)

3.显示“王太山”该病人的所有的看病资料(病人编号,病人姓名,住院日期,病历)。

4.统计一下“柳四二”该病人的看病次数,以及结算总金额。

5.查询医生编号为'docek001'的医生看过的所有病人资料(病人编号,病人姓名,医生编号)。

6.查询'张明仁'医生看过的所有病人资料(病人编号,病人姓名,医生姓名)。

7.显示出院日期在2008年间每个病人的最高的一笔结算金额。(注:要显示的信息有--病人编号,病人姓

名,最高的结算金额)

8.查询具有相同专业的医生。(注:显示的信息有--医生编号,医生姓名,科室)

步骤

--1.查询所有有看过病的病人编号,病人姓名,住院日期,病历。

select病人表.病人编号,病人姓+病人名病人姓名,住院日期,病历from病人表,病历表

where病人表.病人编号=病历表.病人编号

go

--2.查询所有病人的病人编号,病人姓名,住院日期,病历。(注:如果有的病人暂时还没有看过病,则相应内容显示为NULL)

select病人表.病人编号,病人姓+病人名病人姓名,住院日期,病历

from病人表left outer join病历表on(病人表.病人编号=病历表.病人编号)

go

--3.显示“王太山”该病人的所有的看病资料(病人编号,病人姓名,住院日期,病历)。

select病人表.病人编号,病人姓+病人名病人姓名,住院日期,病历

from病人表,病历表

where病人表.病人编号=病历表.病人编号and病人姓+病人名='王太山'

go

--4.统计一下“柳四二”该病人的看病次数,以及结算总金额。

select count(病历)看病次数,count(结算金额)结算总金额

from病人表,病历表

where病人姓+病人名='柳四二'

go

--5.查询医生编号为'docek001'的医生看过的所有病人资料(病人编号,病人姓名,医生编号)。

select病人表.病人编号,病人姓+病人名病人姓名,医生表.医生编号

from病人表,医生表,病历表

where病人表.病人编号=病历表.病人编号and医生表.医生编号=病历表.医生编号and医生表.医生编号= 'docek001'

go

--6.查询'张明仁'医生看过的所有病人资料(病人编号,病人姓名,医生姓名)。

select病人表.病人编号,病人姓+病人名病人姓名,医生姓+医生名医生姓名

from病人表,医生表,病历表

where病人表.病人编号=病历表.病人编号and医生表.医生编号=病历表.医生编号and医生表.医生姓+医生表.医生名='张明仁'

go

--7.显示出院日期在年间每个病人的最高的一笔结算金额。(注:要显示的信息有--病人编号,病人姓名,最高的结算金额)

select病人表.病人编号,病人姓+病人名病人姓名,max(结算金额)最高的结算金额

from病人表,病历表

where病人表.病人编号=病历表.病人编号and出院日期between'2008-1-1'and'2008-12-31'

group by病人表.病人编号,病人姓+病人名

go

--8.查询具有相同专业的医生。(注:显示的信息有--医生编号,医生姓名,科室)

select one.医生编号,one.医生姓+ one.医生名医生姓名,one.科室

from医生表one,医生表two

where one.科室= two.科室

group by one.医生编号,one.科室,one.医生姓,one.医生名

having count(one.科室)>1

go

第四题子查询

1.使用两种子查询的方法。要求查询病历表,要求统计一下病人编号为"Pat0002"的病人结算总金额。(注:

结算金额相同的不记入总金额中)

2.请用“相关子查询作为表达式”方法写出SELECT语句,来统计并显示每个医生的医生编号、医生姓

名以及每个医生看过的病人数。要求:如果还没看过病人的医生,则显示看过的病人数为0。

3.请用“派生表”的子查询方法写出SELECT语句,来统计并显示每个医生的医生编号、医生姓名以及

每个医生看过的病人数。要求:如果还没看过病人的医生,则显示看过的病人数为0。

4.请用“相关子查询作为表达式”的子查询方法写出SELECT语句,来统计并显示每个医生的医生编号、

医生姓名以及每个医生看过的病人数。要求:如果还没看过病人的医生,不显示信息。

5.请用“派生表”的子查询方法写出SELECT语句,来统计并显示每个医生的医生编号、医生姓名以及

每个医生看过的病人数。要求:如果还没看过病人的医生,不显示信息。

6.查询具有相同专业的医生。(注:显示的信息有--医生编号,医生姓名,科室)(提示:可使用in或exists

关键字实现。)

7.查询看过所有医生的病人信息

8.查询至少看过病人编号为'Pat0004'看过的全部医生的病人编号

9.查询结算总金额最多的病人编号,病人姓名和相应的结算总金额

步骤

--1.使用两种子查询的方法。要求查询病历表,要求统计一下病人编号为"Pat0002"的病人结算总金额。(注:结算金额相同的不记入总金额中)

--第一种方法:

select sum(结算金额)as结算总金额

from病历表

where结算金额not in

(

select结算金额

from病历表

where病人编号='Pat0002'

group by结算金额

having count(结算金额)>1

)and病人编号='Pat0002'

go

--第二种方法:

select sum(结算金额)as结算总金额

from病历表

where结算金额=any

(

select结算金额

from病历表

where病人编号='Pat0002'

group by结算金额

having count(结算金额)=1

)and病人编号='Pat0002'

go

--2.请用“相关子查询作为表达式”方法写出SELECT语句,来统计并显示每个医生的医生编号、医生姓名以及每个医生看过的病人数。要求:如果还没看过病人的医生,则显示看过的病人数为。

select b.医生编号,b.医生姓+b.医生名as医生姓名,'该医生看过的病人数'=

(select count(病人编号)from病历表as a where a.医生编号=b.医生编号)

from医生表as b

order by b.医生编号

go

--3.请用“派生表”的子查询方法写出SELECT语句,来统计并显示每个医生的医生编号、医生姓名以及每个医生看过的病人数。要求:如果还没看过病人的医生,则显示看过的病人数为。

select a.医生编号,a.医生姓+a.医生名as医生姓名,isnull(b.该医生看过的病人数,0)

from医生表as a left outer join

(

select医生编号,count(*)as该医生看过的病人数

from病历表

group by医生编号)as b

on a.医生编号=b.医生编号

go

--4.请用“相关子查询作为表达式”的子查询方法写出SELECT语句,来统计并显示每个医生的医生编号、医生姓名以及每个医生看过的病人数。要求:如果还没看过病人的医生,不显示信息。

select病历表.医生编号,医生姓+医生名as医生姓名,count(*)as该医生看过的病人数

from病历表inner join医生表

on病历表.医生编号=医生表.医生编号

group by病历表.医生编号,医生姓+医生名

union

select医生表.医生编号,医生姓+医生名as医生姓名,病人编号=0

from病历表right outer join医生表

on病历表.医生编号=医生表.医生编号

where病人编号is null

go

--5.请用“派生表”的子查询方法写出SELECT语句,来统计并显示每个医生的医生编号、医生姓名以及每个医生看过的病人数。要求:如果还没看过病人的医生,不显示信息。

select a.医生编号,a.医生姓+a.医生名as医生姓名, b.该医生看过的病人数

from医生表as a inner join

(select医生编号,count(*)as该医生看过的病人数

from病历表

group by医生编号)as b

on a.医生编号=b.医生编号

go

--6.查询具有相同专业的医生。(注:显示的信息有--医生编号,医生姓名,科室)(提示:可使用in或exists关键字实现。)

select distinct a.医生编号,a.医生姓+a.医生名as医生姓名,a.科室

from医生表as a inner join医生表as b

on a.科室=b.科室

where a.医生编号>=b.医生编号

and b.科室not in

(

select a.科室

from医生表as a inner join医生表as b

on a.科室=b.科室

where a.医生编号>=b.医生编号

group by a.科室

having count(b.科室)=1

)

go

--7.查询看过所有医生的病人信息

select病人编号,病人姓+病人名as病人姓名,保险公司名称,年龄,电话号码

from病人表

where not exists

(

select*

from医生表

where not exists

(

select*

from病历表

where病人编号=病人表.病人编号

and医生编号=医生表.医生编号

)

)

go

--8.查询至少看过病人编号为'Pat0004'看过的全部医生的病人编号

select distinct病人编号

from病历表as C_A

where not exists

(

select*

from病历表as C_B

where病人编号='Pat0004'and not exists

(

select*

from病历表as C_C

where C_C.病人编号=C_A.病人编号

and C_C.医生编号=C_B.医生编号

)

)

go

--9.查询结算总金额最多的病人编号,病人姓名和相应的结算总金额

select a.病人编号,病人姓+病人名as病人姓名,sum(结算金额)as结算总金额from病历表as a inner join病历表as b on a.病人编号=b.病人编号

group by a.病人编号,病人姓,病人名

having sum(结算金额)=(select max(结算总金额)

from(select病人编号,sum(结算金额)as结算总金额

from病历表

group by病人编号)as T)

go

五、实验小结

实验3 数据查询

实验三数据查询 ●实验指导——简单查询和连接查询 一.实验目的 1.观察查询结果, 体会SELECT语句实际应用; 2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。 3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 二.实验准备 1.完成实验四,成功建立了基本表。 2.了解简单SELECT语句的用法。 3.比较熟悉查询分析器中的SQL脚本运行环境。 三.实验要求 1.完成简单查询和连接查询操作,并验收实验结果提交实验报告 四.实验内容 CREATE TABLE student1 ( sno char(8)PRIMARY KEY,--学号(主键) sname char(8)NOT NULL,--姓名 ssex char(2),--性别 sage char(2),--年龄 sdept char(6),--所在院系 ) CREATE TABLE course1 ( cno char(10)PRIMARY KEY,--课程编号(主键) cname char(20)NOT NULL,--课程名称 cpno char(2),--先行课 credit tinyint--课程学分 ) CREATE TABLE sc ( sno char(8),--学号(主键) cno char(10),--课程编号(主键) grade char(3),--成绩 primary key(sno,cno) ) 所有的查询全部用Transact-SQL语句实现

1.简单查询操作 此部分查询包括投影、选择条件表达、数据排序、使用临时表等。 对EDUC数据库实现以下查询: ①求计算机系的学生学号和姓名; SELECT sno,sname from student1 where sdept='CS'; ②求选修了课程的学生学号; SELECT distinct sno from sc where cno is not null; ③求选修C1 (数学)课程的学生学号和成绩,并要求对查询结果按成绩的降序排列, 如果成绩相同则按学号的升序排列; SELECT sno,grade from course1,sc where https://www.wendangku.net/doc/f83574562.html,o=https://www.wendangku.net/doc/f83574562.html,o and cname='数学' order by grade desc,sno asc; ④求选修课程C1 (数学)且成绩在80-90(85)之间的学生学号和成绩,并将成绩 乘以系数0.75 输出; SELECT sno,grade from course1,sc where https://www.wendangku.net/doc/f83574562.html,o=https://www.wendangku.net/doc/f83574562.html,o and cname='数学'and grade between80 and 85; ⑤求计算机系(CS)和数学系(IS)的姓张的学生的信息; SELECT* from student1 where sdept in('CS','IS')and sname like'张%'; ⑥求缺少了成绩的学生的学号和课程号。 SELECT sc.sno,cno from student1,sc where student1.sno=sc.sno and grade is null; ⑦将2000以后的成绩大于90分的学生成绩存入永久成绩表;将2000年以前的成绩 存入临时成绩表中。 2.连接查询操作 对EDUC数据库实现以下查询: ①查询每个学生的情况以及他(她)所选修的课程; SELECT student1.*,https://www.wendangku.net/doc/f83574562.html,o from student1,sc where student1.sno=sc.sno; ②求学生的学号、姓名、选修的课程名及成绩; SELECT student1.sno,student1.sname,https://www.wendangku.net/doc/f83574562.html,ame,sc.grade from student1,sc,course1

通讯录管理系统实验报告

通讯录管理系统实验报告 信息科学与技术学院《程序设计实习》实训报告书 目: 计算机科学与技术题 专业: 计算机科学与技术班级: 姓名: 学号: 同组人员: 指导老师: 设计时间: 目录 1.实训计 划 ..................................................................... ................................... 1 2.问题描 述 ..................................................................... ................................... 1 3.问题分 析 ..................................................................... ................................... 2 4.算法设 计 ..................................................................... ................................... 4 5.程序模块设 计 ..................................................................... ............................ 5 6.技术难点与分 析 ..................................................................... ........................ 8 7.系统测 试 ..................................................................... ................................... 9 8.心得体 会 .....................................................................

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告 班级: 学号: 姓名: 2013年5月

数据库应用系统的初步开发 一、实验目的 1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。 2.初步掌握基于C/S的数据库应用系统分析、设计和实现方法。 3.进一步提高学生的知识综合运用能力。 二、实验内容 在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。 三、实验过程 (一.)系统需求说明 1系统功能要求设计:此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统 在安全性,完整性,并发控制,备份和恢复等方面的功能要求。 2系统模块设计 成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应 该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包 含有对学生成绩信息的查询和处理,;再其次还有教师、课程等相关信息的模块; 可以得到系统流程图: 登陆失败 学生管课 程 管 退出系统用户 验证 成 绩 查 登 陆 成 功

3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下: 数据库中用到的表: 数据库表名关系模式名称备注 Student 学生学生学籍信息表 Course 课程课程基本信息表 Score 成绩选课成绩信息表 Student基本情况数据表,结构如下: 字段名字段类型Not Null 说明 Student _sno Char Primary key 学号 Student _sn char Not Null 学生姓名 Student _sex char ‘男’或‘女’性别 Student _dept char 系别 Student_age char 年龄 Student_address char 地址 course数据表,结构如下: 字段名字段类型约束控制说明 course_cno char 主键(primary key)课程号 char not null 课程名称course_cnam e course_hour int not null 课时 course_score numeric(2,1) not null 学分 score情况数据表,结构如下: 字段名字段类型约束控制说明 score_id int not null 成绩记录号 course_cno char 外部键课程号 student_sno char 外部键学号 score int 成绩 (二)数据库结构设计 1.概念结构设计 由需求分析的结果可知,本系统设计的实体包括: (1)学生基本信息:学号,姓名,性别。 (2)课程基本信息:课程名,课程号,分数。 2.逻辑结构设计 这些实体间的关系模式如下:

北邮大三数据库实验六数据查询分析实验

实验六数据查询分析实验 实验目的 通过对不同情况下查询语句的执行分析,巩固和加深对查询和查询优化相关理论知识的理解,提高优化数据库系统的实践能力,熟悉了解Sybase中查询分析器的使用,并进一步提高编写复杂查询的SQL 程序的能力。 实验内容 1.索引对查询的影响 (1)对结果集只有一个元组的查询分三种情况进行执行(必如查询一个具体学生的信息):不建立索引,(学号上)建立非聚集索引,(学号上)建立聚集索引。 建立聚集索引: create clustered index student on student(student_id) go 建立非聚集索引: create nonclustered index student_index on student(student_id) go 用查询分析器的执行步骤和结果对执行进行分析比较。 select*from student where student_id='30201' 不建立索引 建立聚集索引

建立非聚集索引 (2)对结果集中有多个元组的查询(例如查看某门成绩的成绩表)分类似(1)的三种情况进行执行比较。 select*from student where student_id>'30401' 不建立索引:

建立聚集索引: 建立非聚集索引: (3)对查询条件为一个连续的范围的查询(例如查看学号在某个范围内的学生的选课情况)分类似(1)的三种情况进行执行比较,注意系统处理的选择。 select*from student where student_id between'31201'and'31415' 不建立索引:

简单的通讯录实验报告

( 二〇一二 年 十 月 课程设计说明书 本科毕业设计 题 目:简单通讯录程序 学生姓名:李天罡 学 院:工学院 专 业:数字媒体技术 班 级:2011级 指导教师:王金祥

目录 引言 (3) 第一章需求与分析...................................... I 1.1开发环境 ....................................................................................................... I 1.1.1软件环境 ........................................................................................................... I 1.1.2硬件环境 ........................................................................................................... I 1.1.3开发平台 ........................................................................................................... I 1.2功能需求 ....................................................................................................... I 1.2.1数据字段 ........................................................................................................... I 1.2.2主要功能 ........................................................................................................... I 第二章总体设计 ...................................... II 2.1流程图 ......................................................................................................... II 2.2主要模块功能介绍 .................................................................................... III 2.2.1选择模块 ........................................................................................................ III 2.2.2增添删减模块 ................................................................................................ III 2.2.3查询模块 ........................................................................................................ I V 2.2.4排序模块 ........................................................................................................ I V 第三章详细设计 ...................................... IV 3.1源代码 ........................................................................................................ I V 第四章实体机测试..................................... XV 4.1测试的目标 ..................................................................................................... XV 4.2测试方法 ......................................................................................................... XV 4.3测试结果 ........................................................................................................ XVI 总结 .............................................. XXIII

sqlserver数据库综合实验报告格式

华北科技学院计算机系综合性实验 实验报告 课程名称数据库原理与应用 实验学期 2009 至 2010 学年第一学期学生所在系部管理系 年级三年级专业班级商务B071班 学生姓名李荣妹学号 4121 任课教师郭红 实验成绩 计算机系制

《数据库原理与应用》课程综合性实验报告

(3)建表如下图: 图书表的结构 读者表的结构罚款表的结构 借阅表的结构密码表的结构 输入数据:图书 读者 S只学生,t指老师,1指没有超期,0表示超期 借阅 罚款

密码: (4)、创建视图。以sa的身份登录数据库,创建视图V1,V2,V3 create VIEW V1 create VIEW V2 create VIEW V3 AS AS AS select * from 图书 select * from 借阅 select * from 罚款 建立视图V5,查看在库的图书:create view V5 as select *from 图书 where 借阅状态=‘在库’ 建立已被借出去的图书视图 create view V6 as

select * from 图书 where 借阅状态='出库' 建立逾期未还的图书的学生视图: create view V7 as select * from 借阅 where datediff(day,convert(smalldatetime,借出日期),getdate())>’30’ and 借书证号 in(select 借书证号 from 读者,借阅 Where 借阅.借书证号=读者.借书证号 and 读者类别=‘s’ 四、物理设计和自定义完整性 建立索引:为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是表中建立索引的表项: 图书表(图书编号,条形码号)读者(借书证号)借阅(借书证号,条形码号)罚款表(借书证号,条形码号)密码(借书证号) (2)建立触发器 a.对已有借书证的读者进行查询借书是否超期(这里归定30天): create trigger T1 on 读者 for insert as select 借阅.借书证号,读者.读者姓名,图书.图书编号,图书.书名,借阅.借出日期 from 读者,借阅,图书 where 读者.借书证号=借阅.借书证号 and 图书.条形码号=借阅.条形码号 and 读者类别='s' and Datediff(day,convert(smalldatetime,借出日期),getdate())>=30 b.建立触发器T2(还书时): create trigger T2 on 借阅 for insert as begin update 图书 set 借阅状态='在库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 归还日期=getdate(); update 读者 set 书数=书数-1 where 借书证号=(select 借书证号 from inserted) end c.建立触发器T3(借书书时): create trigger T3 on 借阅 for insert as begin update 图书 set 借阅状态='入库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 借出日期=getdate(); update 读者 set 书数=书数+1 where 借书证号=(select 借书证号 from inserted) end d.建立触发器T4,实现超出借书数目时禁借(针对老师的): create trigger T4 on 读者 for insert

数据库原理实验报告二.pdf

LIAOCHENG UNIVERSITY 计算机学院实验报告 【2015 ~2016 学年第 2 学期】 【一、基本信息】 【实验课程】数据库原理与应用 【设课形式】独立□非独立【课程学分】 【实验项目】实验二、SQL数据操作及查询 【项目类型】基础综合□设计□研究创新□其它[ ]【项目学时】4【学生姓名】傅雪晨【学号】59 【系别专业】电子商务 【实验班组】 【同组学生】 【实验室名】综合实验楼 【实验日期】【报告日期】 【二、实验教师对报告的最终评价及处理意见】 实验成绩:(涂改无效) 指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案

【三、实验预习】 实验条件(实验设备、软件、材料等): 实验2 SQL数据操作及查询 实验目的: 1. 向实验1建立的表中添加数据(元组), 掌握INSERT语句的用法; 2. 修改基本表中的数据, 掌握UPDATE语句的用法; 3. 删除基本表中的数据,掌握DELETE语句的用法; 4. 体会数据完整性约束的作用, 加深对数据完整性及其约束的理解。 5. 熟练掌握SELECT语句,能够运用该语句完成各种查询。 实验内容: 1.使用INSERT语句将教材P82表中的数据添加到数据库STUDENTDB中. 2. Insert into student59 select'1','李勇','男','20','CS','',''union select'2','刘晨','女','19','CS','',''union select'3','王敏','女','18','MA','',''union select'5','张立','男','19','IS','','' select*from student59 select*from course59 select*from sc59 alter table course59NOCHECK Constraint fk_cpno Insert into course59 select'1','数据库','5','4'union select'2','数学','','2'union select'3','信息系统','1','4'union select'4','操作系统','6','3'union select'5','数据结构','7','4'union select'6','数据处理','','2'union select'7','PASCAL语言','6','4' alter table course59CHECK Constraint FK_course59_course59 Insert into sc59 select'1','1',92 union select'1','2',85 union select'1','3',88 union select'2','2',90 union select'2','3',80 alter table sc59CHECK Constraint fk_S_c alter table sc59NOCHECKConstraint fk_S_c

数据库原理实验报告(数据查询)

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 二、[实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 三、[实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查

c语言通讯录管理实验报告及源程序代码

C语言程序设计实训报告 课程名称 C语言程序设计实训 课题名称通讯录管理 专业软件工程 班级 K软件151 学号 姓名 指导教师 2016年 1 月 1 日

湖北汽车工业学院科技学院 C语言程序设计实训任务书 课程名称 C语言程序设计实训 课题通讯录管理 专业班级软件工程 学生姓名 学号 指导老师 审批

一、设计内容与设计要求 1.设计内容: 设计课题:通讯录管理 一、问题描述: 该设计实现对通讯录得管理功能,具体包括从键盘输入通讯录的信息、从指定的文件中读入通讯录的信息、按姓名查询通讯录的信息、按分类查询通讯录的信息、删除指定姓名的通讯录的信息、将通讯录信息保存在指定的文件中等。 二、功能要求: 1)能从键盘输入通讯录的信息(增加,输入时需要能检查该姓名的通讯录 的记录是否已经存在,如果存在,需要询问是否是覆盖还是增加,需要判断输 入的类型是否存在) 2)能从指定的文件中读入通讯录的信息 3)能按姓名查询通讯录的信息 4)能按分类查询通讯录的信息 5)能删除指定姓名的通讯录的信息 6)能将通讯录信息保存在指定的文件中 7)所有数据符合实际应用要求 2.设计要求: 1)设计正确,方案合理。 2)界面友好,使用方便。 3)程序精炼,结构清晰。 4)上机演示。 3.设计报告要求: 课程设计报告格式如下: 1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。 2)正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释)。 3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。 二、进度安排

数据库实验报告二

《数据库原理》实验报告 实验三: 数据库完整性与安全性控 制 实验四: 视图与索引 学号姓名 班级日期 2013302534 杨添文10011303 2015.10.1 7 实验三:数据完整性与安全性控制 一、实验内容 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1)非空约束:为出生日期添加非空约束。 (2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。 (3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。 (4)缺省约束:为性别(ssex)添加默认值,其值为“男”。 (5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查 条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表为分别是S 表和C表,外键名称分别为fk_sno,fk_cno。 2.在图形用户界面中删除上小题中已经创建的各种约束,用SQL语言分别重新创建第1小题中的(2)-(6)小题。(15分,每小题3分,提示:alter table add constraint)(2)alter table s add constraint pk_sno primary key(sno) (3)alter table s add constraint uk_sname unique(sname) (4)alter table s add constraint a default('男')for ssex (5) alter table sc add constraint ck_grade check(grade between 0 and 100) (6) alter table sc add constraint fk_sno foreign key(sno)references s(sno) alter table sc add constraint fk_cno foreign key(cno)references c(cno)

实验三:数据查询实验

实验三:数据查询实验 一、实验目的 了解在企业管理器或查询分析器中执行数据查询的方法;掌握SQL Server Query Analyzer中简单查询、连接查询、嵌套查询操作方法。 二、实验内容 1、使用企业管理器进行查询(验证性,了解部分) (1)查询数据表的全部数据 在企业管理器中,选择需要查询数据的表,用鼠标右键单击该表,从弹出的快捷菜单中选择“打开表”命令,这时将显示该表的全部数据。 (2)使用SELECT语句查询数据表的数据 在企业管理器中,选择需要查询数据的表,用鼠标右键单击该表,从弹出的快捷菜单中选择“打开表”命令,在打开返回表内容的子窗口中,单击工具栏按钮“显示/隐藏SQL窗格”,把子窗口分为上下两部分,上面部分能输入不同的SQL命令。执行时单击工具栏按钮“运行”即可。 (3)学习和使用QBE查询 在企业管理器中,选择需要查询数据的表,用鼠标右键单击该表,从弹出的快捷菜单中选择“打开表”命令,在打开返回表内容的子窗口中,单击工具栏按钮“显示/隐藏条件窗格”,把子窗口分为上下两部分,上面部分能选择QBE查询条件,执行时单击工具栏按钮“运行”即可。若单击工具栏按钮“显示/隐藏SQL窗格”,则在SQL窗格中会显示自动生成的对应SQL语句。 2、使用查询分析器进行查询(验证性) (1)查询Student表中所有学生的学号、姓名和性别。 SELECT Sno, Sname, Ssex FROM Student (2)可以用“*”来选取数据表的全部列 例如:查询Student表中所有学生的基本情况。 SELECT * FROM Student (3)在查询结果中增加计算列,还可修改数据列的显示名称。 例如:查询Student表中所有学生的学号、姓名、性别和出生年份。 SELECT Sno 学号, Sname 姓名, Ssex 性别, Year(GetDate()) - Sage 出生年份 FROM Student (4)使用WHERE子句,可以选择满足条件的部分记录 例如:查询成绩在85~90分之间的学生情况。

数据结构实验一_通讯录

数据结构实验报告 实验名称:实验一——线性表 学生:大学霸 班级: xxxxxxxxxx 班序号: xx 学号: xxxxxxxxxx 日期: 2012年11月1日 1.实验要求 实验目的: 1.学习指针,模板类,异常处理的使用; 2.掌握线性表的操作实现方法; 3.培养使用线性表解决实际问题的能力。 实验容: 利用线性表实现一个通讯录管理,通信录的数据格式如下: struct DataType { int ID; //编号 char name[10]; // char ch; //性别 char phone[13]; // char addr[31]; //地址 }; 具体要求: 1.实现通信录的建立、增加、删除、修改、查询等功能 2.能够实现简单的菜单交互,即可以根据用户输入的命令,选择不同的操作 3.能够保存每次更新的数据 4.编写main()函数测试操作的正确性 2. 程序分析 编程完成通讯录的一般性管理工作如通讯录中记录的增加、修改、查找、删除、输出等功能。每个记录包含、、住址等个人基本信息。用《数据结构》中的链表做数据结构结合c语言基本知识编写一个通讯录管理系统。本程序为使用方便,几乎不用特殊的命令,只需按提示输入即可,适合更多的用户使用。对于建立通讯录管理系统,则需了解并掌握数据结构与算法的设计方法,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。

2.1 存储结构 节点结构: 2.2 关键算法分析 本实验从整体上分为七大模块:( 1)输入联系人信息;(2)添加联系人信息;(3)查找 联系人信息;(4)查看联系人信息;(5)删除联系人信息;(6)修改联系人信息;(7)退出通讯录管理。 通讯录系统图 2.2.1通讯录的建立 伪代码: 1.在堆中申请新的结点; 2.新节点的数据域为a[i]; 3.将新节点加入到链表中; 4.修改尾指针; 5.全部结点插入后需要将终结结点的指针域设为空。 C++实现: ContactBook::ContactBook(DataType a[],int n)//尾插法 { front=new Node; rear=new Node;

《数据库及其应用》实验报告(新)

《数据库及其应用》 (课程编号:B0901000) 实验报告 (2014-2015学年第2学期) 实验成绩: 学号: 姓名: 专业班级: 课堂号: 任课教师: 完成日期:

一、实验目的及要求 能熟练掌握 Access2010的启动、退出,以及操作界面和操作方法。 能够理解关系模型的基本概念。 能够完成简单的数据库概念设计、逻辑设计和物理设计。 能够熟练建立数据库文件、表对象和关系。 能够熟练掌握基本SQL语言,能够在Access中进行一般的SQL 查询。 能够运用SQL对数据库进行更新。 能够熟练掌握不同软件之间的数据交换。 二、实验设备(环境)及要求 PC机,Windows 7,Office 2010(主要是Access 2010) 实验参考教材: 《数据库及其应用(Access及Excel)学习与实验实训教程》(第二版)。 (以下简称《实验教程》) 三、实验内容及记录 实验项目1:熟悉Access的启动和退出,熟悉Access的界面 1.启动Access 练习不同的Access的启动方法。。 2.退出Access 练习不同的Access的启动方法。 3.观察并了解 Access用户界面 不同方式启动进入Access,其界面有所差异。 通过“开始”按钮或桌面Access快捷方式启动进入Backstage视图;通过Access数据库文件关联则直接进入Access数据库窗口。 Access用户界面主要由三个组件组成: 功能区。 Backstage 视图。 导航窗格。 (1)观察Backstage视图:不同方式进入Backstage视图,注意其差别。 (2)观察功能区:了解组成功能区的选项卡。 (3)观察导航窗格。各种对象的显示组合。 4.Access选项及其设置 在Backstage视图中选择“选项”命令单击,进入Access选项对话框窗口。在该窗口可设置默认文件夹等。可设置文档窗口显示方式、定制导航窗格、定制工具栏的项目等。

数据库实验报告实验二

湘潭大学 数据库实验报告 实验名称SQL操作 班级软件工程一班 指导老师郭云飞(老师)学生姓名汤能武 系(院)信息工程学院实验时间2011年12月

SQL操作 一、实验目的 1.了解和掌握MS SQL Server 工具的使用; 2.熟悉掌握SQL' 3.训练学生设计与编写过程,函数与触发器的能力; 二、实验环境 1. 硬件:数据库服务器,客户机,局域网; 2.软件:MS SQL Server 2008 ,建模软件; 三、实验内容 根据给定的问题建立数据库模型,在MS SQL Management Studio 中建立该数据库,并利用SQL语句建立表格与视图,录入数据,进行查询,插入,删除,修改等操作,编写过程,函数,触发器等; 给定问题如下: 1.一个学校有若干教学楼和若干班; 2.一个教室有若干教室和若干管理人员; 3.一间教室只有一个管理人员,但一个管理人员可以管理若干个教室; 4.每周7天,每周上午,下午,晚上都可以安排上课,每周的课表都不变; 5.一间教室或班在一段时间内只能安排一堂课,但可以是合班上课;

四、实验准备 1.理论知识预习及要求 ①使用SQL语句建立数据库; ②使用SQL语句进行查询,修改等操作; ③使用SQL语句建立过程,函数,触发器等; ④使用SQL创建数据表; 2.实验指导书预习及要求 上机前先预习数据库原理指导书的实验,理解和掌握SQL语言的常用操作。 五、实验原理或操作要点简介 注意服务器要先启动,才能与服务器建立连接。 使用SQL命令,完成预定功能。 六、实验步骤 1. 分析给定问题,设计E-R 模型;

2.根据E-R图设计出该问题的关系数据模型,分析数据模型并规范之;关系模型

用XML做通讯录实验报告

综 合 性 实 验 报 告 学院: 专业: 学号: 姓名:

计算机与信息技术学院综合性、设计性实验报告 专业:年级/班级:学年第学期 课程名称XML基础指导教师 本组成员 学号姓名 实验地点实验时间 项目名称个人通讯薄一的设计与实现实验类型综合性 一、实验目的 1、掌握XML文档的基本语法,能够得到格式良好的XML文档; 2、能够了解并掌握XML DTD的定义方法及其用途; 3、能够熟练使用XMLSPY来创建DTD文件及对应的有效的XML文件,并进行验证; 二、实验仪器或设备 学院提供公共机房,1台学生微型计算机。 三、总体设计(设计原理、设计方案及流程等) 设计原理:按照XML、DTD的语法规则来编写、保存文件XML、DTD文件。 设计方案及流程: 利用XML文档作为存储载体来存储个人通讯薄,按照以下要求设计并实现该通讯薄: 1、内含同学(classmate)、朋友(friend)、家人(home)等人员。每条通讯录至少包 含以下信息: a、姓名(name):必须有一个,其中包含一个枚举类型的性别(sex)属性; b、性别(sex):必须有一个; c、联系方式(tel):必须有一个; d、QQ号:一个或多个; e、地址(address):一个或多个; f、备注(other):一个或多个; g、根据需要可添加其它字段。

2、为该XML文档,编写DTD文档。 四、实验步骤(包括主要步骤、代码分析等) 1、按照以上设计编写一个规范的XML文档 这句话放为XML文件的声明,作为文件的第一行,在其前面不能有空白、其他处理指令或注释。XML声明以标识结束。在该XML声明中,属性version 的值为1.0,指出了该XML文件使用的XML版本,目前该属性的值只可以取1.0。属性encoding规定XML文件采用哪种字符集进行编码,在这encoding的值为“UTF-8”,那么标记的名字以及标记包含的文本内容中就可以使用汉字、日文、英文等。最后,文件在保存的时候必须选择UTF-8编码来保存,否则会出错。 如果在XML声明中没有指定encoding的值,那么该属性的默认值为UTF-8。 在XML文档中,有且仅有一个根标记,其他标记都必须封装在根标记中如图所示: 在该XML文件中,根标记的名字为“txl”,在根标记中封装了一个或多个名字为“title”、“classmate”、“friend”、“home”的标记。在名为“classmate”、“friend”、“home” 的标记下,又都包含了名为“name”、“sex”、“tel”、“QQ”、“address”、“other”的子标记,他们分别包含了姓名、性别、联系方式、QQ号、地址、备注这些信息。至此,该XML文件可以称为一个规范的XML文件。 使用XMLSpy,使用按钮检验XML文件的规范性,所得结果为:

Android实验报告_基于SQLite的通信录

第一次实验Android界面设计 一. 实验目的及实验环境 1. 实验目的 1)掌握SQLiteOpenHelper类结构 2)掌握基于SQLite数据库的应用开发过程 3)掌握Content Provider发布数据的方法 4)掌握Content Resolver获取数据的方法 2.实验环境 系统开发平Android Studio 3.0 系统开发平台:Android 7.1 运行平台:Windows10 x64 运行环境:https://www.wendangku.net/doc/f83574562.html, Framework SDK 2.0 二. 实验教材、组织方式、实验内容 1.实验教材:Andorid开发与应用 2.组织方式:个人独立完成 2.实验内容: 实现基于SQLite数据库的通信录应用,通过单击增加图标打开添加通信录界面,通过单击通信录中的各条信息可删除选中项。 三.方案设计 Android系统中集成了SQLite数据库,并且为数据库的操作提供了相关的类和方法,便于没有数据库开发经验的开发者编写程序。另外,Android平台中利用Content Provider机制来实现跨应用程序数据共享。一个应用程序可以通过Content Provider来发布自己的数据,其他的应用程序可以通过Content Resolver 来获取共享数据。

四.运行结果

五.总结 通过这次实验掌握了SQLite OpenHelper类结构,掌握了基于SQLite数据库的应用开发过程以及Content Provider发布数据的方法和掌握Content Resolver获取数据的方法。 六.附录:源代码 主布局文件activity_main.xml:

数据库数据查询实验报告和答案.doc

数据库数据查询实验报告和答案 韶关学院学生实验报告册实验课程名称:数据库技术与应用实验项目名称:数据库的数据查询实验类型(打√):(基础?、综合、设计)院系:专业班级:姓名学号:指导老师:韶关学院教务处编制一、实验预习报告内容预习日期:10月10月22日(星期二第七八节)实验同组人:如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如不够,可另附相同规格的纸张)。 指导教师批阅及签名签名:年月日三、实验报告内容9月24日实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。 实施内容:一、根据实验要求完成实验:(写明步骤和截图)1、在数据库studentsdb中,新建表studentdb_info,curriculum,grade。 并输入相应的数据,如图1、2和3所示。 图1图2图32、在studentsdb数据库中,使用下列SQL语句将输出什么?(1)selectcount(*)fromgrade结果如图4所示:图4(2)selectsubstring(学生姓名,1,2)fromstudent_info结果如图5所示:图5(3)selectupper(kelly)结果如图6所示:图6(4)selectreplicate(kelly,3)结果如图7所示:图7(5)selectsqrt(分数)fromgradewhere分数>=85结果如图8所示:图8(6)select2,3,power(2,3)结果如图9所示:图9(7)selectyear(getdate()),month(getdate()),day(getdate())结果如图10所示:图102、在studentsdb数据库中使用select语句近基本查询。 (1)在student_info表中,查询每个学生的学号、姓名、出生日

相关文档
相关文档 最新文档