软件技术基础综合实验报告 本文关键词:软件技术,实验,基础,报告,综合
软件技术基础综合实验报告 本文简介:一、实验目的实验3使用Select语句进行数据查询1.观察查询结果,体会SELECT语句实际应用;2.要求学生能够在查询分析器中使用SELECT语句进行简单查询;3.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法;4.加深对SQL语言的嵌套查询语句的理解;5.熟练掌握数据查询中的分组、
软件技术基础综合实验报告 本文内容:
一、实验目的
实验
3
使用
Select
语句进行数据查询
1.观察查询结果,体会
SELECT
语句实际应用;
2.要求学生能够在查询分析器中使用
SELECT
语句进行简单查询;
3.
熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法;
4.
加深对
SQL
语言的嵌套查询语句的理解;
5.
熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
二、
实验准备
1.
完成实验二,成功建立了基本表;
2.
了解简单
SELECT
语句的用法;
3.
了解
SELECT
语句的
GROUP
BY
和
ORDER
BY
子句的作用;
4.
了解统计函数和分组统计函数的使用方法。
三、实验要求
完成实验,并验收实验结果提交实验报告。
四、实验内容
写出相应的语句。所有的查询全部用
Transact-SQL
语句实现。
1.查询学生的所有信息。
2.查询所有姓‘张’的学生的信息。
3.查询所有姓张的学生的信息,在列标题之间显示
3
行。
4.查询编号“00000001”的姓名信息。
5.查询表“Course”所有信息。
6.查询学生信息前
6
条记录。
7.将“Course”表中字段名做以下修改:
课程编码
替换
CouNo
‘课程名称
替换
CouName
教
师
替换
Teacher
‘上课时间
替换
SchoolTime
限制选课人数
替换
LimitNum
‘报名人数
替换
WIllNum。
8.查询《Linux
操作系统》课程教师信息。
9.查询“Course”表,平均报名人数。
10.查询“Course”表,报名人数与限选人数之比。
11.查询编号
004,007,013
课程名称。
12.查询所有含字母‘D’的课程名程信息。
13.查询所有含‘制作’的课程名称信息。
14.查询所有名字含“宝”的学生信息。
15.查询排除“刘”姓的所有学生信息。
16.查询报名人数小于
15
的课程信息。
17.查询报名人数大于
15
小于
25
的课程信息。
实验代码如下:
1.
select
from
Student
2.
select
from
Student
where
StuName
like
张%
3.
select
top
3
from
Student
where
StuName
like
张%
4.
select
from
Course
5.
select
StuNo,StuName
from
Student
where
StuNo
=
00000001
6.
select
top
6
from
Student
7.
select
课程编码
=
CouNo,课程名称
=CouName,教师
=Teacher,上课时间
=SchoolTime,限制选课人数
=
LimitNum,报名人数
=WillNum
from
Course
8.
select
from
Course
where
CouName=
Linux操作系统
9.
select
最小报名人数
=
min(WillNum),最大报名人数
=MAX(WillNum),平均报名人数
=AVG(Willnum)
from
Course
10.
select,WillNum/LimitNum
报名人数与限选人数之比
from
Course
order
by
WillNum
11.
select
CouName
as
课程名称
from
Course
where
CouNo
in(
004,007,013
)
12.
select
CouName
from
Course
where
CouName
like
%D%
13.
select
CouName
from
Course
where
CouName
like
%制作%
14.
Select
from
Student
where
CouName
like
%宝%
15.
select
from
Student
where
StuName
not
like
刘%
16.
select
from
Course
where
WillNum25
实验总结:
通过本次实验,我学会了使用SELECT
语句进行简单查询;
掌握了简单表的数据查询、数据排序和数据连接查询的操作方法;
加深了对
SQL
语言的嵌套查询语句的理解;
掌握了数据查询中的分组、统计、计算和组合的操作方法。
实验
4
综合实验
【实验目的】
通过一个实际问题的解决,来考察学生对《软件技术基础》相关理论知识掌握程
度。
【实验要求】
1)
掌握
SQL
Server
2005
或(SQL
Server
2008)环境使用;
2)
掌握基本
SELECT
查询及其相关子句的使用;
3)
掌握复杂的
SELECT
查询,如多表查询、子查询、连接和联合查询。
【实验步骤】
1.根据给出实验课题,完成自己的设计,并编程具体实现。
2.完成后举手示意让老师验收。
3.回去后完成自己的实验报告。实验报告中应有实现的
SQL
语句以及遇到的问题
及其解决方案和实验后的心得。
4.在综合设计实验过程中严禁互相讨论交流。
【实验内容】
1.
创建“学生成绩”(XSCJ)数据库。
2.
建立“学生情况”(XSQK)表。
列名
数据类型
长度
是否允许为空值
默认值
说明
学号
Char
6
N
主键
姓名
Char
8
N
性别
Bit
1
N
男
1,女
0
出生日期
smalldatetime
4
N
专业
Char
10
N
所在系
Char
10
N
联系电话
Char
11
Y
3.
输入“学生情况”(XSQK)表记录。
4.
建立“课程”(KC)表。
列名
数据类型
课程号
Char
课程名
Char
教师
Char
开课学期
Tinyint
学时
Tinyint
学分
Tinyint
5.
输入“课程”(KC)表记录
长度
3
20
10
1
1
1
是否允许为空值
N
N
N
默认值
60
说明
主键
课程号
101
102
103
104
105
106
107
108
课程名
计算机原理
计算方法
操作系统
数据库原理及应用
网络基础
高等数学
英语
VB
程序设计
教师
陈红
王颐
徐格
应对刚
吴江江
孙中文
陈刚
赵红韦
开课学期
2
3
2
3
4
1
1
3
学时
45
45
60
75
45
90
90
70
学分
3
3
4
5
3
6
6
5
6.建立“成绩”(XS_KC)表。
列名
数据类型
学号
Char
课程号
Char
成绩
Tinyint
长度
6
3
1
是否允许为空值
N
N
默认值
说明
外键
外键
0
7.输入“成绩”(XS_KC)表记录。
学号
课程号
020101
101
020101
102
020101
107
020102
101
020102
102
020104
107
020202
103
020202
108
020203
103
8.用
SQL
语句,完成以下内容。
成绩
85
87
88
58
63
76
55
80
57
1)
2)
3)
在
KC
表中查询学分低于
3
的课程信息,并按课程号升序排列。
在
XS_KC
表中按学号分组汇总学生的平均分,并按平均分的降序排列。
在
XS_KC
表中查询选修了
3
门以上课程的学生学号。
4)
5)
6)
7)
8)
9)
按学号对不及格的成绩记录进行明细汇总。
分别用子查询和连接查询,求
107
号课程不及格的学生信息。
用连接查询在
XSQK
表中查询住在同一寝室的学生,即其联系电话相同
查询
XSQK
表中所有的系名。
查询有多少同学选修了课程。
查询有多少同学没有选课。
10)
查询与杨颖同一个系的同学姓名。
11)
查询选修了课程的学生的姓名、课程名与成绩。
12)
统计每门课程的选课人数和最高分。
13)
统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列。
代码如下:
建立数据库:
create
database
XSCJ
on
(name=StdData1,filename=
E:/DB/XSCJData.mdf,size=5,maxsize=30,filegrowth=5%)
log
on
(name=StdLog1,filename=
E:/DB/XSCJLog.ldf,size=1,maxsize=5,filegrowth=1)
USE
XSCJ
CREATE
TABLE
XSQK
(
学号
char(6)
not
null
PRIMARY
KEY,姓名
char(8)
not
null,性别
bit
not
null,出生日期
smalldatetime
not
null,专业
char(10)
not
null,所在系
char(10)
not
null,联系电话
char(11)
)
INSERT
INTO
XSQK
VALUES(
020101,杨颖,0,1980-7-20,计算机应用,计算机,88297147
);
INSERT
INTO
XSQK
VALUES(
020102,方露露,0,1981-1-15,计算机应用,计算机,88297147
);
INSERT
INTO
XSQK
VALUES(
020103,俞奇军,1,1980-2-20,信息管理,计算机,88297151
);
INSERT
INTO
XSQK
VALUES(
020104,胡国强,1,1980-11-7,信息管理,计算机,88297151
);
INSERT
INTO
XSQK
VALUES(
020105,薛冰,1,1981-3-10,水利工程,水利系,88297152
);
INSERT
INTO
XSQK
VALUES(
020201,秦盈飞,0,1980-9-15,电子商务,经济系,88297161
);
INSERT
INTO
XSQK
VALUES(
020202,董含静,0,1980-8-7,电子商务,经济学,88297062
);
INSERT
INTO
XSQK
VALUES(
020203,陈伟,1,19807-20,电子商务,经济系,88297171
);
INSERT
INTO
XSQK
VALUES(
020204,陈新江,1,1981-1-15,房建,水利系,88297171
);
CREATE
TABLE
KC
(
课程号
char(3)
not
null
primary
key,课程名
char(20)
not
null,教师
char(10),开课学期
tinyint,学时
tinyint
default
60,学分
tinyint
not
null,)
INSERT
INTO
KC
VALUES(
101,计算机原理,陈红,2,45,3)
INSERT
INTO
KC
VALUES(
102,计算方法,王颐,3,45,3)
INSERT
INTO
KC
VALUES(
103,操作系统,徐格,2,60,4)
INSERT
INTO
KC
VALUES(
104,数据库原理及应用,应对刚,3,75,5)
INSERT
INTO
KC
VALUES(
105,网络基础,吴江江,4,45,3)
INSERT
INTO
KC
VALUES(
106,高等数学,孙中文,1,90,6)
INSERT
INTO
KC
VALUES(
107,英语,陈刚,1,90,5)
INSERT
INTO
KC
VALUES(
108,VB程序设计,赵红韦,3,70,5)
CREATE
TABLE
XS_KC
(
学号
char(6)
not
null,课程号
char(3)
not
null,成绩
tinyint,/*primary
key(学号,课程),*/
CONSTRAINT
C1
CHECK(成绩>=0
and
成绩=3
4.
SELECT
学号
as
不及格学生学号,课程名,成绩
FROM
XS_KC,KC
WHERE
(成绩<60
and
XS_KC.课程号=KC.课程号)
5.
SELECT
XSQK.*,课程名,成绩
FROM
XSQK,KC,XS_KC
WHERE
(
XSQK.学号=XS_KC.学号
and
XS_KC.课程号=KC.课程号
and
XS_KC.课程号=
107
and
成绩<60)
SELECT
XSQK.*
FROM
XSQK
WHERE
学号
IN
(
SELECT
学号
From
XS_KC
where
(课程号=
107
and
成绩<60)
)
6.
SELECT
A.*
FROM
XSQK
A,XSQK
B
WHERE
(A.联系电话=B.联系电话
AND
A.学号!=B.学号)
7.
SELECT
所在系
AS
系名
FROM
XSQK
GROUP
BY
所在系
8.
select
COUNT(DISTINCT
XS_KC.学号)
as
已选修人数
from
XS_KC
9.
select
(COUNT(DISTINCT
XSQK.学号))-COUNT(DISTINCT
XS_KC.学号)
as
未选课人数
from
XSQK,XS_KC
10.
select
姓名,课程名,成绩
from
XSQK,XS_KC,KC
where(XSQK.学号=XS_KC.学号
and
XS_KC.课程号=
KC.课程号)
11.
SELECT
姓名
as
与杨颖同系的学生
FROM
XSQK
WHERE
所在系
IN
(
select
所在系
from
XSQK
where
姓名=
杨颖
)
and姓名!=
杨颖
12.
select
XS_KC.课程号,课程名,MAX(成绩)
as
最高分,COUNT(DISTINCT
学号)
as
选课人数
from
XS_KC,KC
where(XS_KC.课程号=KC.课程号)
GROUP
BY
XS_KC.课程号,课程名
13.
select
姓名,sum(成绩)
AS
考试总成绩,COUNT(
XS_KC.学号)
as
选课门数
from
XSQK,XS_KC
where(XSQK.学号=XS_KC.学号)
GROUP
BY
XSQK.学号,姓名
实验总结:通过本次实验,我掌握了多表查询、子查询、连接和联合查询等sql查询方法,能够熟练使用SQL
Server
2008进行建立、更新、查询数据库等简单操作,熟悉基本的SQL查询语法,加深了对数据库管理系统的理解。