数据库原理卡片.docx
《数据库原理卡片.docx》由会员分享,可在线阅读,更多相关《数据库原理卡片.docx(36页珍藏版)》请在冰点文库上搜索。
数据库原理卡片
实验项目卡片
院、系:
信息技术学院网络系实验室:
计算机应用技术公共实训基地编号:
1
实验项目名称
数据定义
所属课程
数据库原理实验
课程总学时
16
实验类型
演示
√验证
综合
设计
课程类别
基础课
√专基课
专业课
选修课
大纲要求
√必开
选开
实验设备套数
31
实验组数
31
每组人数
1
实验指导书
√有
待稿
实验学时
2
开出学期
2010-2011
第一学期
面向专业
网络工程
实验目的
掌握数据定义的相关命令
实验要求
具备数据库系统的基本知识
具备SQL数据定义相关知识
实验内容
要建立学生成绩管理系统,对学生基本情况(包括学号,姓名,性别,出生日期,专业,所在系,联系电话),课程基本情况(课程号,课程名,教师,开课学期,学时,学分),以及学生每门课的成绩进行管理。
1.根据要求完成数据库的创建、修改和删除
2.根据要求完成数据表的创建、修改和删除
实验环境
SQLServer2000
本实验项目所用主要仪器设备情况
本实验项目主要消耗材料情况
序号
设备编号
设备名称
规格型号
数量
品名
规格
计量单位
每组用量/次
备注
计算机
31
实验步骤或设计思路
(一)使用查询分析器用Transact-SQL语句完成数据库的创建
创建名为XSCJ的数据库,主文件存储位置为E盘XSCJ文件夹,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件存储位置为E盘XSCJ文件夹,初始大小为2MB,最大可增长到5MB,按1MB增长。
(二)用T-SQL修改数据库XSCJ的属性
修改数据库XSCJ的属性,添加一个包含1个文件的文件组到XSCJ数据库中去,并将此文件组指定为默认文件组。
(三)在查询分析器中用Transact-SQL语句删除XSCJ
(四)根据题目要求,创建XSCJ数据库中的表
要建立学生成绩管理系统,对学生基本情况(包括学号,姓名,性别,出生日期,专业,所在系,联系电话),课程基本情况(课程号,课程名,教师,开课学期,学时,学分),以及学生每门课的成绩进行管理。
根据要求设计数据库。
1.画出E-R图
2.将E-R图转换为关系模式
3.用T-SQL建立对应的数据表
(五)使用企业管理器插入数据至上步所创建的表中
(六)学生基本情况,增加学籍列,列定义如下:
列名:
XJ;数据类型:
char;宽度:
40。
(七)学生基本情况,修改学籍列,宽度:
16。
(八)表的删除,练习删除学生基本情况对应的表。
实验结果
(一)使用查询分析器用Transact-SQL语句完成数据库的创建
创建名为XSCJ的数据库,主文件存储位置为E盘XSCJ文件夹,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件存储位置为E盘XSCJ文件夹,初始大小为2MB,最大可增长到5MB,按1MB增长。
Createdatabasexscj
Onprimary
(name=xscj_data,
filename='E:
\xscj\xscj.mdf',
size=10,
maxsize=50,
filegrowth=5%)
logon
(name=xscj_log,
filename='E:
\xscj\xscj.ldf',
size=2,
maxsize=5,
filegrowth=1)
(二)用T-SQL修改数据库XSCJ的属性
修改数据库XSCJ的属性,添加一个包含1个文件的文件组到XSCJ数据库中去,并将此文件组指定为默认文件组。
usexscj
alterdatabasexscj
addfilegroupgroup2/*要首先定义文件组然后才能添加文件到文件组中*/
alterdatabasexscj
addfile
(name=xscj_group2,
filename='E:
\xscj\xscj_group2.ndf',
size=2MB,
maxsize=100MB,
filegrowth=5%)
tofilegroupgroup2
alterdatabasexscj
modifyfilegroupgroup2default
(三)在查询分析器中用Transact-SQL语句删除XSCJ
Dropdatabasexsc
(四)根据题目要求,创建XSCJ数据库中的表
要建立学生成绩管理系统,对学生基本情况(包括学号,姓名,性别,出生日期,专业,所在系,联系电话),课程基本情况(课程号,课程名,教师,开课学期,学时,学分),以及学生每门课的成绩进行管理。
根据要求设计数据库。
1.画出E-R图
m
n
2.将E-R图转换为关系模式
学生(学号,姓名,性别,出生日期,专业,所在系,联系电话)
课程(课程号,课程名,教师,开课学期,学时,学分)
学习(学号,课程号,成绩)
3.用T-SQL建立对应的数据表
Usexscj
createtablexsqk(xhchar(6)primarykey,
xmvarchar(8)notnull,
xbchar
(2),
csrqsmalldatetime,
zyvarchar(10),
szxvarchar(10),
lxdhvarchar(11))
go
createtablekc(kchchar(3)primarykey,
kcmvarchar(20)notnull,
jsvarchar(10),
kkxqtinyint,
xstinyint,
xftinyint
)
go
createtablexs_kc(xhchar(6)notnull,
kchchar(3)notnull,
cjtinyint
constraintpk_3primarykey(xh,kch))
go
(五)使用企业管理器插入数据至上步所创建的表中
(六)学生基本情况,增加学籍列,列定义如下:
列名:
XJ;数据类型:
char;宽度:
40。
altertablexsqk
addxjchar(40)
(七)学生基本情况,修改学籍列,宽度:
16。
altertablexsqk
altercolumnxjchar(16)
(八)表的删除,练习删除学生基本情况对应的表。
droptablexsqk
教学院长、教学主任:
刘潇宁方路实验室主任:
韩长军填表人:
鲁琴
填表说明:
1.选择有的项在空格中打(√)即可
2.表内各项应认真如实填写,填写完毕后妥善保管,不得随意涂改,不得遗失
实验项目卡片
院、系:
信息技术学院网络系实验室:
计算机应用技术公共实训基地编号:
2
实验项目名称
数据查询
所属课程
数据库原理实验
课程总学时
16
实验类型
演示
验证
综合
√设计
课程类别
基础课
√专基课
专业课
选修课
大纲要求
√必开
选开
实验设备套数
31
实验组数
31
每组人数
1
实验指导书
√有
待稿
实验学时
4
开出学期
2010-2011
第一学期
面向专业
网络工程
实验目的
掌握从简单到复杂的各种查询
实验要求
具备数据库系统的基本知识
具备SQL数据查询相关知识
实验内容
对实验一创建的学生成绩管理数据库(xscj),自行设计方案实现查询.
实验环境
SQLServer2000
本实验项目所用主要仪器设备情况
本实验项目主要消耗材料情况
序号
设备编号
设备名称
规格型号
数量
品名
规格
计量单位
每组用量/次
备注
计算机
31
实验步骤或设计思路
自行设计方案实现如下查询
对数据库XSCJ
1.查询XSQK表中所有的系名。
2.查询有多少同学选修了课程。
3.查询有多少同学没有选课。
4.查询与杨颖同一个系的同学姓名。
5.查询选修了课程的学生的姓名、课程名与成绩。
6.统计每门课程的选课人数和最高分。
7.统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列。
8.查询选修课程号为“101”或“102”且分数不低于90分的学生的学号,姓名、课程号、课程名和成绩。
9.查询既不是“计算机应用系”也不是“信息管理”系的学生的姓名和所在系。
10.查询其它系中比“计算机应用”系所有学生年龄都小的学生姓名及出生日期。
12.查询选修了2门课程以上的学生学号。
13.检索“陈红”老师所授课程的课程号和课程名。
14.检索出生日期在‘1990-1-1’之前的男学生学号和姓名。
15.检索至少选修“陈红”老师所授全部课程的学生姓名。
16.检索“杨颖”同学不学课程的课程号。
17.检索至少选修两门课程的学生学号。
18.检索全部学生都选修的课程的课程号和课程名。
19.检索选修课程包含“陈红”老师所授课程之一的学生学号。
20.检索选修课程号为101和102的学生学号。
21.检索选修全部课程的学生姓名。
22.检索选修课程包含学号为020102的学生所修课程的学生学号。
23.检索选修课程名为“操作系统”的学生学号和姓名。
实验结果
自行设计方案实现如下查询
对数据库XSCJ
1.查询XSQK表中所有的系名。
selectdistinctszxfromxsqkwhereszxisnotnull
2.查询有多少同学选修了课程。
selectcount(distinctxh)fromxs_kc
3.查询有多少同学没有选课。
selectcount(xh)fromxsqk
wherexhnotin(
selectxhfromxs_kc)
4.查询与杨颖同一个系的同学姓名。
selectxmfromxsqk
whereszx=(
selectszxfromxsqk
wherexm='杨颖')andxm<>'杨颖'
5.查询选修了课程的学生的姓名、课程名与成绩。
selectxm,kcm,cjfromxsqk,kc,xs_kc
wherexsqk.xh=xs_kc.xhandkc.kch=xs_kc.kchandxsqk.xhin(
selectxhfromxs_kc)
6.统计每门课程的选课人数和最高分。
selectkch,count(xh),max(cj)
fromxs_kc
groupbykch
7.统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列。
selectxh,count(kch),sum(cj)
fromxs_kc
groupbyxh
orderbycount(kch)desc
8.查询选修课程号为“101”或“102”且分数不低于90分的学生的学号,姓名、课程号、课程名和成绩。
selectxsqk.xh,xm,kc.kch,kcm,cjfromxsqk,kc,xs_kc
wherexsqk.xh=xs_kc.xhandkc.kch=xs_kc.kch
andxs_kc.kchin('101','102')andcj>=90
9.查询既不是“计算机应用系”也不是“信息管理”系的学生的姓名和所在系。
selectxm,szxfromxsqk
whereszxnotin('计算机应用','信息管理')
10.查询其它系中比“计算机应用”系所有学生年龄都小的学生姓名及出生日期。
selectxm,csrqfromxsqk
whereszx<>'计算机应用'andcsrq>(
selectmax(csrq)fromxsqk
whereszx='计算机应用')
12.查询选修了2门课程以上的学生学号。
selectxh
fromxs_kc
groupbyxh
havingcount(kch)>=2
13.检索“陈红”老师所授课程的课程号和课程名。
Selectkch,kcmfromkcwherejs=’陈红’
14.检索出生日期在‘1990-1-1’之前的男学生学号和姓名。
Selectxh,xmfromxsqkwherecsrq<’1990-1-1’andxm=’男’
15.检索至少选修“陈红”老师所授全部课程的学生姓名。
Selectxmfromxsqkwherexhin
(selectxhfromxs_kcwherekchin(selectkchfromkcwherejs=’陈红’))
或selectxmfromxsqk,xs_kc,kcwherexsqk.xh=xs_kc.xhandkc.kch=xs_kc.kchandjs=’陈红’
16.检索“杨颖”同学不学课程的课程号。
Selectkchfromxs_kcwherekchnotin(selectkchfromxs_kcwherexh=(selectxhfromxsqkwherexm=’杨颖’)
17.检索至少选修两门课程的学生学号。
Selectxhfromxs_kcgroupbyxhhavingcount(kch)>=2
18.检索全部学生都选修的课程的课程号。
Selectxs_kc.kchfromxs_kc,kc
groupbyxs_kc.kch
havingcount(xs_kc.xh)=(selectcount(xh)fromxsqk)
19.检索选修课程包含“陈红”老师所授课程之一的学生学号。
Selectxhfromxs_kcwherekchin(selectkchfromkcwherejs=’陈红’)
20.检索选修课程号为101和102的学生学号。
Selectxhfromxs_kcwherekch=’101’andkch=’102’
21.检索选修全部课程的学生姓名。
Selectxmfromxsqkwherexhin
(selectxhfromxs_kcgroupbyxh
havingcount(kch)=(selectcount(kch)fromkc))
22.检索选修课程包含学号为020102的学生所修课程的学生学号。
Selectxhfromxs_kcwherekchin(selectkchfromxs_kcwherexh=’020102’)
23.检索选修课程名为“操作系统”的学生学号和姓名。
Selectxsqk.xh,xmfromxsqk,kch,xs_kcwherexsqk.xh=xs_kc.xhandkc.kch=xs_kc.kchandkcm=’操作系统’
(8)查询每个学生超过他选修课程平均成绩的课程号。
selectxh,kch,cjfromxs_kcasxwherecj>(selectavg(cj)fromxs_kcasywherex.xh=y.xh)
教学院长、教学主任:
刘潇宁方路实验室主任:
韩长军填表人:
鲁琴
填表说明:
1.选择有的项在空格中打(√)即可
2.表内各项应认真如实填写,填写完毕后妥善保管,不得随意涂改,不得遗失
实验项目卡片
院、系:
信息技术学院网络系实验室:
计算机应用技术公共实训基地编号:
3
实验项目名称
数据操纵
所属课程
数据库原理实验
课程总学时
16
实验类型
演示
√验证
综合
设计
课程类别
基础课
√专基课
专业课
选修课
大纲要求
√必开
选开
实验设备套数
31
实验组数
31
每组人数
1
实验指导书
√有
待稿
实验学时
2
开出学期
2010-2011
第一学期
面向专业
网络工程
实验目的
掌握数据的增、删、改操作
实验要求
具备数据库系统的基本知识
具备SQLServer数据操纵的相关知识
实验内容
1.数据的增加
2.数据的删除
3.数据的修改
实验环境
SQLServer2000
本实验项目所用主要仪器设备情况
本实验项目主要消耗材料情况
序号
设备编号
设备名称
规格型号
数量
品名
规格
计量单位
每组用量/次
备注
计算机
31
实验步骤或设计思路
(一)插入数据至表XSCJ各数据库表中(每个表插入2条记录)
(二)修改数据表XSQK的数据
修改表XSQK中的数据,将“陈新江”同学的专业改为“网站开发”,所在系改为“网络工程”。
(三)删除表数据
将表XSQK中“陈新江”同学的记录删除。
(四)完成下面实验题:
(1)学生成绩表XS_KC中的kch为“103”的成绩都提高5分。
(2)删除学生成绩表XS_KC中不及格的记录
实验结果
(一)插入数据至表XSCJ各数据库表中(每个表插入2条记录)
usexscj
insertintoxsqkvalues
('020101','杨颖','女','1980-7-20','计算机应用','计算机','88297147')
insertintoxsqkvalues
('020102','方露露','女,'1981-1-15','计算机应用','计算机','88297147')
insertintokcvalues
('101','计算机原理','陈红',2,45,3)
insertintokcvalues
('102','计算方法','王颐',3,45,3)
insertintoxs_kcvalues
('020101','101',85)
insertintokcvalues
('020101','102',85)
(二)修改数据表XSQK的数据
修改表XSQK中的数据,将“陈新江”同学的专业改为“网站开发”,所在系改为“网络工程”。
updatexsqksetzy='网站开发',szx='网络工程'wherexm='陈新江'
(三)删除表数据
将表XSQK中“陈新江”同学的记录删除。
deletefromxsqkwherexm='陈新江'
(四)完成下面实验题:
(1)学生成绩表XS_KC中的kch为“103”的成绩都提高5分。
Updatexs_kcsetcj=cj+5wherekch=’103’
(2)删除学生成绩表XS_KC中不及格的记录
deletefromxs_kcwherecj<60
教学院长、教学主任:
刘潇宁方路实验室主任:
韩长军填表人:
鲁琴
填表说明:
1.选择有的项在空格中打(√)即可
2.表内各项应认真如实填写,填写完毕后妥善保管,不得随意涂改,不得遗失
实验项目卡片
院、系:
信息技术学院网络系实验室:
计算机应用技术公共实训基地编号:
4
实验项目名称
事务
所属课程
数据库原理实验
课程总学时
16
实验类型
演示
√验证
综合
设计
课程类别
基础课
√专基课
专业课
选修课
大纲要求
√必开
选开
实验设备套数
31
实验组数
31
每组人数
1
实验指导书
√有
待稿
实验学时
1
开出学期
2010-2011
第一学期
面向专业
网络工程
实验目的
正确理解事务处理、批处理
理解事务处理和批处理的关系
实验要求
具备数据库系统的基本知识
具备事务的相关知识
实验内容
设有银行业务数据库bankdb,其中,帐户信息表(bank)存放帐户的信息,交易信息表(transInfo)存放每次的交易信息。
试用事务解决银行转帐问题。
实验环境
SQLServer2000
本实验项目所用主要仪器设备情况
本实验项目主要消耗材料情况
序号
设备编号
设备名称
规格型号
数量
品名
规格
计量单位
每组用量/次
备注
计算机
31
实验步骤或设计思路
设有银行业务数据库bankdb,其中,帐户信息表(bank)存放帐户的信息,交易信息表(transInfo)存放每次的交易信息。
试用事务解决银行转帐问题。
帐户信息表(bank)
CustomerName
CardID
CurrentMoney
张三
10010001
1000.0000
李四
10010002
1.0000
交易信息表(transInfo)
TransDate
CardID
TransType
TransMoney
2009-5-2011:
01:
09.453
10010001
支取
200.0000
1.从张三账户转200元至李四帐户
实验结果
1.参考代码如下:
BEGINTRANSACTION
/*--定义变量,用于累计事务执行过程中的错误--*/
DECLARE@errorSumINT
SET@errorSum=0--初始化为0,即无错误
/*--转帐:
张三的帐户少300元,李四的帐户多300元*/
UPDATEbankSETcurrentMoney=currentMoney-300
WHEREcustomerName='