实验一数据库及基本表的建立.docx
《实验一数据库及基本表的建立.docx》由会员分享,可在线阅读,更多相关《实验一数据库及基本表的建立.docx(13页珍藏版)》请在冰豆网上搜索。
实验一数据库及基本表的建立
实验一数据库及基本表的建立
一、实验目的
1、掌握SQLSERVER的查询分析器和企业管理器的使用;
2、掌握创建数据库和表的操作;
二、实验内容和要求
1、练习使用SQL语句、企业管理器(EnterpriseManager)创建数据库;
2、练习使用SQL语句、企业管理器(EnterpriseManager)创建数据库表;
三、实验主要仪器设备和材料
1.计算机及操作系统:
PC机,Windows2000/xp;
2.数据库管理系统:
SQLsever2005;
四、实验方法、步骤及结果测试
题目1、创建数据库“学生情况”:
实现代码及截图:
SQL语句
Createdatabase学生情况
查询分析器执行情况
:
SQL语句及执行结果截图显示
找到主数据文件和日志文件,观察大小,并给出截图。
题目2、将数据库“学生情况”改名为“student”
SQL语句
EXECsp_renamedb学生情况,student
查询分析器执行情况:
SQL语句及执行结果截图显示
题目3、创建基本表
S表
含义
字段名
字段类型
字段宽度
说明
学号
Sno
Char
10
主键,不允许为空
姓名
Sname
char
10
不允许为空
性别
Ssex
char
2
取值为男或女
专业
Ssp
char
20
系别
Sdept
char
20
出生日期
Sbirth
datetime
地区来源
Sfrom
varchar
30
变动情况
Schg
char
10
政治面貌
Spa
char
8
默认团员
民族
Snation
char
8
默认为汉族
C表
含义
字段名
字段类型
字段宽度
说明
课程编号
Cno
Char
10
主键
课程名称
Cname
Char
10
唯一约束
任课教师
Tname
Char
8
开课系别
Cdept
Char
20
学分
CCredit
Real
0-20
Sc表:
含义
字段名
字段类型
字段宽度
说明
学号
Sno
Char
10
外键,与cno共同构成主键
课程编号
Cno
Char
10
外键,与sno共同构成主键
成绩
Grade
real
检查约束0-100
备注
Remark
varchar
50
创建各表的实现代码及截图:
SQL语句
createtableS
(
Snochar(10)primarykey,
Snamechar(10)notnull,
Ssexchar
(2)check(Ssex='男'orSsex='女'),
Sspchar(20),
Sdeptchar(20),
Sbirthdatetime,
Sfromvarchar(30),
Schgchar(10),
Spachar(8)default'团员',
Snationchar(8)default'汉族');
createtableC(
Cnochar(10)primarykey,
CnameChar(10)unique,
Tnamechar(8),
Cdeptchar(20),
CCreditrealcheck(CCredit>=0andCCredit<=20));
createtableSc(
Snochar(10)ReferencesC(Cno),
Cnochar(10)Referencess(sno),
Graderealcheck(Grade>=0andGrade<=100)
)
忘记了一个字段,加上:
altertableScaddRemakevarchar(50)
查询分析器执行情况:
SQL语句及执行结果截图显示
题目4*、用sql语句将C表中的ccredit改为整型,同样约束为0-20之间
题目5、用sql语句在S表中添加一格“备注”字段remark,变长字符型,长度30,并保存结果
题目6.用sql语句将S表中“专业”字段数据类型改为varchar,长度为30并保存结果
题目7.用sql语句删除SC表中的“备注”字段并保存结果
生成数据库关系图截图显示
题目8生成数据库关系图截图显示
题目9*.用sql语句在S中增加约束,要求学号要用S开头,后接4位数字组成的字符串
试着插入学号为0001,姓名为张三的学生,给出提示结果的截图
altertablescdropFK__Sc__Sno;
updatescsetsno='s'+sno;
updatessetsno='s'+sno;
altertablesaddconstraintck_s_snocheck(snolike's____');
altertablescaddconstraintfk_sc_snoforeignkey(sno)referencess(sno);
题目10.通过sql语句向s表中添加信息。
Sno
Sname
Ssex
Ssp
Sdept
Sbirth
Sfrom
Schg
Spa
Snation
Remark
S0001
高明
男
计算机科学与技术
CS
1994-03-14
大连
团员
汉
S0002
东学婷
女
计算机应用
CS
1986-10-24
包头
转系
团员
蒙
S0003
张五男
男
电子商务
MA
1984-2-17
上海
退学
团员
汉
S0004
刘%
男
电子商务
MA
1985-4-24
巴盟
团员
汉
S0005
吴惠
女
软件开发
CS
1985-2-10
通辽
团员
汉
S0006
王涛
男
软件开发
CS
1984-9-8
赤峰
团员
满
S0007
郭凤丽
男
应用电子
IS
1984-3-2
广州
团员
蒙
S0008
贾惠
男
应用电子
IS
1983-2-2
深圳
团员
汉
S0009
刘一%
男
软件开发
CS
1985-9-9
东莞
团员
满
S0010
李春刚
男
计算机应用
CS
1985-2-10
河源
团员
汉
李春刚
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0001','高明','计算机科学与技术','CS','1994-03-14','大连',null,default,'汉)'
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0002','东学婷','女','计算机应用','CS','1986-10-24','包头','转系',default,'蒙',null);
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0003','张五男','男’,'电子商务','MA','1984-2-17','上海','退学',default,default,null);
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0004','刘%','男','电子商务','MA','1985-4-24','巴盟',null,default,default,null);
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0005','吴惠','女','软件开发','CS','1985-2-10','通辽',null,default,default,null);
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0006','王涛','男','软件开发','CS','1984-9-8','赤峰',null,default,'满',null);
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0007','郭凤丽','男','应用电子','IS','1984-3-2','广州',null,default,'蒙',null);
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0008','贾惠','男','应用电子','IS','1983-2-2','深圳',null,default,default,null);
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0009','刘一%','软件开发','CS','1985-9-9','东莞',null,default,'满',null);
insertintos(sno,sname,ssex,ssp,sdept,sbirth,sfrom,schg,spa,snation,sremark)values('s0010','李春刚','男','计算机应用','CS','1985-2-10','河源',null,default,default,'李春刚'');
题目11.通过sql语句向C表中添加数据,并保存结果
Cno
Cname
Tname
Cdept
Ccredit
01
计算机应用
王晓梅
IS
4
02
高等数学
李一
MA
6
03
网页制作
张铁柱
CS
6
04
软件工程
付大鹏
CS
4
05
数据库
白一格
CS
6
INSERTINTOC(Cno,Cname,Tname,Cdept,CCredit)VALUES('01','计算机应用','王晓梅','IS',4)
INSERTINTOC(Cno,Cname,Tname,Cdept,CCredit)VALUES('02','高等数学','李一','MA',6)
INSERTINTOC(Cno,Cname,Tname,Cdept,CCredit)VALUES('03','网页制作','张铁柱','CS',6)
INSERTINTOC(Cno,Cname,Tname,Cdept,CCredit)VALUES('04','软件工程','付大鹏','CS',4)
INSERTINTOC(Cno,Cname,Tname,Cdept,CCredit)VALUES('05','数据库','白一格','CS',6)
截图:
题目12.通过sql语句添加学生选课信息[]
Sno
Cno
Grade
0001
02
85
0001
03
75
0001
04
90
0002
05
50
0003
01
85
0003
02
75
0004
03
60
0004
02
92
0005
01
85
0005
04
46
0006
05
95
0006
03
52
0007
04
96
0007
05
85
0008
04
76
0008
05
68
备注:
给出的Sno错误:
(S+4位数字)
INSERTINTOSc(Sno,Cno,Grade)VALUES('001','02',85)
INSERTINTOSc(Sno,Cno,Grade)VALUES('001','03',75)
INSERTINTOSc(Sno,Cno,Grade)VALUES('001','04',90)
INSERTINTOSc(Sno,Cno,Grade)VALUES('002','05',50)
INSERTINTOSc(Sno,Cno,Grade)VALUES('003','01',85)
INSERTINTOSc(Sno,Cno,Grade)VALUES('003','02',75)
INSERTINTOSc(Sno,Cno,Grade)VALUES('004','03',60)
INSERTINTOSc(Sno,Cno,Grade)VALUES('004','02',92)
INSERTINTOSc(Sno,Cno,Grade)VALUES('005','01',85)
INSERTINTOSc(Sno,Cno,Grade)VALUES('005','04',46)
INSERTINTOSc(Sno,Cno,Grade)VALUES('006','05',95)
INSERTINTOSc(Sno,Cno,Grade)VALUES('006','03',52)
INSERTINTOSc(Sno,Cno,Grade)VALUES('007','04',96)
五、实验中出现的问题及解决方案
1.创建数据库时常出错,可不删除原数据库,再修改字段,然后再重新定义数据库
2.要去除强制外键约束,才能在中间插入值
六、思考题
1、说明数据库中的表和数据文件的关系。
答:
创建了一个数据库(*.mdf)之后就可以创建表,而且可以清楚的看到每个(dbo.表名)下的列和数据
2、通过sql语句做如下修改:
(1)主数据文件的容量为4mb,最大容量为20mb,递增量为2mb
(2)事务日志文件容量为2mb,最大容量为10mb,递增量为1mb
Alter database 高明 modify file
(name=’学生情况’, Size=4mb, Maxsize=20mb, Filegrowth=2mb)
Alter database 学生情况 modify file
(name=学生信息_log, Size=2mb, Maxsize=10mb, Filegrowth=1mb)