版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理与应用(SQLServer)练习题- #-实验1数据库操作1创建数据库:操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸为无限大,增长速度1MB;数据库日志文件逻辑名称为testog,物理文件名为test_log.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为10%。参考答案:createdatabaseTestONprimary(name=test_data,filename=d:testtest_data.mdf,size=5MB,maxsize=unlimited,filegrow
2、th=1MB)LOGON(name=test_log,filename=d:testtest_log.ldf,size=1MB,maxsize=5MB,filegrowth=10%)GO2查看数据库属性:操作1.2:使用T-SQL语句查看数据库test属性参考答案:EXECsp_helpdbtest3删除数据库:操作1.3:使用T-SQL语句删除数据库test参考答案:dropdatabaseTest实验2表操作1创建表:数据库原理与应用(SQLServer)练习题- #-数据库原理与应用(SQLServer)练习题- #-操作2.1:创建学生表表名:student说明:学生基本信息表数据库原
3、理与应用(SQLServer)练习题- -属性列数据类型长度空值列约束说明st_idnVarChar9NotNullPK学生学号st_nmnVarChar8NotNull学生姓名st_sexnVarChar2Null学生性别st_birthdatetimeNull出生日期st_scoreintNull入学成绩st_datedatetimeNull入学日期st_fromnChar20Null学生来源st_dpidnVarChar2Null所在糸编号st_mnttinyintNull学生职务参考答案:USEtestGOCREATE(TABLEstudent(st_idnVarChar(9)prim
4、arykeyNOTNULL,st_nmnVarChar(8)NOTNULL,st_sexnVarChar(2)NULL,st_birthdatetimeNULL,st_scoreintNULL,st_datedatetimeNULL,st_fromnVarChar(20)NULL,st_dpidnVarChar(2)NULL,st_mnttinyintNULL)GO操作2.2:创建课程信息表:表名:couse说明:课程信息表属性列数据类型长度空值列约束说明cs_idnVarChar4NotNullPK课程编号数据库原理与应用(SQLServer)练习题- -数据库原理与应用(SQLServer
5、)练习题- -cs_nmnVarChar20NotNull课程名称cs_tmintNull课程学时cs_scintNull课程学分参考答案:USEtestGOCREATETABLEcouse(csidnVarChar(4)primarykeyNOTNULL,csnmnVarChar(20)NOTNULL,cstmintNULL,cs_scintNULL)GO说明:选课表操作2.3:创建选课表表名:slt_couse属性列数据类型长度空值列约束说明cs_idnVarChar4NotNullFK课程编号st_idnVarChar9NotNullFK学生编号scoreintNull课程成绩sltda
6、tedatetimeNull选课日期参考答案:USEtestGOCREATETABLEcouse(cs_idnVarChar(4)NOTNULL,st_idnVarChar(9)NOTNULL,scoreintNULL,sltdatedatetimeNULL)GO操作2.4:创建院系信息表表名:dept说明:院系信息表属性列数据类型长度空值列约束说明dp_idnVarChar2NotNull系编号dp_nmnVarChar20NotNull院系名称dp_drtnVarChar8Null院系主任dt_telnVarChar12Null联系电话参考答案:USEtestGOCREATETABLEde
7、pt(dp_idnVarChar(2)NOTNULL,dp_nmnVarChar(20)NOTNULL,dp_drtnVarChar(8)NULL,dp_telnVarChar(12)NULL)GO2修改表结构:(1)向表中添加列:操作2.5:为“dept表添加“dp_count列(数据类型为nvarchar,长度为3,允许为空)参考答案:ALTERTABLEdeptADDdp_countnvarchar(3)NULL(2)修改列数据类型:操作2.6:修改“dept”表的“dp_count”列数据类型为int参考答案:ALTERTABLEdeptALTERCOLUMNdp_countintNU
8、LL(3)删除表中指定列:操作2.7:删除“dept”表的“dp_count”列参考答案:ALTERTABLEdeptDROPCOLUMNdp_count3删除表操作2.8:删除“dept”表参考答案:DROPTABLEstudent4向表中输入数据记录操作2.9:分别向“student”表、“couse”表、“slt_couse”表、“dept”表中输入数据记录实验3数据完整性1空值约束(NULL)操作3.1:将student表中的st_sex列属性更改为NOTNULL参考答案:ALTERTABLEstudentALTERCOLUMEst_nmnVarChar(8)NOTNULL2默认值约束
9、(DEFAULT)操作3.2:将student表中的st_from列默认值设置为“陕西省”参考答案:ALTERTABLEstudentADDDEFAULT陕西省FORst_from3默认值对象操作3.3:创建默认值对象df_today为当前日期,并将其绑定到slt_couse表中的sltdate列,然后取消绑定,最后删除默认值对象df_today。参考答案:CREATEDEFAULTdf_todayASGetdate()GOEXECsp_bindefaultdf_today,slt_couse.sltdateGOEXECsp_unbindefaultslt_couse.sltdateGODRO
10、PDEFAULTdf_todayGO4检查约束(CHECK)操作3.4:将slt_couse表中的score列的检查约束设置为=0且=0ANDscore=2008操作6.4:在查询student表080808班学生的学号、姓名、性别和入学成绩SELECTst_id,st_nm,st_sex,st_scoreFROMstudentWHERELeft(st_id,6)=0808082使用逻辑表达式表示查询条件操作6.5:查询student表中非11系的学生信息SELECT*FROMstudentWHERENOT(st_dpid=11)操作6.6:查询选修了1002号课程且成绩在60以下的学生学号S
11、ELECTst_idFROMslt_couseWHERE(cs_id=1002)AND(score75操作8.11:查询选修了2门以上课程的学生学号SELECTst_idFROMslt_couseGROUPBYst_idHAVINGCOUNT(*)2操作8.12:明细汇总年龄20的学生,并汇总学生数量、平均年龄SELECTst_nm,DATEPART(yy,GETDATE()-DATEPART(yy,st_birth)AS年龄FROMstudentWHEREDATEPART(yy,GETDATE()-DATEPART(yy,st_birth)20COMPUTECOUNT(st_nm),AVG(
12、DATEPART(yy,GETDATE()-DATEPART(yy,st_birth)操作8.13:按班级明细汇总成绩85分的学生,汇总学生数、均分SELECTst_nm,LEFT(st_id,6)AS班级,st_scoreFROMstudentWHEREst_score85ORDERBY班级COMPUTECOUNT(st_nm),AVG(st_score)BY班级实验9数据查询(5)连接查询操作9.1:用SQLServer形式连接查询学生学号、姓名、性别及其所选课程编号SELECTa.st_id,st_nm,st_sex,cs_idFROMstudenta,slt_cousebWHEREa.
13、st_id=b.st_idORDERBYa.st_id操作9.2:用ANSI形式连接查询学生学号、姓名、性别及其所选课程编号SELECTa.st_id,st_nm,st_sex,cs_idFROMstudentaINNERJOINslt_cousebONa.st_id=b.st_idORDERBYa.st_id操作9.3:用SQLServer形式连接查询学生学号、姓名及其所选课程名称及成绩SELECTa.st_id,st_nm,cs_nm,scoreFROMstudenta,slt_couseb,cousecWHEREa.st_id=b.st_idANDb.cs_id=c.cs_idORDER
14、BYa.st_id操作9.4:用ANSI形式连接查询学生学号、姓名及其所选课程名称及成绩SELECTa.st_id,st_nm,cs_nm,scoreFROMslt_couseaINNERJOINstudentbONa.st_id=b.st_idINNERJOINcousecONa.cs_id=c.cs_idORDERBYb.st_id操作9.5:查询选修了1002课程的学生学号、姓名及1001课程成绩SELECTa.st_id,st_nm,scoreFROMstudenta,slt_cousebWHEREa.st_id=b.st_idANDb.cs_id=1002ORDERBYb.st_id
15、操作9.6:查询选修了“数据结构”课程的学生学号、姓名及课程成绩SELECTa.st_id,st_nm,scoreFROMstudenta,slt_couseb,cousecWHEREa.st_id=b.st_idANDb.cs_id=c.cs_idANDc.cs_nm=数据结构ORDERBYa.st_id操作9.7:用左外连接查询没有选修任何课程的学生学号、姓名SELECTa.st_id,st_nm,scoreFROMstudentaLEFTOUTERJOINslt_cousebONa.st_id=b.st_idWHEREb.cs_idISNULLORDERBYb.st_id操作9.8:用右
16、外连接查询选修各个课程的学生学号SELECTb.cs_id,a.st_idFROMslt_couseaRightOUTERJOINcousebONa.cs_id=b.cs_idORDERBYb.cs_id实验10数据查询(6)子查询操作10.1:用子查询对各班人数进行查询(新增列)SELECTDISTINCTLEFT(a.st_id,6)AS班级,人数=(SELECTCOUNT(st_id)FROMstudentbWHERELEFT(a.st_id,6)=LEFT(b.st_id,6)FROMstudentaORDERBYLEFT(a.st_id,6)ASC操作10.2:用子查询对各课程的选课
17、人数进行查询(新增列)SELECTDISTINCTa.cs_id,人数=(SELECTCOUNT(st_id)FROMslt_cousebWHEREa.cs_id=b.cs_id)FROMslt_couseaORDERBYa.cs_idASC操作10.3:查询选修了1002课程成绩不及格的学生的学号、姓名和性别,并按姓名升序排序通过子查询实现:使用IN关键字SELECTst_id,st_nm,st_sexFROMstudentWHEREst_idIN(SELECTst_idFROMslt_couseWHEREcs_id=1002ANDscore60)ORDERBYst_nm通过子查询实现:使用
18、比较运算符SELECTst_id,st_nm,st_sexFROMstudentaWHERE(SELECTscoreFROMslt_cousebWHEREa.st_id=b.st_idANDcs_id=1002)ANY(SELECTscoreFROMslt_couseWHEREcs_id=1002ANDLEFT(st_id,6)=070511)ANDLEFT(st_id,6)070511ANDcs_id=1002操作10.6:查询其它班比070511班任一学生的1002号课程成绩高的学生信息(ANY/ALL)SELECT*FROMslt_couseWHEREscoreALL(SELECTsco
19、reFROMslt_couseWHEREcs_id=1002ANDLEFT(st_id,6)=070511)ANDLEFT(st_id,6)070511ANDcs_id=1002操作10.7:查询大于等于60分且且比1003课程平均成绩低的学生课程信息(BetweenAnd)SELECT*FROMslt_couseaWHEREa.scoreBETWEEN60AND(SELECTAVG(b.score)FROMslt_cousebWHEREb.cs_id=1003)操作10.8:查询系主任为“赵虎”的系的所有学生信息通过子查询实现:IN运算符SELECT*FROMstudentWHEREEXISTS(SELECT*FROMdeptWHEREst_dpid=dp_idANDdp_drt=赵虎)通过子查询实现:=运算符SELECT*FROMstudentWHEREst_dpid=(SELECTdp_idFROMdeptWHEREdp_drt=赵虎)实验11数据查询(7)数据更新与子查询操作11.1:将070511班所有学生信息插入到表student01(st_id,st_nm,st_sex)INSERTI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅客服务规范与应急处理手册
- 严寒地区医疗机构老年陪诊服务指南
- 土地评估与土地交易手册
- 木材木蜡油涂装施工与保养手册
- 城市供水排水工程承包合同协议三篇
- 公路结构物超高性能混凝土补强与修复技术规程编制说明
- 2026-2031年中国海上大件运输行业市场调查研究与发展前景研究报告
- 期末综合素养测评卷(试题)- 苏教版数学 五年级上册
- 2024年湖南民族职业学院高职单招职业适应性测试考试题库附完整答案详解【典优】
- 2027年安阳九龙山职业学院单招职业技能考试模拟试卷【培优A卷】附答案详解
- 环境监测人员持证上岗考核试题及答案2025年
- 某仪器仪表厂外协加工管控方案
- 3 b p m f公开课一等奖创新教学设计(2课时)
- 《四川省老旧小区物业服务标准》
- 信访紧急突发情况应急预案(3篇)
- 安徽省2025年公需科目三安徽农业大学测验参考答案
- DB32∕T 4972.8-2024 传染病突发公共卫生事件应急处置技术规范 第8部分:标本的采集、保存和运输
- 2024年江苏省南京市中考英语试卷真题(含答案)
- 肛裂中西医结合诊疗指南
- 麻醉患者恢复期的气道管理
- GA/T 701-2024安全防范指纹识别应用出入口控制指纹识别模块通用规范
评论
0/150
提交评论