数据库实验报告班级:计科161姓名:蒋东旗指导老师:杜献峰实验一基本表的定义、删除与修改定义基本表1建立学生表Stu,每个属性名的意义为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。这里要求Sno和Sname不能为空值,且取值唯一。Sno为主码。createtablestu(snochar(20)primarykey,snamechar(20)unique,ssexchar(2),sagesmallint,sdeptchar(20));2建立课程表Cose,o-ame-课程名,Cpno-先修课程号,Credit-o为主码。ochar(4)amechar(40)notnull,cpnochar(4),ccreditsmallint,foreignkey(cpno)o));3建立成绩表StuSC。其中的属性名意义分别为Sno-o-课程号和Grade-考试成绩。o为主码,o分别为外码。createtablestusc(snochar(9),cnochar(4),gradesmallint,o,sno),foreignkey(sno)referencesstu(sno),o)o));修改基本表(Alter)1向基本表Stu中增加“入学时间”属性列,其属性名为RegisterDate,数据类型为DATE型。(RegisterDatedate);2删除Student表的属性列RegisterDate。AltertablestuDropcolumnRegisterDatecascadeconstraints;说明:为了保证后面例子能够顺利运行,请大家一定将属性列RegisterDate从Stu表中删除。3将Sage(年龄)的数据类型改为SMALLINT型。AltertablestuModifysagesmallint;4将Stu表的属性列RegisterDate名修改为RegDate,其它不变。;5增加Sname(姓名)必须取唯一值的约束。(sname);6删除Sname(姓名)必须取唯一值的约束。;(o);(sno)(sno)o));9定义SC表中grade默认值为0;(gradedefault0)10定义SC表中grade最小值为0,最大值为100;((0<=grade)and(grade<=100));删除基本表1删除Stu表(注:能直接删除student表吗?为什么?)。不能,因为stusc表中的sno依赖stu表中的sno2删除cose表(注:能直接删除course表吗?为什么?)。不能,o3删除StuSC表。实验二SQL语言应用单表查询无条件查询1查询全体学生的详细记录。select*fromstudent2查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。selectsname,sno,sdeptfromstudent;3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。selectsname,sno,(2018-sage)asbirthdayfromstudent;4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。selectsname,(2018-sage)asbirthday,lower(sno)fromstudent;5查询选修了课程的学生学号。selectdistinctsnofromsc;条件查询6查询数学系全体学生的学号(Sno)和姓名(Sname)。selectsno,snamefromstudentwheresdept='数理学院';7查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。selectsname,sagefromstudentwhe
数据库实验报告 来自淘豆网m.daumloan.com转载请标明出处.