第二次数据库实验报告.docx
- 文档编号:9355357
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:29
- 大小:1.12MB
第二次数据库实验报告.docx
《第二次数据库实验报告.docx》由会员分享,可在线阅读,更多相关《第二次数据库实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
第二次数据库实验报告
数据库原理实验二
学号:
姓名:
专业班级:
实验日期:
2013/5/16
邮箱:
实验前提:
系统中包含SM_E01014040数据库及表中的数据
Student表(SAge=2007-出生年份)
SNo
CLno
SName
SSex
SBir
SAge
03001
030002
李勇
男
1984-6-18
23
03004
030002
刘晨
女
1985-7-21
22
03005
030008
王敏
女
1983-2-15
24
06003
060011
张立
男
1987-1-19
20
06007
060011
朱永
女
1987-3-2
20
07002
070012
周文
女
1988-5-11
19
07008
070012
秦阳
女
1988-12-5
19
07009
070013
张王杨
男
1989-1-12
18
Course表
CNo
CName
CCredits
CTno
CInfo
CPno
CTime
CTerm
00001
数据库
4
2
数据库课程介绍略
5
36
2
00002
数学
4
1
数学课程介绍略
36
1
00003
信息系统
3
2
信息系统课程介绍略
1
27
3
00004
操作系统
3
2
操作系统课程介绍略
7
27
3
00005
数据结构
3
2
数据结构课程介绍略
7
27
2
00006
电路基础
3
2
电路基础课程介绍略
27
2
00007
数字逻辑
4
2
数字逻辑课程介绍略
36
1
00008
英语
2
1
英语课程介绍略
18
1
00009
日语
2
1
日语课程介绍略
18
1
SC表
SNo
CNo
Score
03001
00001
92.0
03001
00002
85.0
03004
00003
58.0
03004
00004
63.0
03005
00005
54.0
03005
00006
55.0
06003
00007
78.0
06003
00008
06007
00001
90.0
06007
00002
60.0
07002
00003
88.0
07002
00004
72.0
07008
00005
92.0
07008
00006
89.0
07008
00007
99.0
07008
00008
03001
00009
03001
00008
Class表
CLno
Tno
Dno
Clname
030002
03001
0001
03软件二班
040001
05007
0001
04信息一班
030008
08002
0002
03统计一班
040009
09006
0002
04应数二班
060011
10100
0003
06通信一班
070012
11089
0003
07信号二班
070013
11091
0003
07电路三班
Teacher表
Tno
TName
age
sal
mgr
DNo
03001
王莹
35
4500
01002
0001
05007
张璟
32
4200
01002
0001
08002
周颖
31
3500
02003
0002
09006
吴红
28
3200
02005
0002
10100
赵国功
29
3000
01006
0003
11089
江卫星
45
2800
01006
0003
11091
朱永
29
2500
01006
0003
01002
李主任
42
6500
0001
qthlete表
name
sex
groupl
陈海
男
1
刘平
男
1
余林
男
2
张建
男
2
周晶晶
女
1
姚倩
女
2
其中,Student表中SNo表示学号,CLno表示班级编号,Sname表示姓名,SSex表示性别,SBir表示出生年月,SAge表示年龄;
Course表中CNo表示课程编号,CName表示课程名称,CTno表示课程类型编码,CInfo表示课程介绍,CCredits表示学分,CTime表示总学时,CPno表示先修课程编号,CTerm表示学期;
SC表中SNo表示学号,CNo表示课程编号,Score表示成绩。
一、实验目的
1、熟练掌握两种方式修改表(表的结构、表中的数据);
2、掌握常规数据查询。
会使用select、where、orderby及几种基本的聚合函数。
二、实验内容和步骤(参考《数据库实验指导》课本查看详细要求)
1、两种方式修改表的结构
1用企业管理器修改SM_E01014040中的数据表:
Student增加一列Address;
实验步骤:
具体步骤截图:
增加列Address后表属性:
2用SQL语句修改表Course的列属性,将CName的长度改为40,且不允许为空
实验步骤:
SQL源码:
USESM_E01014040
ALTERTABLECourseALTERCOLUMNCNameVARCHAR(40)NOTNULL
过程截图:
修改后截图:
3用SQL语句修改SM_E01014040中的数据表:
Student增加一列Emai,要求必须包含“@”字符,将此约束命名为“ck_ea”;
实验步骤:
USESM_E01014040
ALTERTABLEStudentADDEmailVARCHAR(40)NULLCONSTRAINTck_eaCHECK(Emaillike'%@%')
修改后截图:
4用SQL语句删除Student中的列Address
实验步骤:
USESM_E01014040
ALTERTABLEStudentDROPCOLUMNAddress
删除后截图:
5用SQL语句给表Student中的SName添加主键约束,并将此主键约束命名为“pk_name”
实验步骤:
USESM_E01014040
ALTERTABLEStudentADDCONSTRAINTpk_namePRIMARYKEY(SName)
6用SQL语句删除表Student中的SName的主键约束
实验步骤:
USESM_E01014040
ALTERTABLEStudentDROPCONSTRAINTpk_name
7使用WITHNOCHECK子句,向Student中的SAge添加约束,约束名为“ck_age”,使学生年龄为18-25岁。
实验步骤:
USESM_E01014040
ALTERTABLEStudentWITHNOCHECKADDCONSTRAINTck_ageCHECK(SAge>=18ANDSAge<=25)
8使用NOCHECK子句将Student中的Emai约束无效或重新有效。
实验步骤:
USESM_E01014040
ALTERTABLEStudentNOCHECKCONSTRAINTck_ea
USESM_E01014040
ALTERTABLEStudentCHECKCONSTRAINTck_ea
2、两种方式修改表的数据
1用企业管理器,向SM_E01014040数据库中的学生表Student插入一条记录(’03007’,’03002’,’梁栋’,’男’,’1984-10-10’)
实验步骤:
2用SQL语句进行插入操作:
向Student插入一条学号为“06001”、姓名为“王立”、性别为“男”的学生记录;想SC表中插入一条学号为“06001”、课程号为“00001”、选课分数为空的选课记录;
实验步骤:
INSERTINTOStudent(SNo,SName,SSex)VALUES('06001','王立','男')
INSERTINTOSCVALUES('06001','00001',null)
3用SQL语句进行修改操作:
修改学生06002的年龄为20;将所有男生的年龄增加1;给所有选修了数字逻辑课程的学生成绩加5分。
实验步骤:
UPDATEStudentSETSAge=20WHERESNo='07002'
UPDATEStudentSETSAge=SAge+1WHERESSex='男'
UPDATESCSETScore=Score+5WHERECNo=(SELECTCNoFROMCourseWHERECName='数字逻辑')
4用SQL语句进行删除操作:
删除学号为06001的学生记录;删除所有学生的选课记录。
实验步骤:
DELETEFROMStudentWHERESNo=’06001’
DELETEFROMSC
规数据查询中SELECT、WHERE、ORDERBY语句使用
实验前提:
在SM_E01014040数据库中新建表Teacher,包含以下数据项:
Teacher(Tno,TName,age,sal,mgr,DNo),其中,TNo为教职工编号,TName为教职工姓名,age为年龄,sal为月薪,mgr为教职工的上一级领导(即上级领导的职工号),DNo为部门号。
以任意一种方式往Teacher表中中添加数据如下:
Tno
TName
age
sal
mgr
DNo
03001
王莹
35
4500
01002
0001
05007
张璟
32
4200
01002
0001
08002
周颖
31
3500
02003
0002
09006
吴红
28
3200
02005
0002
10100
赵国功
29
3000
01006
0003
11089
江卫星
45
2800
01006
0003
1查看所有教职工的信息
实验步骤:
SELECT*FROMTeacher
2查看所有教职工的职工号和姓名
实验步骤:
SELECTTNo,TNameFROMTeacher
3查看所有教职工的职工号、姓名,并要求输出结果的列名显示为“教职工号”、“姓名”。
实验步骤:
SELECTTNo教职工号,TName姓名FROMTeacher
4查询所有教职工的姓名和年薪,并要求输出结果的列名显示为“姓名”、“年薪”。
实验步骤:
SELECTTName姓名,sal*12年薪FROMTeacher
5查询所有教职工的姓名和年薪,并要求输出结果的列名显示为“姓名”、“年薪”、“币种单位”,其中币种单位的值为“元”。
实验步骤:
SELECTTName姓名,sal*12年薪,'元'币种单位FROMTeacher
6使用DISTICNT:
查看SC表中的学号与不加DISTINCT的区别
实验步骤:
SELECTSNoFROMSC
SELECTDISTINCTSNoFROMSC
7查询所有0002部门职工的信息
实验步骤:
SELECT*FROMTeacherWHEREDNo=’0002’
8查询1984年和1985年出生的女生的信息
实验步骤:
SELECTSName,SBirFROMStudentWHERESSex='女'ANDSBirBETWEEN'1984-01-01'AND'1985-12-31'
9查询0001、0002、003部门的职工的信息
实验步骤:
SELECT*FROMTeacherWHEREDNoIN(‘0001’,’0002’,’0003’)
10查询学号为03004的同学正在学习的课程
实验步骤:
SELECTCNoFROMSCWHERESNo='03004'
11查询姓王的同学的信息
实验步骤:
SELECT*FROMStudentWHERESNameLIKE'王%'
12查询所有职工的年龄,并按年龄从小到大的顺序排列
实验步骤:
SELECTTNo,ageFROMTeacherORDERBYage
13查询学生某门课(如00001)的成绩,成绩由高到低的顺序输出
实验步骤:
SELECTSNo,ScoreFROMSCWHERECNo='00001'ORDERBYScoreDESC
14查询职工的年薪,并按年薪的升序排列
实验步骤:
SELECTTName职工姓名,sal*12年薪FROMTeacherORDERBY2
15查询所有职工信息,按部门号降序排列,在部门相同的情况下,按年龄的升序排列
实验步骤:
SELECT*FROMTeacherORDERBYDNoDESC,age
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二次 数据库 实验 报告