资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
实验三:交互式SQL语句的使用1、实验目的(1)掌握数据库对象的操作过程,包括创建、修改、删除(2)熟悉表的各种操作,包括插入、修改、删除、查询(3)熟练掌握常用SQL语句的基本语法2、实验平台使用SQLServer提供的MicrosoftSQLServerManagementStudio工具,交互式使用SQL语句。3实验内容及要求选择如下一个应用背景之一:学生选课系统习题3、4、和5中使用的数据库其它你熟悉的应用(1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作(2)要求认真进行实验,记录各实验用例及执行结果。(3)深入了解各个操作的功能。实验要求包括如下方面的内容:3.1数据定义1基本表的创建、修改及删除2索引的创建3视图的创建3.2数据操作完成各类更新操作包括:1插入数据2.修改数据3.删除数据3.3数据查询操作元成各类查询操作1.单表查询2.分组统计3.连接查询4.嵌套查询5.集合查询3.4数据操作1. 创建视图视图查询参考示例:建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。一、数据定义创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表:表1.Student表结构列名称用途类型长度约束备注Sno学号字符8主键Sname姓名字符8Ssex性别字符2Sage年龄整型Sdept所在系字符20Sclass班级字符4表2.Course表结构列名称用途类型长度约束备注Cno】田千口i=r.课程号字符4主键Cname课程名字符40Cpno先修课程号字符4Ccredit学分整型表3.SC表结构列名称用途类型长度约束备注Sno学号字符8外键Cno】田千口i=r.课程号字符4Grade成绩整型1.创建、修改及删除基本表(1) 创建Student表CREATETABLEStudent(SnoCHAR(8)PRIMARYKEY,SnameCHAR(8),SsexCHAR(2)NOTNULL,SageINT,SdeptCHAR(20);(2) 创建Course表CREATETABLECourse(CnoCHAR(4)PRIMARYKEY,CnameCHAR(40)NOTNULL,CpnoCHAR(4),CcreditSMALLINT,);(3) 创建SC表CREATETABLESC(SnoCHAR(8)FOREIGNKEY(Sno)REFERENCESStudent(Sno),CnoCHAR(4),GradeSMALLINT,);(4) 创建员工表EmployeeCREATETABLEEmployee(编号CHAR(8)PRIMARYKEY,姓名VARCHAR(8)notnull部门CHR(40),工资numeric(8,2),生日datetime,职称char(20),);指出该语句中的错误并改正后执行。(5)检查表是否创建成功SELECT*FROMStudentSELECT*FROMCourseSELECT*FROMSCSELECT*FROMEmployee(6)修改表结构及约束增加班级列ALTERTABLEStudentADDSclasschar(4)修改年龄列ALTERTABLEStudentALTERCOLUMNSagesmallint增加约束ALTERTABLECourseADDUNIQUE(Cname)(7)删除表DROPTABLEEmployee2创建索引(1)为Course表按课程名称创建索引CREATEINDEXiCnameOnCourse(Cname)(2)为Student表按学生姓名创建唯一索引CREATEUNIQUEINDEXiSnameONStudent(Sname)(3)为SC表按学号和课程号创建聚集索引CREATECLUSTEREDINDEXiSnoCnoOnSC(Sno,Cnodesc)(4)为Course表按课程号创建唯一索引请自己完成该操作3创建视图建立信息系学生的视图:CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept=IS;3.2数据操作1.插入数据将如下表格中的数据分别插入到数据库相应的表中:表4.学生基本信息表学号姓名性别年龄所在系班级20100001李勇男20CS100120100002刘晨女19CS100120100021王敏女18MA100220100031张立男19IS100320100003刘洋女100120100010赵斌男19IS100520100022张明明男19CS1002表5.课程信息表】田千口i=r.课程号课程名先修课程号学分1数据库系统原理5642高等数学23管理信息系统144操作系统原理635数据结构746数据处理27C语言4表6.学生选课信息表学号】田千口i=r.课程号成绩2010000119220100001285201000013882010000219020100002280201000031201000103插入到Student表INSERTINTOStudentVALUES(20100001,李勇,男,20,CS,1001)INSERTINTOStudentVALUES(20100002,刘晨,女,19,CS,1001)INSERTINTOStudent(Sno,Sname,Ssex,SageSdept,Sclass)VALUES(20100021,王敏:女,18,MA,1002)INSERTINTOStudent(Sno,Sname,Ssex,SageSdept,sclass)VALUES(20100031,张立,男,19,IS,1003)INSERTINTOStudent(Sno,Sname,Ssex,sclass)VALUES(20100003,刘洋,女,1001)检查下列语句中的错误,并改正:INSERTINTOStudent(Sno,Sname,Ssex,Sage,Sdept,sclass)VALUES(20100010,赵斌,男,19,IS,1005)INSERTINTOStudentVALUES(20100022,张明明,19,男,CS,1002)插入到Course表INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES(1,数据库系统原理,5,4)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES(2,高等数学,null,2)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES(3,管理信息系统,1,4)请写出插入其余行的插入语句,并插入数据。插入到SC表INSERTINTOSCVALUES(20100001,1,92)INSERTINTOSCVALUES(20100002,2,80)INSERTINTOSC(Sno,Cno)VALUES(20100003,1)INSERTINTOSC(Sno,Cno,Grade)VALUES(20100010,3,null)请写出插入其余行的插入语句,并运行。(1) 多行插入到表中创建存一个表,保存学生的学号、姓名和年龄:CREATETABLEcs_Student(学号char(8),姓名char(8),年龄smallint);插入数据行:INSERTINTOcs_StudentSELECTSno,Sname,SageFROMstudentWhereSdept=CS;(5)检查插入到表中的数据SELECT*FROMStudentSELECT*FROMCourseSELECT*FROMSC2修改数据(1)将学生20100001的年龄改为22岁。UPDATEstudentSETSage=22WHERESno=20100001;(2)将所有学生的年龄增加一岁。UPDATEStudentSETSage=Sage+1(3)填写赵斌同学的管理信息系统课程的成绩UPDATESCSETGrade=85WHERESno=20100010ANDCno=3(4)将计算机科学系全体学生的成绩加5分UPDATEscSETGrade=Grade+5WHERECS=(selectSdeptfromstudentwherestudent.Sno=sc.Sno);(5)请自己完成如下操作将刘晨同学的2号课程成绩修改为80将“20100021同”学的学号修改为“20100025”(6)检查数据是否修改3.删除数据(1)删除学号为201000022的学生记录DELETEFROMStudentWHERESno=20100022(2)删除学号20100001学生的1号课程选课记录将选课信息复制到一个临时表tmpSC中:SELECT*INTOtmpSCFROMSC在tmpSC中执行删除操作:DELETEFROMtmpSCWHERESno=20100001andCno=1(3)删除临时表中20100002学生的全部选课记录请自己完成该操作。(4)删除计算机科学系所有学生的选课记录DELETEFROMtmpSCWHERECS=(selectSdeptfromstudentwherestudent.Sno=tmpSC.Sno);(5)删除全部选课记录DELETEFROMtmpSC(6)检查数据是否删除3.3数据查询操作完成如下查询操作:1单表查询(1)按指定目标列查询查询学生的详细记录:SELECT*FROMStudent;查询学生的学号、姓名和年龄SELECTSno,Sname,SageFROMStudent;(2)目标列包含表达式的查询查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。SELECTSname,YearofBirth:,2004-Sage,LOWER(Sdept)FROMStudent;(3)查询结果集中修改列名称查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。SELECTSname,YearofBirth:asBIRTH,2000-SageBIRTHDAY,DEP
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号