版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE1实验1初识SQLServer2000【实验目的】1.熟识实验机房对SQLServer2000实验环境的设置、学会独立使用该系统;2。熟识SQLServer2000中企业管理器和查询分析器两个常用管理工具;【实验内容】1.练习启动、停止和暂停服务管组件的服务,了解SQLServer2000中包括的服务器组件,掌握服务管理器和使用。2.练习MicrosoftSQLServerEnterpriseManager的使用。3.练习MicrosoftSQL查询分析器的使用。【实验筹备】1。复习与本次实验内容相关知识2.对本次实验中要求自己完成的部分做好筹备【实验步骤】1.练习启动、停止和暂停服务管组件的服务,了解SQLServer2000中包括的服务器组件,掌握服务管理器和使用。1)启动SQLServer服务2)停止SQLServer服务2.练习MicrosoftSQLServer/EnterpriseManager打开MicrosoftSQLServer/EnterpriseManager观察SQLServer组下已经建立的服务器组1)打开其中的一个服务器,观察其中的文件夹2)打开“数据库”文件夹,观察已经建立的数据库3)打开其中的某一个数据库,观察其中的内容4)打开“平安性”文件夹,进入“登录”,观察可以登录该服务器的用户及其属性。3.练习MicrosoftSQL查询分析器打开MicrosoftSQL查询分析器,在窗口中输入SELECT*FROMProducts并单击(或按F5)执行查询,熟识查询分析器的命令操作方式【分析与回答】1.SQLServer2000中包含哪些组件,其功能各是什么?SQLServer2000供应了9种功能强大、容易操作的管理工具,以便利用户进行图形化界面对导或脚本方式的管理操作。其中最重要的工具有服务管理器、企业管理器、查询分析器和导入导出数据工具,利用它可以完成以下任务:管理服务器、设计与创建数据库、查询数据。如图所示。1服务管理器SQLServer服务管理器用于启动、暂停、连续和停止SQLServer数据库服务器的实时工具,是在服务器端实际工作时最有用的有用程序,是其他管理工具工作的基础。SQLServer服务管理器供应的服务主要包括以下4种基本服务。(1)SQLServer服务:数据库引擎,主要负责协调和执行客户对数据库的全部服务恳求指令;管理分布式数据库,保证数据的全都性和完整性;对数据加锁、实施并发掌握等.在计算机上运行的每个SQLServer实例都有一个SQLServer服务。(2)SQLServerAgent服务:自动化引擎,供应SQLServer的调度服务,通过对它的配置和使用,用户可以实现对数据库的定时、自动管理。在计算机上运行的每个SQLServer实例都有一个SQLServer代理服务。(3)MSDTC服务:分布事务协调员,管理分布式事务,它允许客户的应用程序在一个事物中对分布在多个服务器上的数据源进行操作。不论计算机上有多个SQLServer实例,都只有一个服务。(4)MicrosoftSearch服务:是一个可选的组件,实现全文检索引擎。不论计算机上有多个SQLServer实例,都只有一个服务。。2企业管理器企业管理器是SQLServer2000中最重要的管理工具,是Microsoft管理掌握台(MMC。的管理单元组件.通过易于使用的图形用户界面,将全部SQLServer对象展显在一个分层结构的掌握台树中。操作如下:单击“开头”→“程序”→“MicrosoftSQLServer”→“企业管理器”,打开企业管理器,如图所示。企业管理器可以完成几乎全部的管理工作,主要包括以下功能:(1)注册和管理SQLServer服务;(2)连接、启动、暂停或停止SQLServer服务;(3)创建和管理数据库;(4)创建和管理各种数据库对象,包括表、视图、存储过程、触发器、角色、规章、默认值、用户自定义数据类型、用户自定义函数以及全文名目;(5)备份数据库和事务日志,数据库复制,设置任务调度;(6)让管理者进行警报设置,供应跨服务器的拖放操作;(7)管理用户账户,编写和执行Trasact-SQL语句,管理和掌握SQLMail。3查询分析器查询分析器是一个可以交互执行SQL语句和脚本的图形化工具,主要用于输入、执行和保存Transact-SQL语句,并可飞快查看Transact—SQL语句运行结果,以分析和处理数据库中的数据。另外,通过其中的对象扫瞄工具,还能像企业管理器一样,扫瞄数据库中的全部对象。用户可以选择“开头"→“程序"→“MicrosoftSQLServer"→“查询分析器”命令,或者在企业管理中,选择“查看”→“SQL查询分析器"打开查询分析器,如图所示。3导入和导出数据工具导入和导出数据工具对数据库而言,是一个重要的工具向导,利用它可以便捷地实现SQLServer与其它数据库系统间的数据转换。SQLServer2000利用“DTS导入/导出向导"数据转换服务支持在异构数据源之间的数据导入和导出,从而实现Excel、Foxpro、Access等格式数据和SQLServer数据得转换。2.画出SQLServerEnterpriseManager掌握台名目结构?答:3。DBMS的作用是什么?SQLServer2000的体系结构是怎样的?dbms是一个数据库管理系统,它由以下几个模块组成1)数据定义有DDL翻译处理程序(包括外模式、模式、存储模式处理程序)、保密定义处理程序(如授权定义处理程序)、完整性约束定义处理程序等.这些程序接收相应的定义,进行语法、语义检查,把它们翻译为内部格式存储在数据字典中。DDL翻译程序还依据模式定义负责建立数据库的框架(即形成一个空库),等待装入数据.2)数据操纵有DML处理程序、终端查询语言解释程序、数据存取程序、数据更新程序等。DML处理程序或终端查询语言解释程序对用户数据操纵恳求进行语法、语义检查,有数据存取或更新程序完成对数据库的存取操作。3)数据库运行管理有系统初启程序,负责初始化DBMS,建立DBMS的系统缓冲区,系统工作区,打开数据字典等等。还有平安性掌握,完整性检查、并发掌握、事务管理、运行日志管理等程序模块,在数据库运行过程中监视着对数据库的全部操作,掌握管理数据库资源,处理多用户的并发操作等。它们一方面保证用户事务的正常运行及其原子性,一方面保证数据库的平安性和完整性.4)数据库组织、存储和管理有文件读写与维护程序、存取路径(如索引)管理程序、缓冲区管理程序(包括缓冲区读、写、淘汰模块),这些程序负责维护数据库的数据和存取路径,供应有效的存取方法。5)数据库建立、维护和其他ﻬ实验2数据库创建与管理【实验目的】1.娴熟掌握SQLServerEnterpriseManager创建和管理数据库;2.娴熟掌握使用SQL语句创建和管理数据库【实验内容】1。利用企业管理器创建和管理数据2.使用SQL语句管理器创建和管理数据【实验筹备】复习与本次实验内容相关知识对本次实验中要求自己完成的部分做好筹备【实验步骤】1、利用企业管理器创建和管理数据库(1)创建数据库ⅰ展开服务器组,然后展开服务器ⅱ右击"数据库",然后单击"新建数据库”命令ⅲ键入新数据库的名称student,同时用指定的数据库名student作为前缀创建主数据库和事务日志文件,例如:student_Data。mdf和student_Log。ldfⅳ要更改新建主数据库文件的默认值,单击”常规"选项卡。若要更改新建事务日志文件的默认值,单击”事务日志"选项卡”,要更改"文件名"、"位置”、"初始大小(MB)”和"文件组"等列的默认值,单击要更改的适当单元格,再键入新值.要指定文件增长方式和文件大小按界面提示选择相应的项.(2)删除数据库选择student数据库,右击鼠标选择“删除”命令即可。2、使用SQL语句管理器创建和管理数据(1)创建SPJ数据库:打开查询分析器,输入以下语句并运行createdatabasespjon(name='spj_data’,filename=’c:\programfiles\microsoftsqlserver\mssql\data\spj_data.mdf’,size=2,maxsize=10,filegrowth=10%)logon(name=’spj_log',filename=’c:\programfiles\microsoftsqlserver\mssql\data\spj_log.ldf’,size=1,filegrowth=10%)(2)修改spj数据库:在查询分析器中输入以下语句并运行(了解)alterdatabasespjmodifyfile(name='spj_data’,size=3,maxsize=unlimited)alterdatabasespjaddfile(name=’spj_data_2’,filename=’c:\programfiles\microsoftsqlserver\mssql\data\spj_date_2.ndf',size=1,maxsize=10,filegrowth=10%)(3)删除spj数据库:dropdatabasespj实验3表的创建与修改【实验目的】1.学会使用企业管理器创建和修改表结构2。学会使用查询分析器3.学会使用SQL语句创建和修改表结构【实验内容】1。使用企业管理器建立和修改班级表、成果表2.使用查询分析器建立和修改课程表、同学表【实验筹备】1.复习与本次实验内容相关知识2.对本次实验中要求自己完成的部分做好筹备【实验步骤】1。用企业管理器建立同学表启动企业管理器(使用上次实验建立的帐号注册连接服务器)展开服务器(下图中(LOCAL))-—>展开数据库—-〉展开自己学号所对应的数据库(下图中的5102201101在实验中应为你的学号)。在”表"上右击,在快捷菜单中单击"新建表...",如下图所示在表结构窗口内建立如下图所示的班级表(ID含义为”班号",NAME含义为"班名”,DEPARTMENT含义为所在系,各字段类型及是否允许为空按图中设置),如下图所示,左侧三角形标志为当前列,下方的列属性即为该列的.在第一行上右击,在弹出的快捷菜单中单击"设置主键",如下图所示,则ID字段被设置为主键,在ID列属性中将标识改为:是,则ID字段在新增行时,从标识种子(当前为1)开头,逐行以标识递增量(当前为1)自动递增(即此列在新增行时不用输入数据而自动生成)。要插入和删除列,请使用类似方法--在快捷菜单中使用"插入列(M)"和"删除列(D)".并在工具栏上单击保存图标,在弹出的保存对话框中输入"U_CLASSES",单击"确定”,然后关闭表结构设计窗口依照上面设计同学表的步骤,设计如下图所示的成果表(STUDENT_ID含义为学号,COURSE_ID含义为课程号,SCORE为成果,各字段类型和是否允许为空,按图中设置),表名保存为”U_SCORES"(注意设置主键时,先按住Shift,分别单击第一、其次行左侧-—选中这两行,再右击,在快捷菜单单击中设置主键——该操作可设置和取消主键)。关闭表设计窗口。2.用企业管理器修改表如果要修改表,请展开你的数据库,单击其下的"表"在右边的窗格中,找到要修改的表,在其上右击在弹出的快捷菜单中,单击”设计表(S)”则打找开表设计窗口进行修改,简略如下图所示3.用SQL语句建立班级表、课程表依照启动企业管理器的方法,启动查询分析器,在"连接到SQLServer"对话框中,设置"SQLServer(S)"为local,选择SQLServer身份验证,在登录名中输入你的学号,密码中输入你的密码,单击"确定"。启动查询分析器后,注意右上角当前数据库处是否为你的数据库(如果不是,说明登录的名称有问题,或该登录的默认数据库设置不正确).若不是请重新选择.依据下图输入SQL语句(蓝色和黑色部分,其中第一条为建表语句,其次条为设置主键的语句)建立课程表(U_COURSES)(其中ID表示课程编号,该字段自动递增,COURSE为课程名称),单击”分析查询"(”√"按钮)按钮,检查语句的正确性。如果检查正确,单击"分析查询"按钮的右边的执行按钮(右向的三角形按钮)执行(或按F5)。右击左侧数据库图标,在快捷菜单击”刷新".展开数据库(你的学号),再展开"用户表",查看是否已存在班级表(U_COURSES),如下图所示.依照上述方法输入SQL语句(技巧:在查询命令窗口内,要执行的命令可先选中,再执行,则未选中的语句不会执行)建立同学表(U_STUDENTS),表结构如下:序号字段类型(长度)主键含义1IDchar(10)是学号2NAMEvarchar(16)姓名3CLASS_IDtinyint所在班级编号4.用SQL语句修改表结构用SQL语句,给课程表添加一个学时字段(字段名:period,类型:tinyint)。ALTERTABLE[dbo]。[U_COURSES]ADDperiodtinyint用SQL语句,给课程表添加一个学分字段(字段名:CREDIT,类型:tinyint)。请参照上面SQL命令自行进行用SQL语句,删除课程表学时字段(字段名:period)。ALTERTABLE[dbo]。[U_COURSES]DROPCOLUMNperiod用SQL语句,修改成果表,使SCORE字段类型为tinyint。ALTERTABLE[dbo]。[U_SCORES]ALTERCOLUMNSCOREtinyint5.用企业管理器检查各表,如果和上面要求的相同,则你的实验就完成了实验4数据查询【实验目的】学会使用企业管理器查询数据掌握使用SQL语句查询数据【实验内容】使用企业管理器进行数据查询在查询分析器内使用SQL语句进行数据查询【实验筹备】复习与本次实验内容相关知识复习查询分析器的使用对本次实验中要求自己完成的部分做好筹备(其次部分,请预先写出来)【实验步骤】用企业管理器进行数据查询启动企业管理器,注册连接。展开服务器-—>展开数据库-->展开自己的数据库--〉单击表.在需要查询的表上单击右键,在弹出的快捷菜单中选择"打开表(O)",其下级菜单即为查询命令:返回全部行(A)
--该命令以网格方式显示指定表的全部记录返回首行(T).。。
--该命令以交互方式输入要返回的行数查询(Q)
-—打开查询窗口,以图形方式设计查询请从同学表(U_STUDENTS)上右击,使用"查询(Q)"命令建立一个查询,请选中学号(ID)、姓名(NAME)两个字段,再单击上面的执行按钮(!按钮)执行查询,查看结果.再在关系图窗格内右击鼠标在弹出菜单中选择添加表,添加班级表(U_CLASSES),在班级表的ID字段上按下鼠标左键,拖至同学表的CLASS_ID上建立关联,在班级表上选中班级(CLASS)、系(DEPARTMENT)字段,再在网格窗格上选择姓名(NAME)行上选择排序类型为"升序"。执行该查询,查看结果.结果如下图所示。(注意查看SQL窗格内的SQL查询语句)该操作实现了从班级表、同学表中查询出全部同学的学号(ID)、姓名(NAME)、班级(CLASS_ID)、所在系(DEPARTMENT)的记录数据。关闭企业管理器用SQL语句查询数据启动查询分析器在查询分析器中分别执行下列查询语句(有的语句请自己写出),体会或说明各语句的功能(请将下面的语句复制到查询分析器,逐条执行-—要执行一条语句请选中该语句再按F5或单击执行铵钮,如下图所示)。—-查询同学表ﻫselect*fromu_students
ﻫselect*fromu_studentsorderbyclass_idﻫ
-—查询成果表(请体会下列语句的功能)
select*fromu_scores
ﻫselect*fromu_scoreswherecourse_id=1ﻫﻫselect*fromu_scoreswherestudent_id=’5103210102'select*fromu_scoreswherescore〈60ﻫ
select*fromu_scoreswherescore<60andcourse_id=1ﻫ
--请比较下面三个语句,并说明其作用。
selecttop10*fromu_scores
selecttop10*fromu_scoresorderbyscore
ﻫselecttop10*fromu_scoresorderbyscoredesc--下面命令将结果存放于tmp_xsb1表中.ﻫselect*intodbo。tmp_xsb1fromu_scoreswherescore<60andcourse_id=1--请写出查询课程号为2成果大等于70的同学成果情况,并将其结果存放于tmp_xscj表中(在查询语句中参照上例用intodbo。tmp_xscj子句)。ﻫﻫ—-从成果表中找出有哪些同学(学号).ﻫselectdistinctstudent_idfromu_scoresﻫﻫ—-查询全部同学情况(比较下面的两个语句)。ﻫselecta.id,a.name,b。class,b.department
fromu_studentsainnerjoinu_classesbona.class_id=b.id
selecta.id,a.name,b.class,b.departmentﻫfromu_studentsa,u_classesbwherea.class_id=b。idﻫﻫ-—查询班号为2的全部同学。ﻫselecta.id,a.name,b。class,b。departmentﻫfromu_studentsa,u_classesb
wherea.class_id=b。idandb.id=2--请写出从同学表查询班级为’软件031'的同学情况(学号,姓名,所在班级,所在系),并请将查询结果用into子句存放于dbo。tmp_xsb2表中。ﻫﻫ--按班级统计人数。
selectclass_idas班号,count(*)as人数ﻫfromu_studentsgroupbyclass_idﻫ-—请将上面的语句添加into子句,再执行一次并将结果存放于dbo。tmp_xsrs表中。ﻫ
--查询全部同学成果(试比较下面的两个语句的不同点,并看看他们的执行结果是否相同)。ﻫselecta.id,a.name,b.course,c.scoreﻫfromu_scorescinnerjoinu_studentsaonc。student_id=a.idﻫinnerjoinu_coursesbonc.course_id=b.idﻫﻫselecta.id,a.name,b。course,c.scoreﻫfromu_studentsa,u_coursesb,u_scorescﻫwherec.student_id=a.idandb.id=c。course_id
ﻫ—-统计各人平均分。
selecta.idas学号,a.nameas姓名,avg(b。score)as平均分,ﻫmax(b。score)as最高分,min(b.score)as最低分ﻫfromu_studentsainnerjoinu_scoresbonb.student_id=a。idﻫgroupbya。id,a.nameﻫorderby平均分ﻫﻫ—-查找陈姓同学。
selectid,namefromu_studentswherenamelike’陈%'ﻫﻫ--查找姓名其次个字是月的同学。ﻫselectid,namefromu_studentswherenamelike’_月%'ﻫﻫ-—请写出查询丁姓名同学的查询语句,并将其结果用into子句存放于dbo.tmp_xsb3中。ﻫﻫ-—查看有不及格课程的同学名单。ﻫselecta。idas学号,a。nameas姓名ﻫfromu_studentsawherea.id
in(selectdistinctb。student_idfromu_scoresbwherescore<60)ﻫ
--查看没有不及格课程的同学名单(请参照上面的语句写出查询语句)ﻫﻫ——查看成果在50-60之间(含50,60)的同学及其各课程成果。
selecta.id,a.name,b.course,c.score
fromu_scorescinnerjoinu_studentsaonc.student_id=a.idﻫinnerjoinu_coursesbonc。course_id=b。id
wherec.scorebetween50and60ﻫ
—-下面第一个语句是查找有课程成果在80分以上的同学,试与其次个语句进行比较,看看结果是不是一样,如果不一样,想想为什么。ﻫselecta。id,a。namefromu_studentsaﻫwhereexists(select*fromu_scoresbwherea.id=b。student_idandb。score>80)
ﻫselecta。id,a.namefromu_studentsaﻫwherenotexists(select*fromu_scoresbwherea。id=b.student_idandb.score<=80)查看一下,在你的数据库中是否存在下面的表ﻫdbo.tmp_xsb1ﻫdbo.tmp_xsb2ﻫdbo.tmp_xsb3
dbo.tmp_xscj
dbo.tmp_xsrs如果有,那么你的实验就完成了,请关闭查询分析器,结束实验实验5数据处理【实验目的】1.学会使用企业管理器处理表数据、查看表记录2。学会使用SQL语句处理表数据【实验内容】1.使用企业管理器给班级表、同学表处理数据2。使用SQL语句给课程表、成果添加数据--INSERT语句3。使用SQL语句给同学表、成果表更新数据-—UPDATE语句4.使用SQL语句为同学表删除记录——DELETE语句【实验筹备】1.复习与本次实验内容相关知识2。复习查询分析器的使用3.对本次实验中要求自己完成的部分做好筹备【实验步骤】格外说明:本实验中使用的数据仅为实验而已,无任何其他作用。1。用企业管理器给班级表添加记录1)启动企业管理器,用自己的帐号、密码,注册并连接到SQLServer服务器。展开连接的服务器-->展开”数据库"-—>展开你的数据库(你的学号)-->单击"表"。在右边的窗格内,右击班级表(U_CLASSES),在弹出的快捷菜单中,将鼠标移到"打开表(O)"上,再移到"返回全部行(A)”上单击.参见下图。2)接着按下图输入数据,注意,ID列不用输入(为什么?)。3)输入完成后,若要对数据行(如:删除行)进行操作,可在某行上右击鼠标,在弹出菜单中选择要执行的命令.关闭该查询窗口.2.用企业管理器修改表记录数据若要修改数据,可用上述方法打开查询窗口,直接修改即可.3。用企业管理器给同学表(U_STUDENTS)添加数据1)参照前面方法给用企业管理器给同学表输入如下记录。在输入过程中,注意观察如果输入相同学号有什么现象(什么缘由?),如果班级编号不输入,又会怎样(为什么?)。4。在查询分析器中用SQL命令给课程表(U_COURSES)、成果表(U_SCORES)添加数据、修改数据1)启动查询设计器(服务器:local,登录名:你的学号,密码:你的密码)。2)输入(为削减输入工作量,可将下面的语句复制到查询分析器)如下语句并执行之,为课程表(U_COURSES)插入插入5条记录.INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES('计算机文化基础',4)INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES('C语言程序设计',4)INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES(’数据结构’,4)INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES('数据库原理与应用',4)INSERTINTO[U_COURSES](COURSE,CREDIT)VALUES('SQLServer',3)3)输入”SELECT*FROMU_COURSES"查看课程表记录。4)输入下面的语句,修改”计算机文化基础"的学分,使之为5。UPDATEU_COURSESSETCREDIT=5WHERECOURSE='计算机文化基础’5)参照上面的语句,将"SQLServer"课程名称改为”大型数据库"。6)再次执行"SELECT*FROMU_COURSES"查看课程表记录,看看与修改要求是否全都。7)输入如下语句(为削减输入工作量,可将下面的语句复制到查询分析器)为成果表(U_SCORES)添加10条记录(分别学号为5103210101和5103212102的五门功课的成果).INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103210101’,1,80)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103210101',2,82)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103210101’,3,75)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES(’5103210101’,4,78)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES(’5103210101’,5,88)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES(’5103212102',1,54)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103212102',2,71)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES(’5103212102',3,60)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103212102’,4,50)INSERTINTO[U_SCORES](STUDENT_ID,COURSE_ID,SCORE)VALUES('5103212102',5,60)8)将上面的语句再执行一次,看看有什么现象(为什么?)。9)参照上面的SQL命令,分别为学号为5103210102、5103210103、5103212101的同学添加五门功课的成果(学号、课程号、成果如下)。学号
课程号成果5103210102
1
655103210102
2
605103210102
3
585103210102
4
435103210102
5
705103210103
1
455103210103
2
585103210103
3
665103210103
4
605103210103
5
575103212101
1
725103212101
2
905103212101
3
765103212101
4
745103212101
5
5810)输入”SELECT*FROMU_SCORES”查看成果表记录。11)输入下面的语句,将学号为5103210101,课程号为2的课程成果改为90。UPDATE[U_SCORES]SETSCORE=90WHERESTUDENT_ID='5103210101'ANDCOURSE_ID=212)再次执行"SELECT*FROMU_SCORES"查看成果表记录,注意学号为5103210101,课程号为2的同学课程成果。13)参照上面的语句将学号为5103212102,课程号为3的课程成果改为56。5.在查询分析器中用SQL命令删除记录1)在查询分析器输入"SELECT*FROMU_STUDENTS”查看同学表记录.2)输入下列命令删除同学表中学号为5103210104、5103210105的记录。DELETEFROM[U_STUDENTS]WHEREID='5103210104’ORID=’5103210105'3)再次执行”SELECT*FROMU_STUDENTS"查看记录,注意记录数.4)参照上述命令分别同学表中学号为5103212103、5103212104、5103212105的记录实验6T-SQL编程【实验目的】掌握T_SQL编程的基本语法常用函数的使用方法【实验内容】使用查询分析器练习T—SQL编程方法练习函数的使用【实验筹备】复习与本次实验内容相关知识预习相关函数(请预查阅CONVERT、DATENAME、GFTDATE函数的用法)对本次实验中要求自己完成的部分做好筹备【实验步骤】条件结构在查询分析器中执行下面的语句,体会IF。.。ELSE..。结构DECLARE@CJTINYINT
SELECT@CJ=SCOREFROMU_SCORESWHERESTUDENT_ID='5103210101’ANDCOURSE_ID=2ﻫ--SELECT@CJ
IF@CJ>=60ﻫ
PRINT’及格'ﻫELSEﻫ
PRINT’不及格'
PRINT’分数为:’+CONVERT(CHAR(2),@CJ)将上述语句中学号改为5103210102,课程号改为3,看看执行结果如何.自己编写一段程序推断一个年份(比如1900年)是否是闰年,是则显示1900年为闰年,否则显示1900年不是闰年.循环结构下面是计算1~100和的循环结构,执行之,体会循环结构程序,注意语句块标志BEGIN。。.ENDDECLARE@SUMINT,@IINT
SELECT@I=1,@SUM=0
WHILE@I〈=100ﻫBEGINﻫ
SELECT@SUM=@SUM+@Iﻫ
SELECT@I=@I+1
ENDﻫPRINT'1.。.100的和为:'+CONVERT(CHAR(4),@SUM)编写一个程序用于计算10的阶乘自己编制一个程序,要求其能打印出100内的素数(只能被其自身和1整除的数).--循环结构+条件结构CASE结构下面的程序打印出每位同学的每门课程是否及格SELECTS.ID,S。NAME,C。COURSE,ﻫ
CASEﻫ
WHENSC.SCORE>=60THEN'及格'ﻫ
ELSE’不及格'ﻫ
ENDSCORE
FROMU_SCORESSCINNERJOINU_COURSESCONSC.COURSE_ID=C.IDﻫINNERJOINU_STUDENTSSONSC。STUDENT_ID=S.ID请自己编程实现各位同学的成果以等级分显示即:90分及以上为优,80分及以上到90以下为良,70分及以上到80分以下为中,60分及以上到70分以下为及格,其余为不及格。下面查询,显示当前日期,显示格式为:"今日是XXXX年XX月XX日,星期X",执行之,体会系统函数的用法.SELECT'今日是'+DATENAME(YEAR,GETDATE())+'年'+DATENAME(MONTH,GETDATE())+'月’+DATENAME(DAY,GETDATE())+'日'+DATENAME(WEEKDAY,GETDATE()实验7函数【实验目的】理解什么是标量函数、内嵌表值函数及多语句表值函数。娴熟掌握标量函数、内嵌表值函数、多语句表值函数的定义和调用.【实验内容】1.创建标量函数、内嵌表值函数及多语句表值函数.2.分析他们之间的区分.【实验步骤】对于jxgl数据库,定义完成如下功能的函数:(1)在jxgl数据库中创建一个用户自定义标量函数fage,然后同学表查询出同学的姓名,姓名,性别和年龄;从老师表中查询出老师的姓名,姓名,性别和工龄。createfunctiondbo。fage(@priordatedatetime,@curdatedatetime)returnsintasbeginreturnyear(@curdate)-year(@priordate)endgoselect学号,姓名,性别,dbo.fage(诞生日期,getdate())as年龄from同学goselect工号,姓名,性别,dbo。fage(工作日期,getdate())as年龄from老师go(2)创建一个依据学号返回同学学号,姓名,性别,课程号,成果等信息的内嵌表值函数finfo。createfunctiondbo.finfo(@xhchar(8)=’08010101’)returnstableasreturn(select同学。学号,姓名,性别,课程号,成果from同学,选修where同学。学号=选修.学号and同学.学号=@xh)goselect*fromdbo。finfo(default)go运行结果如图所示。(3)创建一个依据课程号查询返回选修该课程的同学学号,姓名,性别,课程号,成果等信息的多语句函数score_info。createfunctionscore_info(@courseidchar(2))returns@total_scoretable(课程号char(2),学号char(8),姓名char(6),性别char(2),成果tinyint)asbegininsert@total_scoreselect课程号,选修。学号,姓名,性别,成果from选修,同学where选修。学号=同学.学号and课程号=@courseidreturnendgoselect*fromscore_info('02')三、分析与回答试说明内嵌表值函数、多语句表值函数的联系与区分。多语句表值函数可以看作标量函数和内嵌表值函数的联合,它集中了这两个函数的优点。其函数值也是一个表,但函数体也用begin…end语句定义,作为函数返回值的表中的数据由函数体中的语句插入.因此,多语句表值函数可以进行多次查询操作,弥补了内嵌表值函数的不足.内嵌表值函数的函数体不使用begin…end语句,而是通过return语句返回select查询得到的一个结果集,其功能相当于一个参数化的视图,因此在使用上,内嵌表值函数就可以当成一个虚表来使用;内嵌表值函数只能通过select语句调用。实验8视图与索引【实验目的】学会使用企业管理器建立视图与索引掌握使用SQL语句建立视图与索引【实验内容】使用企业管理器建立视图索引使用SQL语句建立视图索引【实验筹备】复习与本次实验内容相关知识对本次实验中要求自己完成的部分做好筹备【实验步骤】用企业管理器建立一个基于同学表、课程表、成果表的视图,要求该视图显示学号、姓名、课程、成果启动企业管理器、注册、连接展开服务器、数据库、在视图上右击,在快捷菜单中执行”新建视图(V)。..”如下图所示在新视图窗口内的关系图窗格内右击鼠标,弹出的菜单即为视图设计菜单,执行"添加表(B).。。",如下图所示再在添加表对话框中选择U_SCORES表,再单击添加按钮.依此操作,分别添加U_STUDENTS、U_COURSES表,单击关闭按钮.再在关系窗格内,拖动U_STUDENTS表的”ID"至U_SCORES的STUDENT_ID,拖动U_COURSES表的”ID”至U_SCORES的COURSE_ID,再分别选中U_STUDENTS表的"ID”,”NAME”列(列前的复选框),U_COURSES表的"COURSE"列以及U_SCORES表的”SCORE"列,然后单击”!"按钮,显示视图结果,如下图所示:单击保存按钮,将视图保存为V_SCORES,单击确定。用查询分析器建立一个基于同学表、班级表的同学视图(V_STUDENTS),包括学号、姓名、班级、系,SQL语句如下:CREATEVIEWdbo.V_STUDENTSﻫASﻫSELECTdbo.U_STUDENTS。ID,dbo。U_STUDENTS。NAME,dbo。U_CLASSES.CLASS,ﻫdbo.U_CLASSES.DEPARTMENTﻫFROMdbo.U_STUDENTSINNERJOINﻫdbo.U_CLASSESONdbo.U_STUDENTS.CLASS_ID=dbo.U_CLASSES.ID自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示课程编号、课程名、学分.查看索引在企业管理器中打开U_STUDENTS表的设计窗口,然后单击"管理索引"按钮,如下图所示在弹出的属性窗口内,查看索引PK_U_STUDENTS的各属性(该索引是簇集索引)为同学表按班级建立一个非簇集索引FK_U_STUDENTS,操作过程如下在上一操作的属性窗口内单击”新建"按钮,新建一个索引将索引名改为FK_U_STUDENTS,将列名选择为CLASS_ID单击关闭用SQL语句为U_COURSES表建立一个基于课程名的非簇集索引IX_U_COURSES,SQL语句如下CREATEINDEX[IX_U_COURSES]ON[dbo]。[U_COURSES]([COURSE])ON[PRIMARY]自己用SQL语句为班级表建立一个基于班级名称的非簇集索引IX_U_CLASSES
实验9存储过程【实验目的】掌握创建存储过程的基本方法【实验内容】用企业管理器创建存储过程用查询分析器创建存储过程【实验筹备】复习与本次实验内容相关知识对本次实验中要求自己完成的部分做好筹备【实验步骤】用向导创建一个存储过程:该存储过程用于向同学表添加记录。在企业管理器中连接服务器,完成后展开服务器,展开数据库,单击存储过程然后在“工具”菜单中单击“向导(W).。。",在向导对话框中展开“数据库",选择“创建存储过程向导”,单击“确定"在创建存储过程向导中,单击“下一步”检查数据库名是否正确如果正确,单击“下一步”,如下图进行选择单击“下一步”,在消灭的对话框中单击“编辑”按钮在存储过程属性对话框中修改名称使之为”INSERT_U_STUDENTS”,然后单击“编辑SQL(E)。..”,查看创建该存储过程的SQL语句。上述过程得到的SQL语句为USE[5102201101]ﻫGOﻫCREATEPROCEDURE[INSERT_U_STUDENTS]
(@ID_1[char](10),
@NAME_2[varchar](16),
@CLASS_ID_3[tinyint])ﻫﻫASINSERTINTO[5102201101].[dbo]。[U_STUDENTS]ﻫ([ID],ﻫ[NAME],
[CLASS_ID])ﻫﻫVALUESﻫ(@ID_1,ﻫ@NAME_2,ﻫ@CLASS_ID_3)单击“确定”就建立了插入同学记录的存储过程INSERT_U_STUDENTS依照上述过程自己用向导创建一个插入课程记录的存储过程"INSERT_U_COURSES".参照上述过程自己用向导创建一个同学姓名的存储过程"UPDATE_U_STUDENTS"。(主要步骤见如下三图)请单击”编辑SQL(E)..."按下面进行修改用SQL语句建立一个更改课程名称的存储过程”UPDATE_U_COURSES"。(执行下图中"新建存储过程(S)...",然后输入代码)在查询分析器中验证上述存储过程启动查询分析器分别执行下面命令,验证上述存储过程其他存储过程请自行验证在查询分析器中用SQL语句建立一个存储过程”DISPTODAY”:要求该存储过程显示当前日期,格式为:今日是XXXX年XX月XX日星期X并验证之(参见下图).实验9存储过程【实验目的】1.掌握创建存储过程的基本方法【实验内容】1用企业管理器创建存储过程2.用查询分析器创建存储过程【实验筹备】1复习与本次实验内容相关知识2.对本次实验中要求自己完成的部分做好筹备【实验步骤】1。用向导创建一个存储过程:该存储过程用于向同学表添加记录。1)在企业管理器中连接服务器,完成后展开服务器,展开数据库,单击存储过程2)然后在“工具”菜单中单击“向导(W)。.。”,在向导对话框中展开“数据库",选择“创建存储过程向导",单击“确定"3)在创建存储过程向导中,单击“下一步"4)检查数据库名是否正确5)如果正确,单击“下一步”,如下图进行选择6)单击“下一步”,在消灭的对话框中单击“编辑”按钮7)在存储过程属性对话框中修改名称使之为”INSERT_U_STUDENTS",然后单击“编辑SQL(E)...”,查看创建该存储过程的SQL语句.8)上述过程得到的SQL语句为use[5102201101]gocreateprocedure[insert_u_students](@id_1[char](10),@name_2[varchar](16),@class_id_3[tinyint])asinsertinto[5102201101]。[dbo].[u_students]([id],[name],[class_id])values(@id_1,@name_2,@class_id_3)单击“确定”就建立了插入同学记录的存储过程INSERT_U_STUDENTS9)依照上述过程自己用向导创建一个插入课程记录的存储过程"INSERT_U_COURSES".10)参照上述过程自己用向导创建一个同学姓名的存储过程"UPDATE_U_STUDENTS"。(主要步骤见如下三图)请单击"编辑SQL(E)..。"按下面进行修改用SQL语句建立一个更改课程名称的存储过程"UPDATE_U_COURSES".(执行下图中"新建存储过程(S)...”,然后输入代码)在查询分析器中验证上述存储过程启动查询分析器分别执行下面命令,验证上述存储过程其他存储过程请自行验证在查询分析器中用SQL语句建立一个存储过程"DISPTODAY":要求该存储过程显示当前日期,格式为:今日是XXXX年XX月XX日星期X并验证之(参见下图).实验10触发器【实验目的】1.娴熟掌握后触发器和替代触发器的区分;2.娴熟掌握后触发器和替代触发器的创建.【实验内容和步骤】对于jxgl数据库,完成如下各项:1。使用存储过程封装处理数据的语句创建一个存储过程,实现查询班级号为090102同学信息的功能.usejxglgocreateprocpro_同学asselect学号,姓名,性别,year(getdate())-year(诞生日期)as年龄,籍贯from同学whereleft(学号,6)='090102'go2.使用带输入参数的存储过程创建一个存储过程,实现查询指定同学姓名成果信息的功能。usejxglgocreateprocpro_同学_选修@xmchar(6)asselect同学。学号,姓名,课程号,成果from同学,选修where同学。学号=选修.学号and姓名=@xmgo3.使用输入参数带默认值的存储过程创建一个存储过程,实现查询指定课程号的课程及其选修信息。usejxglgo-—创建存储过程代码如下:createprocpro_课程_选修@kchchar(2)='01’asselect课程.课程号,课程名称,学号,成果from课程,选修where课程.课程号=选修.课程号and课程。课程号=@kch-—调用存储过程代码如下:goexecpro_课程_选修goexecpro_课程_选修defaultgoexecpro_课程_选修’02’go4.使用带输出参数的存储过程创建一个存储过程,实现查询老师的平均工资。usejxglgo—-以下是创建存储过程代码:createprocpro_avg_老师@avgscorefloatoutputasselect@avgscore=avg(基本工资)from老师go--以下是执行存储过程代码:declare@avgscorefloatexecpro_avg_老师@avgscoreoutputprint'老师的平均工资:'+cast(@avgscoreasvarchar(6))运行结果如下:警告:聚合或其它SET操作消除了空值。老师的平均工资:22265.使用带输入输出参数的存储过程创建一个存储过程,实现指定姓名时,查询该生全部选修课程的平均成果。usejxglgocreateprocpro_avg_成果@xmchar(6),@avgscorefloatoutputasselect@avgscore=avg(成果)from同学,选修where同学.学号=选修。学号and姓名=@xmgo-—以下是执行存储过程代码:declare@xmchar(6),@avgscorefloatset@xm='储兆雯'execpro_avg_成果'储兆雯',@avgscoreoutputprint@avgscore6.使用输出参数是游标类型的存储过程创建一个存储过程,实现逐行显示表“同学”中的数据.(1)创建存储过程代码:usejxglgoifexists(selectnamefromsysobjectswherename=’cursor_选修’andtype=’p')dropproccursor_选修gocreateproccursor_选修@xhchar(8)=’08010101',@js_cursorcursorvaryingoutputasset@js_cursor=cursorforward_onlystaticforselect*from选修where学号=@xhopen@js_cursorgo(2)调用存储过程代码declare@xhchar(8),@mycursorset@xh='08010101’execcursor_选修@xh,@myoutputwhile(@@fetch_status=0)beginfetchnextfrom@myﻩﻩﻩ—-提取数据endclose@myﻩ ﻩﻩﻩﻩ-—关闭游标deallocate@myﻩﻩﻩﻩﻩ--删除游标(3)运行结果如图9—12所示.实验11导入导出【实验目的】1.掌握数据导入导出的基本方法【实验内容】1.用DTS向导导入ACCESS数据2.用DTS向导导入EXCEL数据3.DTS向导导出数据【实验筹备】1。复习与本次实验内容相关知识2。对本次实验中要求自己完成的部分做好筹备【实验步骤】1.用DTS导入向导将HYPERLINK”http://219。219.90。5/zwq/mydocs/jyjx/SQL/practice/计软03名单.xls"计软03名单。xls导入到数据库中保存为“JR03”表1)启动企业管理器,连接服务器2)选择数据库,执行‘工具'菜单中的“向导(W)...”,选择"数据转换向导”中的”DTS导出向导”,单击”确定",在对话框中单击"下一步”.然后依据下面的步骤操作。ﻩﻩ3)用DTS导入向导将HYPERLINK"http://219。219.90。5/zwq/mydocs/jyjx/SQL/practice/ZGGZ.mdb"ZGGZ.MDB导入到数据库中保存为“GZ”表4)注意:选择数据源类型为"MicrosoftAccess"5)将同学表U_STUDENTS导出为EXCEL表"XS。XLS”6)将课程表U_COURSES导出为ACCESS文件"KC。MDB"自行练习其他导入导出过程实验12系统平安管理【实验目的】学会使用企业管理器学会注册、连接服务器学会创建登录、建立数据库学会为数据库创建和设置用户【实验内容】使用企业管理器注册、连接SQL数据库服务器使用企业管理器建立数据库使用企业管理器创建登录使用企业管理器为数据库创建用户并设置其权限【实验筹备】复习与本次实验内容相关知识预习有关登录的建立等相关内容【实验步骤】1.启动企业管理器启动过程为:开头菜单—-〉程序-->MicrosoftSQLServer——>企业管理器,参见下图。2。注册SQL服务器在企业管理器中,展开树形列表中的"MicrosoftSQLServers”项目,我们可以看到下面有一个子项目"SQLServer组".用鼠标右键点击该项目图标,在弹出的菜单中选"新建SQLServer注册"菜单项,如下图所示。企业管理器启动向导帮助您进行注册。然后点击”下一步"按钮。消灭如下图所示的对话框,在服务器编辑框中输入SQLServer的IP地址及数据库实例的名称,选择SQLServer身份验证方式,并填入登录名和密码,本次实验使用的登录名为dbuser,密码为dbuser。(在以后的实验中要求大家必须使用本次实验中自己建立的登录帐号)。然后点击"确定”按钮。3。连接SQL服务器展开树形列表框中"SQLServer组"项目,在刚注册的服务器图标(如第4步图中所示,图中的服务器名称为(LOCAL)(WindowsNT)上右击,选择弹出菜单中的”连接",即可与SQL服务器进行连接。4。建立数据库数据库服务器连接以后,展开该服务器项目,其下有子项目”数据库”,选择该项目后,右击该项目,或者在右面的子窗口中右击,在弹出菜单中有”新建数据库"。点击”新建数据库”菜单项后,消灭下图所示的对话框.在”常规"选项卡中的”名称"编辑框中输入新建数据库的名称(用你的完整学号命名,共10位数字,将使用你的学号来推断您的实验中该步是否完成,否则,后果自负)如下图所示(图中51022201101处应为你的学号),设置完成后点击”确定"按钮,即可建立数据库.5。建立登录帐号为便于本课程后面的实验顺利进行,需要每位同学为自己在数据库系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长沙卫生职业学院《管理沟通(英语)》2023-2024学年第一学期期末试卷
- 云南农业大学《建筑工业化与装配式结构》2023-2024学年第一学期期末试卷
- 孩子里程碑的教育模板
- 保险业基础讲解模板
- 述职报告创新实践
- 职业导论-房地产经纪人《职业导论》点睛提分卷3
- 年终工作总结格式要求
- 二零二五版LNG液化天然气装运合同3篇
- 二零二五年度汽车后市场担保合作协议合同范本集锦:维修保养服务2篇
- 二零二五版国际金融公司劳务派遣与风险管理协议3篇
- 小学语文生本课堂教学设计
- 上海某建筑基础及上部结构加固工程施工方案砖木结构 砖混结构
- 精神病医院财务后勤总务管理制度
- 停车场施工施工组织设计方案
- GB/T 37238-2018篡改(污损)文件鉴定技术规范
- 普通高中地理课程标准简介(湘教版)
- 河道治理工程监理通知单、回复单范本
- 超分子化学简介课件
- 高二下学期英语阅读提升练习(一)
- 易制爆化学品合法用途说明
- 【PPT】压力性损伤预防敷料选择和剪裁技巧
评论
0/150
提交评论