中 国 矿 业 大 学
实验报告
课程名称 数据库原理与应用
姓名 杜鹏鹏 班级 工业10-2班
学号 01100292 日期 2012年 10 月
成绩 教师 董成亮
一、实验名称:数据库操作综合实验
二、实验对象:工业工程专业
三、实验目的:
通过本实验,掌握利用SQLSERVER数据库管理系统创建数据表、在数据表中增加、修改、删除和查询数据的基本方法。
四、实验内容
(一)有如下三张表:
(1)学生表
SNo
SN
Age
Sex
Dept
S1
赵亦
17
女
计算机
S2
钱尔
20
男
计算机
S3
孙珊
18
女
信息
S4
李思
21
男
自动化
S5
周武
20
男
信息
说明:Sno为主键,SN不允许为空
(2)课程表
CNo
CN
CT
C1
程序设计
60
C2
微机原理
80
C3
数字逻辑
60
C4
数据结构
80
C5
数据库
60
C6
编译原理
60
C7
操作系统
60
说明:Cno为主键,CN不允许为空
(3)选课表
SNo
CNo
Score
S1
C1
90
S1
C2
85
S2
C4
70
S2
C5
57
S2
C6
80
S2
C7
S3
C2
70
S3
C4
85
S3
C1
75
S4
C1
93
S4
C2
85
S5
C3
83
S5
C4
89
要求:
1.分别写出该三张表的SQL创建语句。
2.利用insert语句在学生表中添加上述学生数据。
3.在该三张表的基础上,如要统计显示如下选课成绩数据,写出对应的select 语句。(提示:只显示男生的数据。)
SN
SEX
CN
SCORE
钱尔
男
数据库
57
钱尔
男
编译原理
80
钱尔
男
操作系统
NULL
钱尔
男
数据结构
70
李思
男
程序设计
93
李思
男
微机原理
85
周武
男
数字逻辑
83
周武
男
微机原理
89
将上述内容以视图的方式,统计出来,利用企业管理器写出视图的创建过程(要求有视图创建过程的界面截图)。
4.写出下表结果的查询语句。
院系
学生数
计算机
2
信息
2
自动化
1
5.将“钱尔”同学 转入“信息”系,写出对应的update语句。
6.删除“周武”同学的选课记录,写出对应的delete语句。
(二)假设有一个书店,书店的管理者要对书店的经营状况进行管理,需要建立一个数据库,其中包括两个表:
存书(书号,书名,出版社,版次,出版日期,作者,书价,进价,数量)
销售(日期,书号,数量,金额)
请用SQL实现书店管理者的下列要求:
(1)建立存书表和销售表;
(2)掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价*数量)
(3)统计总销售额
(4)列出每天的销售报表,包括书名、数量和合计金额
(5)
畅销书,即列出本期(从当前日期起,向前30天)销售数量大于100的书名、数量。
5、结论(实验感想体会)
通过本实验,
1. 掌握SQL语句创建数据库、数据表的方法。
2. 掌握SQL语句增加、修改、删除数据的方法。
3. 掌握利用SQL语句查询数据的基本方法。
一、
1、学生表S
CREATE TABLE S
( SNo VARCHAR(50) primary key ,
SN VARCHAR(50) NOT NULL,
Age INT ,
Sex VARCHAR(2),
Dept VARCHAR(20))
课程表C
CREATE TABLE C
( CNo VARCHAR(50) primary key ,
CN VARCHAR(50) NOT NULL,
CT INT)
选课表SC
CREATE TABLE SC
( SNo VARCHAR(50) , S1
CNo VARCHAR(50) ,
Score DECIMAL(4,1))
2、
insert into S (SNO,SN,AGE,SEX,DEPT)
values('S1','赵亦',17,'女','计算机')
insert into S (SNO,SN,AGE,SEX,DEPT)
values('S2','钱尔',20,'男','计算机')
insert into S (SNO,SN,AGE,SEX,DEPT)
values('S3','孙珊',18,'女','信息')
insert into S (SNO,SN,AGE,SEX,DEPT)
values('S4','李思',21,'男','自动化')
insert into S (SNO,SN,AGE,SEX,DEPT)
values('S5','周武',20,'男','信息')
3、
对应的select 语句为:
SELECT S.SN,SEX,CN,SCORE
FROM S,C,SC
WHERE (SEX= '男' AND
S.SNo = SC.SNo AND
C.CNo=SC.CNo)
4、
SELECT Dept,COUNT(*) AS SNO
FROM S
GROUP BY Dept
5、
UPDATE S
SET Dept = '信息'
WHERE SN = '钱尔'
6、
DELETE
FROM S
WHERE SN = '周武'
二、
1、
CREATE TABLE CunShu
(BNo VARCHAR(50),
BName VARCHAR(50),
PName VARCHAR(50),
RNum INT,
PDate DATETIME,
BAuth VARCHAR(50),
BoutPrice VARCHAR(50),
BinPrice VARCHAR(50),
Num1 INT)
CREATE TABLE XiaoShou
(SDate DATETIME,
BNo VARCHAR(50),
Num2 INT,
JingE INT )
2、
SELECT BName,Num1,BinPrice*Num1 AS YuE
FROM CunShu
3、
SELECT SUM(JingE)
FROM XiaoShou
4、
SELECT BName,Num2,SUM(JingE)
FROM CunShu,XiaoShou
WHERE CunShu.BNo=XiaoShou.BNo
GROUP BY SDate
5、
SELECT BName,