实验5.6.7 索引、视图、T-SQL编程
视图和索引的创建和使用实验报告
信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图和索引的创建和使用一、实验目的:(1)掌握创建视图的SQL语句的用法。
(2)掌握修改视图的方法。
(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作用。
(4)熟悉索引的作用,以及不同类型索引的区别。
(5)学会用T-SQL语句对表创建和删除索引二、实验设备与器件Win7 +Sql server 2008三、实验内容与步骤利用备份文件school,还原数据库,然后完成以下实验内容:(1)用T-SQL语句,定义信息系学生基本情况视图V_IS。
(2)用T-SQL语句,将Student,Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。
(3)用T-SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。
(4)用T-SQL语句,定义一个反映学生出生年份的视图V_YEAR。
(5)用T-SQL语句,将各位学生学号、选修课程的门数及平均成绩定义为视图V_AVG_S_G。
(6)用T-SQL语句,将各门课程的课程号、选修人数及平均成绩定义为视图V_AVG_C_G。
(7)用T-SQL语句完成以下视图操作,查看结果,并分析原因。
①通过视图V_IS,将学号为“200215125”的学生姓名更改为“张小立”,并查看结果;②通过视图V_IS,新增加一个学生记录 ('200215126','黄笑',19, '男','IS'),并查看结果。
③通过视图V_IS,新增加一个学生记录 ('200215127','李霞',19, '女','MA'),并查看结果。
④通过视图V_IS,删除学号为“200215126”的学生信息,并查看结果。
⑤通过视图V_S_C_G,将学号“200215122”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。
数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)
数据库T-SQL语⾔操作(T-SQL语句、数据库、表、视图、索引)T-SQL语⾔按⽤途分四部分1. 数据定义语⾔(CREATE,DROP,ALTER)2. 数据操作语⾔(INSERT,DELETE,UPDATE)3. 数据查询语⾔(SELECT)4. 数据控制语⾔(GRANT,REVOKE,DENY)数据类型1. 系统数据类型2. ⽤户⾃定义数据类型(建⽴⽅式:a.图形化⽅式 b.命令⽅式)1use TEST2EXEC sp_addtype sno,'varchar(10)','nonull'3EXEC sp_droptype sno变量命名规则:字母、下划线、@或#开头,但不能全为下划线、@或#不能为“关键字”,不能嵌⼊空格及其他特殊字符,如需使⽤则需要双引号或⽅括号括起1.局部变量:由⽤户声明,必须以@开头,只在定义该变量的过程中有效,局部变量必须先声明后使⽤注意:第⼀次声明变量时,其值设置为NULL。
局部变量不能使⽤“变量=变量值”的格式进⾏初始化,必须使⽤SELECT或SET语句来设置其初始值。
如果声明字符型的局部变量,⼀定要在变量类型中指明其最⼤长度,否则系统默认其长度为1。
若要声明多个局部变量,请在定义的第⼀个局部变量后使⽤⼀个逗号,然后指定下⼀个局部变量名称和数据类型。
1USE student2DECLARE@var1char(10),@var2int3SET@var1='number'4select@var2=cgrade5from sc6where sno='201810010'78print@var1+"s"2.全局变量:由系统定义,供SQL server系统内部使⽤的变量,任何程序任何时间都可以调⽤。
通常以“@@”开头。
T-SQL语句1.注释语句(1) --(2) /*……*/2.批处理--GO3.控制流程语句(1) begin...end语句(相当于C语⾔中的{} )(2) if...else语句(可嵌套)(3)case语句(多条件选择语句)(4)print语句(屏幕输出语句)(5)while语句(有条件的循环语句)(6)goto语句(⽆条件跳转语句)(7)break语句(8)continue语句4.常⽤函数(系统函数、⽤户⾃定义函数)⼀些系统函数:(1)字符串函数(2)数学函数(3)⽇期和时间函数(4)聚合函数注意:⽤户⾃定义函数:1.分类:标量值函数:返回单个值内联表值函数:返回可更新的表多语句表值函数:返回不可更新的表2.标量值函数命令⽅式创建1CREATE FUNCTION f2(@a real,@b real) 2RETURNS real3AS4BEGIN5IF@a>=@b6RETURN@a7RETURN@b8END910PRINT'最⼤值为'11PRINT dbo.f2(77,56)1CREATE FUNCTION f3(@n real)2RETURNS real3AS4BEGIN5DECLARE@i real,@sum real6SET@i=07SET@sum=08WHILE@i<@n9BEGIN10SET@i=@i+111SET@sum=@sum+@i12END13RETURN@sum14END1516PRINT dbo.f3(10)3.⾃定义函数的调⽤(1)标量值函数可以使⽤select、print、exec调⽤(2)表值函数只能⽤select调⽤4.删除⽅式drop function 函数名数据库数据库概述1.数据库常⽤对象:表、数据类型、视图、索引、存储过程、触发器系统数据库:master、model、tempdb、msdb2.数据库存储结构(数据库⽂件、数据库⽂件组):数据库⽂件:存放数据库数据和数据库对象的⽂件。
实验报告五 视图与索引
实验五视图与索引一.实验目的1.学会使用企业管理器建立视图与索引2.掌握使用SQL语句建立视图与索引二.实验内容1.使用企业管理器建立视图索引2.使用SQL语句建立视图索引三.实验准备1.复习与本次实验内容相关知识2.对本次实验中要求自己完成的部分做好准备四.实验步骤1.用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图显示学号、姓名、课程、成绩o启动企业管理器、注册、连接o"新建视如下图所示o在新视图窗口内的关系图窗格内右击鼠标,弹出的菜单即为视图设计菜单,执行"添加表(B)...",如下图所示再在添加表对话框中选择SCORES表,再单击添加按钮。
依此操作,分别添加STUDENT、COURSES表,单击关闭按钮。
再在关系窗格内,拖动STUDENT表的"SID"至SCORES的STUDENT_ID,拖动COURSES表的"CNO"至SCORES的COURSE_ID,再分别选中STUDENT表的"SID","NAME"列(列前的复选框),COURSES表的"COURSE"列以及SCORES表的"SCORE"列,然后单击"!"按钮,显示视图结果,如下图所示:单击保存按钮,将视图保存为V_SCORES,单击确定.2.用查询分析器建立一个基于学生表、班级表的学生视图(V_STUDENTS),包括学号、姓名、班级、系,SQL语句如下:CREATE VIEW dbo.V_STUDENTSASSELECT dbo.U_STUDENTS.ID, dbo.U_,dbo.U_CLASSES.CLASS,dbo.U_CLASSES.DEPARTMENTFROM dbo.U_STUDENTS INNER JOINdbo.U_CLASSES ON dbo.U_STUDENTS.CLASS_ID = dbo.U_CLASSES.ID3.自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示课程编号.课程名、学分。
实验5实验报告
学号:20164477 姓名:陈家凤实验五SQL语言一、目的与要求1.掌握SQL语言的查询功能;2.掌握SQL语言的数据操作功能;3.掌握对象资源管理器建立查询、索引和视图的方法;二、实验准备1.了解SQL语言的查改增删四大操作的语法;2.了解查询、索引和视图的概念;3.了解各类常用函数的含义。
三、实验内容(一)SQL查询功能使用提供的studentdb数据库文件,先附加到目录树中,再完成下列题目,SQL命令请保存到脚本文件中。
1.基本查询(1)查询所有姓王的学生的姓名、学号和性别Select St_Name,St_Sex,St_IDFrom st_infoWhere St_Name like'王%'图5-1(2)查询全体学生的情况,查询结构按班级降序排列,同一班级再按学号升序,并将结果存入新表new中select*into newfrom st_infoorder by Cl_Name desc,st_ID asc图5-2(3)对S_C_info表中选修了“体育”课的学生的平均成绩生成汇总行和明细行。
(提示:用compute汇总计算)因2014版本已不支持compute关键字,所以选择用其他方式。
Select c_no,scoreFrom s_c_infoWhere c_no=group by c_no,score图5-32.嵌套查询(1)查询其他班级中比“材料科学0601班”的学生年龄都大的学生姓名和年龄select st_name,born_datefrom st_infowhere cl_name!='材料科学0601班'and born_date<(select min(born_date) from st_info where cl_name='材料科学0601班')图5-4(2)用exists查询选修了“”课程的学生姓名select st_namefrom st_infowhere exists(select*from s_c_info where c_no=9710041 andst_id=st_info.st_id)图5-5(3)用in查询找出没有选修“”课程的学生的姓名和所在班级。
实验5 索引和视图
实验5 索引和视图一、实验目的1.学会使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引。
2.学会使用SQL Server管理平台查看索引。
3.学会使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引。
4.掌握使用SQL Server管理平台、向导等创建、管理和删除全文索引,并使用全文索引查询信息的方法。
5. 掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。
6.掌握系统存储过程sp_rename的用法。
7.掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。
二、实验准备1.了解聚集索引和非聚集索引的概念。
2.了解使用Transact-SQL语句CREATE INDEX创建索引的语法。
3.了解使用SQL Server管理平台创建索引的步骤。
4.了解Transact-SQL语句DROP INDEX删除索引的用法。
5.了解创建视图的Transact-SQL语句CREATE VIEW的语法格式及用法。
6.了解修改视图的Transact-SQL语句ALTER VIEW的语法格式。
7.了解视图更名的系统存储过程sp_rename的用法。
8.了解删除视图的Transact-SQL语句DROP VIEW的用法。
三、实验内容1.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《学生表》和《课程表》创建主键索引。
2.使用SQL Server管理平台按《课程表》的课程编号列创建唯一性索引。
3.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。
4.为studentsdb数据库的《成绩表》的“学号”和“课程编号”字段创建一个复合唯索引,命名为《成绩表_id_c_ind》。
SQLServe实验5_索引和视图_
实验5 索引和视图1.实验目的(1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。
(2)掌握使用SQL Server管理平台查看索引的方法。
(3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。
(4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。
(5)了解索引和视图更名的系统存储过程sp_rename的用法。
(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。
(7)了解删除视图的Transact-SQL语句DROP VIEW的用法。
2.实验内容及步骤(1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。
使用SQL Server管理平台:a. b.c.d.e.使用Transact-SQL语句:(2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。
(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。
使用SQL Server管理平台:使用SQL语句:use studentsdbgocreate index grade_indexon grade (分数)(4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。
create index grade_id_c_indon grade (学号,课程编号)(5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。
数据库-第四次实验报告-视图-t-sql语句
数据库-第四次实验报告-视图-t-sql语句第一篇:数据库-第四次实验报告-视图-t-sql语句实验十报告创建视图实验目的1.掌握创建视图的SQL语句的用法。
2.掌握使用企业管管理器创建视图的方法。
3.掌握使用创建视图向导创建视图的方法。
4.掌握查看视图的系统存储过程的用法。
5.掌握修改视图的方法。
一.实验准备1.了解创建视图方法。
2.了解修改视图的SQL语句的语法格式。
3.了解视图更名的系统存储过程的用法。
4.了解删除视图的SQL语句的用法。
二.实验要求1.用不同的方法创建视图。
2.提交实验报告,并验收实验结果。
三.实验内容 1.创建视图(1)使用企业管理器创建视图① 在EDUC库中以“student”表为基础,建立一个名为“V_计算机系学生”的视图。
在使用该视图时,将显示“student”表中的所有字段.兰州大学数据库实验报告视图如下:(2)使用SQL语句创建视图① 在查询分析器中建立一个每个学生的学号、姓名、选修的课名及成绩的视图S_C_GRADE;Create VIEW S_C_GRADE ASSELECT student.sno,sname,cname,score FROM student,course,student_course WHERE student.sno=student_course.sno AND o=student_o;视图如下:②建立一个所有计算机系学生的学号、选修课程号以及平均成绩的视图COMPUTE_AVG_GRADE;Create VIEWCOMPUTE_AVG_GRADE ASSELECT student.sno,o,AVG(score)'平均成绩' FROM student,course,student_course WHERE student.sno=student_course.snoAND o=student_o AND student.dno='CS' GROUP BY student.sno,o;视图如下:2.修改视图(1)使用企业管理器修改视图在企业管理器中将视图COMPUTE_AVG_GRADE中改成建立在数学系的学生学号、选修课程号以及平均成绩的视图。
数据库原理索引视图实验报告
数据库组成原理实验报告题目:索引、视图的定义院系:计算机科学与工程学院班级:姓名:学号:一、实验题目索引、视图的定义二、实验日期2014年10月25日三、实验目的及要求掌握嵌套查询语句的运用,掌握使用T -SQL语句创建视图的方法,包括视图的建立、删除、修改;了解如何应用视图有选择地查看所需数据,并熟悉通过视图更改数据表中数据的方法。
掌握创建索引的方法。
四、实验环境Sqlserver2008,windows xp。
五、实验内容在数据库TestDB中,基于表"项目数据表"和"员工数据表"创建视图,要求:(1)视图名为"员工项目"。
(2)包含字段"编号"、"姓名"、"名称"和"开始日期"。
(3)字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。
六、实验步骤在数据库TestDB中,基于表"项目数据表"和"员工数据表"创建视图,要求为:(1)视图名为"员工项目"。
(2)包含字段"编号"、"姓名"、"名称"和"开始日期"。
(3)字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。
(1)打开查询分析器。
在查询窗口书写CREATE VIEW语句创建视图,并指定字段别名:USE TestDBGOCREATE VIEW员工项目(员工编号,员工姓名,项目名称,项目开始日期) ASSELECT a·编号,a·姓名,b·名称,b·开始日期,FROM员工数据表AS a INNER JOIN项目数据表AS bON a·编号=b·负责人WHERE a·编号=b·负责人GO(2)使用INSERT语句通过视图向员工数据表中添加一条记录,要求"姓名"字段值为"马中兴"。
综合实训二 T-SQL简单编程
综合实训一数据库及数据库对象管理一、实训目的1.掌握T—SQL程序设计技术;2.掌握T—SQL流程控制和函数的应用技能;3.掌握存储过程和触发器的使用。
二、实训要求1.实训前做好上机实训的准备,针对实训内容,认真复习与本次实训有关的知识,完成实训内容的预习准备工作;2.能认真独立完成实训内容;3.实训后做好实训总结,根据实训情况完成总结报告。
三、实训学时2学时四、实训项目根据实训教程p22,用企业管理器快速创建学生成绩管理数据库和其三张表并在每张表中输入一定的数据。
以下测试均在此数据库基础上完成。
1.利用BETWEEN语句,查询XSQK表中总学分在40—50之间学生的学号和姓名。
2.用>=和<=代替BETWEEN语句实现上题相同功能。
3.在XSKC表中查询课程名中以A开头的课程的情况。
4.用T-SQL语言,定义用户自定义函数实现如下功能:根据课程号,计算出全体学生该门课的平均成绩。
5.在学生课程表(xskc)中创建存储过程,存储过程名为proc_xskc1,要求实现如下功能:根据课程号,查询所有学习该课程的学生的信息,要求显示姓名,学号,课程号,课程名,成绩。
并调用该存储过程显示相应数据。
6.在学生情况表(xsqk)中创建触发器xsqk_trigger1,实现如下功能:当在学生情况表(xsqk)中输入一个学生的记录时,根据学生课程表(xskc)中已存在的所有课程,自动在学生成绩表(xscj)中生成该生所有课程的初始记录,成绩栏为0,学分为该课程在学生课程表(xskc)中的学分。
7.在学生成绩表(xscj)中创建触发器xscj_trigger1,实现如下功能:当在学生成绩表(xscj)中输入一个学生成绩记录时,如果成绩及格则将相应学分,自动在学生情况表(xsqk)中相应学生记录的总学生中进行累加。
五、实训思考题1.存储过程与触发器的作用?2.用户自定义函数与系统函数有何不同?。
实验报告四 索引和视图
实验四索引和视图一、实验学时2学时二、实验目的(1)理解索引的概念与类型。
(2)掌握使用企业管理器创建与维护索引的方法。
(3)掌握T-SQL语句创建与维护索引的方法。
(4)理解视图的概念。
(5)掌握视图创建、更改的方法。
(6)掌握用视图管理数据的方法。
三、实验要求(1)硬件设备:奔腾II或奔腾II以上计算机,局域网。
SERVER、WINDOWS7、XP、WINDOWS9X/NT、WINDOWS(2)软件环境:WINDOWSSQL SERVER 2000/2005/2008中文版企业版或标准版。
(3)实验课前预习,课后及时完成实验内容。
(4)实验过程及记录按题目格式要求填写代码清单。
四、实验内容(一)索引索引分为两种:聚簇索引和非聚簇索引。
每张表只能有一个聚簇索引。
创建索引时的缺省设置是非聚簇索引。
1.使用企业管理器创建、管理索引(1)创建索引1)为Student表创建一个以Sno为索引关键字的惟一聚簇索引。
(若原已有,请删除,索引名为Sno_index)(提示:选择表后点击鼠标右键,选“设计”,窗口空白区域点击鼠标右键,选“索引/键”)基本步骤:2)为Student表创建以Sname,Sex为索引关键字的非聚簇索引(对Sname 以升序来排列,Sex以降序排列,并设置填充因子为70%)。
索引名为:SS_index。
(提示:填充因子为索引创建时索引里的数据页被填充的数量)基本步骤:(2)重命名索引将索引文件Sno_index重新命名为Sno_index1。
基本步骤:(3)删除索引将索引文件Sno_index1删除。
基本步骤:2.使用T-SQL语句创建、管理索引(1)创建索引1)为SC表创建一个非聚集索引Grade_index,索引关键字为Grade,升序,填充因子为80%。
(提示:with fillfactor=)T-SQL语句:create nonclustered index Grade_indexon SC(Grade)with fillfactor=80;2)为SC表创建一个唯一性聚集索引SC_index,索引关键字为Sno,Cno。
SQLServe实验5_索引和视图_
实验5 索引和视图1.实验目的(1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。
(2)掌握使用SQL Server管理平台查看索引的方法。
(3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。
(4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。
(5)了解索引和视图更名的系统存储过程sp_rename的用法。
(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。
(7)了解删除视图的Transact-SQL语句DROP VIEW的用法。
2.实验内容及步骤(1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。
使用SQL Server管理平台:a. b.c.d.e.使用Transact-SQL语句:(2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。
(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。
使用SQL Server管理平台:使用SQL语句:use studentsdbgocreate index grade_indexon grade (分数)(4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。
create index grade_id_c_indon grade (学号,课程编号)(5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。
SQL实验6:使用索引,视图和批量
CREATEINDEXidxname
ONToys(cToyIdDESC)
2.对于Shipment表,我们会经常查看玩具的实际发送日期(dActualDeliveryDate),请问,我们应该建立什么索引加快每次查询该列的速度,并写出相应的T-SQL语句。
11.查询是否所有的玩具都曾经被人订购,如果是的话,那么打印消息‘All Toys have ever been ordered’。否则,打印消息‘Some kind of toys are not so popular’,并列出没有被人订购过的玩具的详细信息。
ifexists(select*fromtoyswherecToyIdnotin
END
10.Toys表包含由零售机构出售的所有玩具的材料。Toys表的siToyQOH列存储各玩具的零件数量,cToyId列存储各玩具的Toy Id。在cToyId列上定义Primary Key的约束。当产品代号为000029的玩具的siToyQOH列的值大于0时,使用适当的编程构造显示短语“Product available”。如果存储在siToyQOHd的值为0时,那么显示短语“Product not available”。
UPDATEvwCandidateContractRecruiter
SETsitestscore=87
WHEREcCandidateCode='000049'
UPDATEvwCandidateContractRecruiter
SETcInterviewername='Roger Federal'
WHEREcCandidateCode='000049'
实验报告 3(视图、索引的创建与使用)
撰写人姓名:撰写时间:审查人姓名:实验全过程记录一、实验目的1、熟练掌握视图的创建与维护操作,熟练使用视图访问数据;2、熟练掌握索引的创建与维护操作,熟练使用索引以方便查询。
二、实验内容:1、在“对象资源管理器”中使用向导和在在“查询编辑器”中使用T-SQL语句创建视图,并修改视图。
再通过视图向数据库添加、修改、删除数据。
2、使用步骤1中两种方法进行索引的创建、修改、删除操作。
三、实验用仪器设备及材料软件需求:操作系统:Windows XP或更新的版本数据库管理系统:SQL Server 2005或更新的版本硬件需求:Pentium Ⅲ1G以上的CPU处理器、256MB以上的内存、1.5G以上自由硬盘空间、打印机、打印纸、CD-ROM驱动器等。
四、实验步骤:1、在“对象资源管理器”中展开需要建立视图的“公司管理系统”数据库,用鼠标右键单击“视图”对象,选择快捷菜单“新建视图”选项,打开新建“视图”对话框,根据需要选择添加的表和视图。
现添加“职工表”、“项目表”和“客户表”。
在视图设计窗口中,创建“查询姓‘李’的职工负责的上海的项目名称”的视图。
据此设置视图的输出列、列名、表名等属性。
保存该视图并利用此视图进行查询操作。
2、选择当前数据库为“公司管理系统”数据库。
在“查询编辑器”中使用T-SQL语句创建“查询客户表中所有地址在‘北京’的客户编号和名称”的视图。
通过此视图向数据库中的表进行添加、修改、删除等更新记录操作。
3、在“对象资源管理器”中展开需要建立索引的“职工表”,选中“索引”选项并展开。
选中“索引”对象,单击鼠标右键,在快捷菜单中选择“新建索引”选项,打开“新建索引”对话框。
根据“职工表”的“出生日期”列创建一不唯一、也不是聚集的索引。
设置完毕后保存该索引并进行相应的查询输出以观察索引设置的输出效果。
4、在“查询编辑器”中使用T-SQL语句对“客户表”的“客户名称”列和“地址”列创建一不唯一的、也不是聚集的复合索引。
数据库原理实验报告-T-SQL编程
数据库原理实验报告-T-SQL编程本次实验主要通过T-SQL编程学习数据库操作语言,包括基本的表格操作、数据查询、以及高级的存储过程和触发器编程。
1. 创建表格首先,我们需要创建一些表格来存储数据。
使用CREATE TABLE语句可以创建一个新的表格,语法如下:```sqlCREATE TABLE table_name (column1 datatype1,column2 datatype2,column3 datatype3,.....);```其中,table_name为所创建的表格的名称,column1, column2, column3为表格中的列名,datatype1, datatype2, datatype3为列的数据类型。
例如,以下为创建一个名为“students”的表格,并包含学生的姓名、性别和年龄:2. 插入数据```sqlINSERT INTO students (name, gender, age)VALUES ('Tom', 'male', 20);```3. 更新和删除数据使用UPDATE语句可以更新表格中的数据,语法如下:其中,table_name为要更新的表格名称,SET语句用于设置要更新的列名和对应的值,WHERE语句用于指定要更新的数据行。
例如,以下为将名为“Tom”的学生年龄更新为25岁:```sqlDELETE FROM table_name WHERE condition;```4. 查询数据5. 存储过程存储过程是一种预先定义好的程序,它包含了一组SQL语句,可以在需要时对存储过程进行调用。
使用CREATE PROCEDURE语句可以创建一个新的存储过程,语法如下:其中,procedure_name为所创建的存储过程名称,SQL statements为存储过程中的SQL语句。
例如,以下为创建一个名为“get_students”的存储过程,并查询所有学生数据:```sqlCREATE PROCEDURE get_studentsASBEGINSELECT *FROM students;END;```使用EXECUTE语句可以执行存储过程,语法如下:```sqlEXEC procedure_name;```例如,以下为执行名为“get_students”的存储过程:6. 触发器触发器是一种特殊的存储过程,它在特定的事件发生时自动执行。
SQL实用教程(第四版)实验五T-SQL编程
南昌大学实验报告学生姓名:廖美君学号:8002213113 专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:2015-5-9一、实验项目名称T-SQL编程二、实验目的与要求1、进一步巩固前面所学知识2、掌握用户自定义类型的使用3、掌握变量的分类及使用4、掌握各种运算符的使用5、掌握各种控制语句的使用6、掌握系统函数及用户自定义函数的使用三、实验基本原理1、了解T-SQL支持的各种基本数据类型2、了解自定义数据使用的一般步骤3、了解T-SQL各种运算符、控制语句的功能及使用方法4、了解系统函数的调用方法5、了解用户自定义函数使用的一般步骤四、主要仪器设备及耗材计算机,MS SQL Server 2005,OFFICE五、实验步骤1、自定义数据类型的使用(1)定义一数据类型ID_type,用于描述员工编号SQL语句:USE廖美君EXEC sp_addtype'ID_type','nchar(6)','not null'GO实验结果:图5-1定义一数据类型ID_type思考与练习:a)使用界面方式创建一个用户自定义类型图5-2使用界面方式创建用户自定义类型过程(一)图5-3使用界面方式创建用户自定义类型过程(二)图5-4使用界面方式创建用户自定义类型成功(2)在廖美君数据库中创建表Employees3要求:表结构与Employees类似,只是EmployeesID列使用的数据类型为用户自定义类型ID_type。
SQL语句:USE廖美君GOIF EXISTS(SELECT Name FROM sysobjects WHEREName='EMPLOYEES3')DROP TABLE Employees3CREATE TABLE Employees3(EmployeeID ID_type,Name nchar(10)NOT NULL,Education nchar(4)NOT NULL,Birthday datetime NOT NULL,Sex bit NOT NULL DEFAULT 1, Workyear tinyint NULL,Address nvarchar(40)NULL,PhoneNumber nchar(12)NULL,DepartmentID nchar(3)NOT NULL,PRIMARY KEY (EmployeeID))GO实验结果:图5-5创建表Employees32、变量的使用(1)创建一个用户变量要求:对于实验2给出的数据库表结构,创建一个名为Female的用户变量,并在SELECT语句中使用该局部变量查找表中所有女性的编号、姓名。
实验三:索引和视图的操作()
实验三:索引和视图的操作实验日期:2014年5月14日姓名:李怀彬一、实验目的1、掌握使用SQL语句创建索引和视图;2、掌握在视图上对表中的数据进行操作:查询、修改等。
3、看懂SQL Server的查询执行计划,了解通过建立索引来改善查询的执行性能。
二、实验要求1.使用T-SQL 语句创建索引和视图,通过视图操作表中的数据。
2.请将试验内容中的每道题的T-SQL语句写在实验报告中。
3.独立完成实验内容,并提交书面实验报告。
三、实验内容本实验所使用的数据库为实验二创建的数据库jdglsys。
1、在客房业务表上查找在2010年2月10日后有客户入住的客房号,入住时间;查看相应的select语句的查询执行计划并分析SELECT客房号,入住时间FROM客房业务WHERE (入住时间>'2010-02-10 00:00:00')分析:通过比较执行计划,只有I/O和CPU的开销发生了变化,其他没变。
具体见下图:2、在客房业务表上创建以“入住时间”为索引关键字升序排序的非聚集索引index_time ;USE[jdglsys]CREATE NONCLUSTERED INDEX[index_time]ON[dbo].[客房业务]([入住时间]ASC)3、执行问题1中的select语句,再查看此时的查询执行计划,查询执行计划是否有变化?分析:I/O和CPU的开销发生了变化,其他没变。
具体见上图所示:4、在客房业务表上查找在2010年2月10日后有客户入住的所有入住时间;查看select 语句的查询执行计划并分析。
SELECT入住时间FROM客房业务WHERE (入住时间>CONVERT(DATETIME,'2010-02-10 00:00:00', 102))分析:select语句后对客房业务表进行扫描时物理运算方式为索引查找。
如下图所示5、查找客户入住的客房的客房号、入住客户身份证号、姓名、入住时间、该客房对应的类型编号、客房面积、客房名称以及客房价格。
SQL数据库中索引与视图的创建与使用
实验五索引与视图的创建与使用
一、实验目的
1)掌握使用SQL Server Management Studio和Transact-SQL语句创建索引。
2)掌握使用SQL Server Management Studio和Transact-SQL语句查看、修改和删除索引。
3)掌握利用“对象资源管理器”和CREATE VIEW命令创建视图的具体操作。
4)熟悉利用视图修改数据的操作。
二、实验要求
1)分别使用“对象资源管理器”和Transact-SQL语句为数据库中的某个表创建一个符合索引。
2)分别使用“对象资源管理器”和Transact-SQL语句查看第1题创建的索引信息,并重命名该索引。
3)删除第1题创建的索引。
4)分别利用“对象资源管理器”和CREATE VIEW命令创建视图。
5)通过视图修改数据。
三、实验步骤:
1.在新建的数据库test中的Student_Sno创建新的关于Sno和Sname的索引:
用SQL语言建立一个Student_Sname索引:
2.查看刚才新建的索引并对其进行重命名:
3.删除新建的索引:
4.对于Student表创建新的视图:
四、实验小结
通过本次实验,我加深了对索引和视图的创建以及使用方法,了解了不同的索引和视图的具体的不同的环境下的不同使用情况,同时也对数据库的操作有了进一步的加深和理解。
实验三 T-SQL编程
实验三 T-SQL编程实验三T-SQL编程一、实验目的1、掌握批处理、脚本的概念2、掌握SQL Server中局部变量、全局变量和内置函数的概念和应用3、掌握SQL Server流程控制语句的使用4、掌握SQL Server三种用户自定义函数的创建和使用方法5、掌握游标的建立和使用6、掌握事务的建立和使用二、实验内容1、恢复sales数据库。
2、使用变量(1)新建查询。
(2)在编辑窗口输入如下内容: Use sales G0Declare @maxpricee moneySelect @maxprice=max(price)from Products Where price is not null G0Select [@maxprice]= @maxprice Print @@rowcount(3)解释每一命令的语义,执行以上语句,系统报错,说明错误原因并改正。
错误原因:必须声明标量变量\。
改正后的语句:3、使用函数(1)新建查询。
(2)在编辑窗口,按要求编写T-SQL语句: 1)编写并记录使用ROUND()函数的示例。
SELECT ROUND(price,1)as unitprice FROM products2)编写并记录使用SUBSTRING()函数的示例。
SELECT substring(name,1,2) FROM products3)编写并记录使用DATEPART()函数的示例。
SELECT DATEPART(yyyy,OrderDate) AS OrderYear, DATEPART(mm,OrderDate) AS OrderMonth, DATEPART(dd,OrderDate) AS OrderDay FROM OrdersWHERE Orderno=10014)编写并记录显示当前系统用户名的语句。
select system_user4、使用流控制语句(1)新建查询。
(2)在编辑窗口,输入如下内容: USEsales goselect OrderNo,ProductNO,订单等级= Case QtyOrdered When 2 then '3级’ When 90 then '1级’ Else '2级’ EndFrom order_Details3)修改以上的内容,重新划分等级,要求: 1)当qtyordered的值不低于100时,为1级;2)当qtyordered的值在区间[50,100)上时,为2级; 3)当qtyordered的值在区间[20,50)上时,为3级; 4)当qtyordered的值在区间[10,20)上时,为4级;5)当qtyordered的值小于10时,为5级;(4)记录修改后的T-SQL语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五索引
实验目的
1.掌握使用对象资源管理器创建索引的方法。
2.掌握T-SQL创建和删除索引语句的使用方法。
3.掌握查看索引的系统存储过程的用法。
实验内容
1.在对象资源管理其中创建索引。
要求:在XSCJ数据库的Student表的“学号”列上建立非聚簇索引
StuNo_ind。
在对象资源管理其中,选择XSCJ数据库的Student表,展开
Student表,在“索引”节点上单击鼠标右键,在弹出的快捷菜单上
选择“新建索引”命令,打开如图A5.1所示的“新建索引”窗口。
在“索引名称”文本框中输入新建索引的名称StuNo_ind。
单击“添
加”按钮,出现如图A5.2所示的“选择列”对话框,在其中选择用
于创建索引的列“学号”,单击“确定”按钮。
图A5.1 “新建索引”窗口图A5.2 选择索引列
索引创建完成后,可在对象资源管理器中展开表的“索引”节点,查看该表上的所有索引。
2.使用T-SQL语句创建和删除索引。
1)在XSCJ数据库Course表的“课程号”列上建立非聚簇索引
CourseNo_ind。
2) 删除Course 表上的索引CourseNo_ind 。
3. 使用系统存储过程sp_helpindex 查看索引。
要求:使用系统存储过程sp_helpindex 查看Student 表上的索引信息。
实验总结
通过此次实验,我知道了既可以在对象资源管理器中创建索引,也可以
使用T-SQL 语句创建和删除索引。
实验六视图
实验目的
1.掌握使用对象资源管理器创建视图的方法。
2.掌握T-SQL创建和删除视图语句的使用方法。
3.掌握视图的查询方法。
实验内容
1.在对象资源管理器中创建视图。
要求:创建名为Student_male的视图,包含所有男学生的信息。
在对象资源管理器中选择XSCJ数据库,展开XSCJ数据库,在“视
图”节点上单击鼠标右键,在弹出的快捷菜单上选择“新建视图”命
令,打开如图A6.1所示的“添加表”对话框。
选中“Student”表,
单击“添加”按钮,然后再单击“关闭”按钮,将出现如图A6.2所示
的创建视图窗口。
在“Student”窗格中选择所有列,在条件窗格的列一栏中选择“性别”,“输出”栏不勾选,在“筛选器”一栏中输入“男”。
单击“保存”,命名为Student_male
2.使用T-SQL语句创建视图。
要求:创建名为Student_Computer的视图,包含计算机科学与技术专业的学生信息。
图A6.1 “添加表”对话框图A6.2 创建视图窗口
3. 视图查询
1)
查询Student_male
视图。
2) 在Student_Computer 视图上查询计算机科学与技术专业在1989
年出生的学生信息。
4. 使用T-SQL 语句修改视图定义。
要求:将Student_male 视图定义更改为包含计算机科学与技术专业
所有男生的信息。
实验总结
通过此次试验,我学会了分别用对象资源管理器和T-SQL 对视图进行创
建和修改的方法。
查询视图时,语句与对表的查询类似。
实验七 T-SQL 编程
实验目的
1. 了解T-SQL 变量的使用方法。
2. 掌握T-SQL 各种运算符、控制语句的功能及使用方法。
3. 掌握常用系统函数的调用方法。
4. 掌握用户自定义函数的使用。
实验内容
1. 局部变量的使用。
要求:创建一个名为Spec 的局部变量,并在SELECT 语句中使用该局
姓名。
2.
3. 使用系统函数。
1) 输出当前系统日期和时间。
2)
输出当前版本安装信息。
3) 统计学生所选课程总数。
4) 输出一个0~1之间的随机数。
5) 查询Student 表,输出每个学生的学号、姓名和专业名,如果专业
名中包含“计算机科学与技术”,则以“计算机”代替。
6) 查询Student 表,输出每个学生的学号、姓名和总学分,若总学分
4. 使用自定义函数。
1)
定义一个函数,其功能是:查询某个学号的学生信息是否存在,若
存在则返回0;若不存在则返回 -1。
学号作为输入参数传入。
2)对Check_Sno函数进行调用。
a)在SELECT语句中调用:
b)利用EXEC语句执行:
实验总结
通过此次实验,帮助我了解了T-SQL变量的编程,通过例子理解系统函
数和自定义函数的使用。