计科专升本数据库作业.docx
《计科专升本数据库作业.docx》由会员分享,可在线阅读,更多相关《计科专升本数据库作业.docx(29页珍藏版)》请在冰豆网上搜索。
计科专升本数据库作业
计科专升本_数据库作业
1)
2)
3)1MB;
4)日志文件初始大小为1MB,增量为10%;
5)主数据文件和日志文件都存放在C:
\ProgramFiles\MicrosoftSQLServer\MSSQL.2\MSSQL\DATA目录下,文件分别为xx.mdf和xx_log.ldf。
2.使用界面创建数据库步骤
【SQLServerManagementStudio】→【对象资源管理器】→【数据库】→【新建数据库】→设置数据库相关属性(名称、大小、位置)
3.启动SQLServer2008查询分析器
【SQLServerManagementStudio】→【新建查询】
4.命令方式下创建数据库
CREATEDATABASEdatabase_name/*指定数据库名*/
[ON子句]/*指定数据库文件和文件组属性
[LOGON子句]/*指定日志文件属性*/
5.命令方式修改数据库
Alterdatabasedatabase_name
{addfile[,…n][tofilegroupfilegroupname]
|addlogfile[,…n]
|removefilelogical_file_name[withdelete]
|modifyfile
六、实验内容及步骤
1、假设SQLServer服务已启动,并以Administrator身份登录计算机(文件名称自定);请分别使用Management界面方式和T-SQL语句实现以下操作:
1)要求在本地磁盘D创建一个学生-课程数据库(名称为student),只有一个数据文件和日志文件,文件名称分别为stu和stu_log,物理名称为stu_data.mdf和stu_log.ldf,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为800MB,日志文件大小不受限制。
createdatabasestudent
onprimary(
name=stu,
filename='d:
\stu.mdf',
size=3,
maxsize=500,
filegrowth=10%)
logon(
name=stu_log,
filename='d:
\stu_log.ldf',
size=3,
maxsize=unlimited,
filegrowth=1)
2)创建一个Company数据库,该数据库的主数据文件逻辑名称为Company_data,物理文件为Company.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Company_log,物理文件名为Company.ldf,初始大小为1MB,最大尺寸为80MB,增长速度为1MB。
createdatabasecompany
onprimary(
name=company,
filename='d:
\company.mdf',
size=10,
maxsize=unlimited,
filegrowth=10%)
logon(
name=company_log,
filename='d:
\company_log.ldf',
size=1,
maxsize=50,
filegrowth=1)
3)创建数据库DB,具有2个数据文件,文件逻辑名分别为DB_data1和DB_data2,文件初始大小均为8MB,最大为100MB,按10%增长;只有一个日志文件,初始大小为3MB,按10%增长;所有文件都存储在D盘文件夹ceshi中。
createdatabaseDB
onprimary(
name=DB_data1,
filename='d:
\ceishi\DB_data1.mdf',
size=5,
maxsize=100,
filegrowth=10%),(
name=DB_data2,
filename='d:
\ceishi\DB_data2.ndf',
size=5,
maxsize=100,
filegrowth=10%)
logon(
name=company_log,
filename='d:
\ceishi\DB_log.ldf',
size=3,
filegrowth=10%)
4)在数据库student中增加数据文件db2,初始大小为10MB,最大大小为80MB,按10%增长;
usestudent
alterdatabasestudent
addfile(
name=db2,
filename='d:
\DB2.ndf',
size=5,
maxsize=50,
filegrowth=10%)
5)在数据库student中添加日志文件,保存在D盘中,初始大小为1MB,最大无限制,增长方式按照1MB增长;
usestudent
alterdatabasestudent
addlogfile(
name=stulog2,
filename='d:
\stulog2_log.ldf',
size=1,
maxsize=unlimited,
filegrowth=1)
6)修改数据库student主数据文件的大小,将主数据文件的初始大小修改为10Mb,增长方式为20%;
usestudent
alterdatabasestudent
modifyfile(
name=stu,
size=10,
filegrowth=20%)
7)修改数据库student辅助数据文件初始大小为3MB,最大为100MB,按照10%增长,名称为db;
usestudent
alterdatabasestudent
modifyfile(
name=db2,
newname=db,
size=10,
maxsize=100,
filegrowth=10%)
8)删除数据库student辅助数据文件和第二个日志文件;
usestudent
alterdatabasestudent
removefiledb
alterdatabasestudent
removefilestulog2
9)删除数据库company和DB。
dropdatabasecompany
dropdatabaseDB
2、将数据库student的所有物理文件移动到‘D:
\xxx‘,并且保证逻辑数据库不受影响,请详细描述解决办法。
七、出现问题及解决办法
如某些操作无法执行,如何解决?
实验三:
使用SQLServer管理数据表
一、实验目的
1.熟悉数据表的特点;
2.熟悉在ManagementStuio中创建、编辑及删除数据表;
3.熟悉使用T-SQL创建、编辑及删除数据表;
二、实验环境
已安装SQLServer2008企业版的计算机(13台);
具有局域网环境,有固定IP;
三、实验学时
2学时
四、实验要求
1.了解表的结构特点;
2.了解SQLServer的基本数据类型;
3.熟悉使用T-SQL语法;
4.完成实验报告。
五、实验内容
请分别使用ManagementStuio及T-SQL完成以下内容:
1、请在指定数据库内完成以下内容:
1)依据数据表的结构创建相对应的数据表,表结构如下所示;
学生信息表(student)
字段名称
字段类型及长度
说明
备注
Sno
Char(9)
学生学号
主关键字
Sname
Char(6)
学生姓名
非空
Ssex
Char
(2)
学生性别
可为空
Sage
Int
学生年龄
可为空
Sdept
VarChar(8)
学生所在院系
可为空
createtablestudent(
Snochar(9)primarykey,
Snamechar(6)notnull,
Ssexchar
(2),
Sageint,
Sdeptvarchar(8)
)
课程信息表(course)
字段名称
字段类型及长度
说明
备注
Cno
Char(4)
课程编号
主关键字
Cname
VarChar(20)
课程名称
非空
Cpno
Char(4)
先行课
可为空
Ccredit
Int
学分
可为空
createtablecourse(
Cnochar(4)primarykey,
Cnamevarchar(20)notnull,
Cpnochar(4),
Ccreditint
)
选课信息表(sc)
字段名称
字段类型及长度
说明
备注
Sno
Char(9)
学生学号
主关键字
Cno
Char(4)
课程编号
主关键字
Grade
Int
成绩
可为空
createtablesc(
Snochar(9),
Cnochar(4),
Gradeint,
primarykey(Sno,Cno),
foreignkey(Sno)referencesstudent(Sno),
foreignkey(Cno)referencescourse(Cno)
)
2)在表student中增加新字段“班级名称(sclass)“;
altertablestudentaddsclasschar(10)
3)在表student中删除字段“班级名称(sclass)”;
altertablestudentdropcolumnsclass
4)修改表student中字段名为“sname”的字段长度由原来的6改为8;
altertablestudentaltercolumnsnamechar(8)
5)修改表student中字段“sdept”名称为“dept”,长度为20;
6)修改表student中sage字段名称为sbirth,类型为smalldatetime;
7)修改表student新名称为stu_info;
8)删除数据表student;
droptablestudent
2、创建教师授课管理数据库JSSK,并完成以下内容;
1)在数据库JSSK中创建下列三张表;
表名:
teachers
列名
数据类型
说明
描述
Tno
字符型,长度7
主键
教师号
Tname
字符型,长度10
非空
姓名
Tsex
字符型,长度2
默认取值为“男”
性别
Birthday
小日期时间型
允许空
出生日期
Dept
字符型,长度20
允许空
所在部门
Sid
字符型,长度18
身份证号
表名:
lessons
列名
数据类型
说明
描述
Cno
字符型,长度10
主键
课程号
Cname
字符型,长度20
非空
课程名
Credit
短整型
学分
property
字符型,长度为10
课程性质
表名:
shouke
列名
数据类型
说明
描述
Tno
字符型,长度7
主键
教师号
Cno
字符型,长度10
主键
课程名
Hours
整数
课时
useJSSK;
createtableteacher(
Tnochar(7)primarykey,
Tnamechar(10)notnull,
Tsexchar
(2)default'男',
Birthdaydate,
Deptvarchar(20),
Tsidvarchar(18)notnull
)
createtablelessons(
Cnochar(10)primarykey,
Cnamechar(20)notnull,
Creditsmallint,
propertychar(10)
)
createtableshouke(
Tnochar(7),
Cnochar(10),
Hoursint,
primarykey(Tno,Cno),
foreignkey(Tno)referencesteacher(Tno),
foreignkey(Cno)referenceslessons(Cno)
)
2)在shouke表里添加一个授课类别字段,列名为Type,类型为Char,长度为4;
altertableshoukeaddtypechar(4)
3)将shouke表的Hours的类型改为smallint;
altertableshoukealtercolumnhourssmallint
4)删除lessons表中的property列;
altertableshoukedropcolumnproperty
3、(选做)创建产品销售数据库CPXS,数据文件的逻辑文件名为cpxs_data,物理文件名为D:
\sql\cpxs.mdf;文件初始大小为2MB,自动增长,每次增长1MB;日志文件逻辑文件名为cpxs_log,物理文件为D:
\sql\cpxs.ldf;文件初始大小2MB,自动增长,每次增长18%;
1)在数据库CPXS中创建下列三张表;
表名:
产品表(cp)表结构
列名
数据类型
说明
描述
Cpbh
字符型,长度6
主键
产品编号
Cpmc
字符型,长度30
非空
产品名称
Jg
浮点型,长度8
允许空
价格
Kcl
整型,长度4
允许空
库存量
表名:
销售商(xss)表结构
列名
数据类型
说明
描述
Xsbh
字符型,长度6
主键
销售商编号
Xsmc
字符型,长度30
非空
销售商名称
Dq
字符型,长度10
允许空
地区
Fzr
字符型,长度8
允许空
负责人
Dh
字符型,长度12
允许空
电话
Bz
文本,长度16
允许空
备注
表名:
产品销售(xss)表结构
列名
数据类型
说明
描述
Cpbh
字符型,长度6
主键
产品编号
Xsbh
字符型,长度6
主键
销售商编号
Xssj
Datetime,长度8
非空
销售时间
Sl
整型,长度4
非空
数量
Je
浮点型,长度8
非空
金额
useCPXS
createtable
六、出现问题及解决方法
如数据表无法创建或删除等问题;
实验四:
管理SQLServer表数据
一、实验目的
1.熟悉数据表结构及使用特点;
2.熟悉使用ManagementStuio界面方式管理数据表数据;
3.熟悉使用T-SQL语句管理数据表数据。
二、实验环境
已安装SQLServer2008企业版的计算机(13台);
具有局域网环境,有固定IP;
三、实验学时
2学时
四、实验要求
1.了解SQLServer数据表数据的管理方法;
2.了解SQLServer数据类型;
3.完成实验报告(部分题只需给出关键语句)。
五、实验内容及步骤
以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用ManagementStuio界面方式及T-SQL语句实现进行以下操作:
1.向各个数据表中插入如下记录:
学生信息表(student)
Sno
Sname
Ssex
Sage
Sdept
200818001
赵菁菁
女
23
CS
200818002
李勇
男
20
CS
200818003
张力
男
19
CS
200818004
张衡
男
18
IS
200818008
张向东
男
20
IS
200818006
张向丽
女
20
IS
200818007
王芳
女
20
CS
200818008
王民生
男
28
MA
200818009
王小民
女
18
MA
200818010
李晨
女
22
MA
200818011
张毅
男
20
WM
200818012
杨磊
女
20
EN
200818013
李晨
女
19
MA
200818014
张丰毅
男
22
CS
200818018
李蕾
女
21
EN
200818016
刘社
男
21
CM
200818017
刘星耀
男
18
CM
200818018
李贵
男
19
EN
200818019
林自许
男
20
WM
200818020
马翔
男
21
200818021
刘峰
男
28
CS
200818022
牛站强
男
22
200818023
李婷婷
女
18
200818024
严丽
女
20
200818028
朱小鸥
女
30
WM
课程信息表(course)
Cno
Cname
Cpno
Ccredit
1
数据库
8
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
8
数据结构
7
4
6
数据处理
2
7
PASCAL语言
6
4
8
大学英语
4
9
计算机网络
4
10
人工智能
2
选课信息表(sc)
Sno
Cno
Grade
200818001
1
78
200818002
1
88
200818002
3
83
200818003
1
86
200818004
1
74
200818008
1
88
200818006
1
84
200818004
2
46
200818008
2
89
200818006
2
68
200818008
2
72
200818009
2
76
200818010
2
96
200818010
8
86
200818011
8
62
200818018
8
0
200818018
8
88
200818001
4
62
200818002
4
88
200818021
9
84
200818001
8
88
200818021
6
88
200818001
7
70
200818008
10
68
200818016
8
Null
200818017
8
Null
2.修改CS系姓名为“李勇”的学生姓名为“李咏”;
updatestudentsetsname='李咏'
wheresname='李勇'
3.修改课程“数据处理”的学分为3学分;
updatecoursesetccredit=3
wherecname='数据处理'
4.将选修课程“1”的同学成绩加8分;
updatescsetgrade=grade+5
wherecno='1'
5.将选修课程“大学英语”的同学成绩加8分;
updatescsetgrade=grade+5
wherecno=(selectcnofromcoursewherecname='大学英语')
6.将学号为“200818010”的学生信息重新设置为“王丹丹、女、20、MA”;
updatestudentsetsname='王丹丹',ssex='女',sage=20,sdept='MA'
wheresno='200515010'
7.删除数据表student中无专业的学生记录;
deletefromstudent
wheresdeptisnull
8.删除数据表student中计算机系年龄大于28的男同学的记录;
deletefromstudent
wheresage>25andssex='男'andsdept='MA'
9.删除数据表course中学分低于1学分的课程信息;
deletefromcourse
whereccredit<1;
六、出现问题及解决办法
如:
插入数据记录除了Insert还有什么方法?
如何导出数据表中的数据,或者某些操作无法执行,如何解决?
实验五:
数据库单表查询
一、实验目的
1.掌握SELECT语句的基本语法和查询条件表示方法;
2.掌握查询条件表达式和使用方法;
3.掌握GROUPBY子句的作用和使用方法;
4.掌握HAVING子句的作用和使用方法;
5.掌握ORDERBY子句的作用和使用方法。
二、实验环境
已安装SQLServer2008企业版的计算机(13台);
具有局域网环境,有固定IP;
三、实验学时
2学时
四、实验要求
1.了解数据库查询;
2.了解数据库查询的实现方式;
3.完成实验报告;
五、实验内容及步骤
以数据库原理实验4数据库中数据为基础,请使用T-SQL语句实现以下操作:
1.列出所有不姓刘的所有学生;
select*fromstudentwhereSnamenotlike'刘%'
2.列出姓“沈”且全名为3个汉字的学生;
select*fromstudentwheresnamelike'沈__'
3.显示在1988年以后出生的学生的基本信息;
select*fromstudentwhereSage<2012-1985
4.按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息,其中性别按以下规定显示:
性别为男显示为男生,性别为女显示为女生,其他显示为“条件不明”;
select'性别'=casewhenssex='男'then'男生'
whenSsex='女'then'女生'end,
Snameas'姓名',
Sageas'年龄',sdeptas'院系'
fromstudent
5.查询出课程名含有“数据”字串的所有课程基本信息;
select*fromcoursewherecnamelike'%数据%'
6.显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;
selectsno学号,sname姓名,ssex性别,sage年龄,Sdept院系
fromstudent
whereSnolike'_______[12349]%'orSnolike'________[12349]%'
7.列出同时选修“1”号课程