数据库原理实验报告Word格式文档下载.docx
- 文档编号:17974626
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:44
- 大小:167.26KB
数据库原理实验报告Word格式文档下载.docx
《数据库原理实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库原理实验报告Word格式文档下载.docx(44页珍藏版)》请在冰豆网上搜索。
刘晨'
女'
19,'
200215123'
王敏'
18,'
MA'
200215125'
张立'
IS'
intoCourse(Cno,Cname,Cpno,Ccredit)
2'
数学'
NULL,2)
6'
数据处理'
4'
操作系统'
3)
7'
PASCAL语言'
4)
5'
数据结构'
1'
数据库'
3'
信息系统'
8'
DB_Design'
intoSC(Sno,Cno,Grade)
92)
85)
88)
90)
80)
3、查询
selectSno,Sname
fromStudent;
/*查询经过计算的值*/
selectSname,2014-Sage
fromStudent
/*指定字符通过小写输出*/
selectSname,'
yearofbirth'
2014-Sage,lower(Sdept)
/*为查询结果指定列标题*/
selectSnamename,'
birth,2014-Sagebirthday,lower(Sdept)department
/*消除取值重复的行*/
selectdistinctSno
fromSC
/*比较大小查询*/
selectSname,Sage
whereSage>
19
selectSname
whereSdept='
/*确定范围*/
selectSname,Sdept,Sage
whereSagebetween20and30
whereSagenotbetween20and30
/*确定集合*/
selectSname,Ssex
whereSdeptin('
/*字符匹配*/
select*
fromstudent
wheresnolike'
wheresno<
>
'
wheresno!
='
/*不含有通配符的时候可以使用“=;
<
;
!
=”代替like,notlike*/
selectSname,Sno,Ssex
whereSnamelike'
刘%'
欧阳__'
/*注意一个汉字两个字符*/
selectSname,Sno
__阳%'
whereSnamenotlike'
selectCno,Ccredit
fromCourse
whereCnamelike'
DB\_Desigen'
escape'
\'
/*转码字符由自己定义*/
/*涉及空值的查询*/
selectSno,Cno
whereGradeisnull/*注意is不能用=替代*/
whereGradeisnotnull
/*多重条件查询*/
andSage<
20/*and优先级比or高*/
orSdept='
/*有时in谓词可看做多个or的缩写*/
/*orderby子句*/
selectSno,Grade
whereCno='
orderbyGradedesc/*asc:
升序;
desc:
降序,缺省升序*/
orderbySdept,Sagedesc
/*聚集函数*/
selectcount(*)/*貌似distinct和*是不能同时使用的*/
selectcount(distinctSno)
selectavg(Grade)
whereCno=1/*计算一号课程的平均成绩*/
selectmax(Grade)
whereCno=2/*计算号课程的最高成绩*/
selectsum(Ccredit)
fromSC,Course
whereSno='
andSC.Cno=Course.Cno/*查询学号为的学生选修课程的总学分*/
/*groupby子句*/
selectCno,COUNT(Sno)
groupbyCno
/*having短语*/
selectSno
groupbySno
havingCOUNT(*)>
2
/*连接查询*/
selectStudent.*,SC.*
fromStudent,SC
whereStudent.Sno=SC.Sno
/*自然连接,两个表中不重复的属性名可以不加前缀*/
selectStudent.Sno,Sname,Ssex,Sdept,Cno,Grade
/*自身连接,要为表取别名,此时必须都要有前缀*/
selectfirst.Cno,second.Cpno
fromCoursefirst,Coursesecond
wherefirst.Cpno=second.Cno
/*外连接*/
fromStudentrightouterjoinSCon(Student.Sno=Sc.Sno)
/*复合条件连接*/
selectStudent.Sno,Sname
whereStudent.Sno=SC.SnoandSc.Cno='
andSC.Grade>
80
selectStudent.Sno,Sname,Cname,Grade
fromStudent,Course,SC
whereStudent.Sno=SC.SnoandCourse.Cno=SC.Cno
/*嵌套查询*/
/*in谓词*/
selectSno,Sname,Sdept
whereSdeptin(
selectSdept
fromStudent
whereSname='
)/*此查询可以利用自身连接代替selectS1.Sno,S1.Sname,S1.Sdept
fromStudentS1,StudentS2
whereS1.Sdept=S2.SdeptandS2.name='
*/
whereSnoin(
selectSno
fromSC
whereCnoin(
selectCno
fromCourse
whereCname='
)
/*以上代码的连接方式*/
whereCourse.Cname='
andSC.Cno=Course.CnoandStudent.Sno=Sc.Sno
/*带有比较运算符的子查询*/
/*相关子查询*/
fromSCx
whereGrade>
=(
selectavg(Grade)
fromSCy
wherey.Sno=x.Sno
/*带有any(some)或all谓词的子查询*/
whereSage<
any(
selectSage
whereSdept='
)andSdept<
'
all(
Cs'
)andSdept<
/*带有exists谓词的子查询*/
whereexists(
select*
whereSno=Student.SnoandCno='
fromStudentStu1
whereexists(
fromStudentStu2
whereStu2.Sname='
andStu1.Sdept=Stu2.Sdept
4、更新
/*插入数据*/
/*插入元组*/
intoStudent(Sno,Sname,Ssex,Sdept,Sage)
values('
200215128'
陈东'
18)
/*插入子查询结果*/
intoDept_age(Sdept,Avg_age)
selectSdept,avg(Sage)
groupbySdept
/*修改数据*/
updateStudent
setSage=22
setSage=Sage+1
/*带子查询的修改语句*/
updateSC
setGrade=0
where'
=(
whereStudent.Sno=SC.Sno)
/*删除数据*/
delete
whereStudent.Sno=SC.Sno
5、视图
/*建立视图*/
createviewIS_Student
AS
selectSno,Sname,Sage
withcheckoption/*增删改操作时要保证修改的行满足视图定义中的谓词条件*/
createviewIS_S1(Sno,Sname,Grade)
as
selectStudent.Sno,Sname,Grade
andStudent.Sno=SC.SnoandSC.Cno='
实验一SQLSERVER2000的基本使用
实验目的和要求:
通过本实验,使学生熟悉SQLSERVER2000的工作环境,尤其是SQLSERVER2000的企业管理器与查询分析器,熟悉对SQLSERVER2000的各种操作。
具体地,掌握表(关系)和索引的建立方法;
掌握表结构(关系模式)的修改方法。
实验内容:
1.在studentdb数据库中利用查询分析器创建以下3个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性):
①student(学生信息表):
主码
列名
数据类型
宽度
小数位
空否
取值范围
备注
Pk
sno
char
5
N
学号
sname
10
姓名
ssex
Y
性别
sage
smallint
不小于12
年龄
sdept
15
系名
createtablestudent(
snochar(5)primarykeynotnull,
snamechar(10)uniquenotnull,
ssexchar
(2),
sagesmallintcheck(sage>
=12),
sdeptchar(15),
②course(课程表):
cno
Char
课程号
cname
20
课程名称
cpno
先行课号
ccredit
学分
createtablecourse(
cnochar
(2)primarykey,
cnamechar(20),
cpnochar
(2),
ccreditsmallint,
foreignkey(cpno)referencesCourse(cno)
③sc(学生选课表):
小数
外码
参照关系
Fk
student
course
grade
Decimal
1
0≤x≤100
成绩
createtablesc(
snochar(5),
cnochar
(2),
gradedecimal(5)constraintg1check(grade>
=0andgrade<
=100),
primarykey(sno,cno),
foreignkey(sno)referencesstudent(sno),
foreignkey(cno)referencescourse(cno)
2.在spjdb数据库中利用查询分析器创建以下4个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性):
①S(供应商信息表):
供应商号
供应商名称
status
大于0
供应商状态
city
所在城市
createtableS(
snochar
(2)primarykey,
snamechar(10)notnull,
statussmallintcheck(status>
0),
citychar(10),
②P(零件信息表):
pno
零件号
pname
零件名称
color
颜色
weight
重量
createtableP(
pnochar
(2)primarykey,
pnamechar(10)notnull,
colorchar
(2),
weightsmallintcheck(weight>
③J(工程项目表):
jno
工程项目号
jname
工程项目名称
createtableJ(
jnochar
(2)primarykey,
jnamechar(10)notnull,
citychar
(2),
weightsmallint,
④SPJ(供应情况表):
S
P
J
qty
x>
createtableSPJ(
snochar
(2)notnull,
pnochar
(2)notnull,
jnochar
(2)notnull,
qtysmallintcheck(qty>
primarykey(sno,pno,jno),
foreignkey(sno)referencesS(sno),
foreignkey(pno)referencesP(pno),
foreignkey(jno)referencesJ(jno),
3.修改表结构,具体要求如下:
(1)将表course的cname列的数据类型改为varchar(40).
altertablecoursealtercolumncnamevarchar(40)
(2)为表student增加一个新列:
birthday(出生日期),类型为datetime,默认为空值
altertablestudentaddbirthdaydatetimenull
(3)将表sc中的grade列的取值范围改为小于等于150的正数.
altertablescdropconstraintg1
altertablescaddconstraintg1check(grade<
=150)
(4)为Student表的“Sex”字段创建一个缺省约束,缺省值为’男’
altertablestudentaddconstraintssexcheck(ssexin('
))
(5)为“Sdept”字段创建一个检查约束,使得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 实验 报告