SQL 操作练习题.docx

上传人:牧羊曲112 文档编号:3166148 上传时间:2023-03-11 格式:DOCX 页数:9 大小:39.91KB
返回 下载 相关 举报
SQL 操作练习题.docx_第1页
第1页 / 共9页
SQL 操作练习题.docx_第2页
第2页 / 共9页
SQL 操作练习题.docx_第3页
第3页 / 共9页
SQL 操作练习题.docx_第4页
第4页 / 共9页
SQL 操作练习题.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《SQL 操作练习题.docx》由会员分享,可在线阅读,更多相关《SQL 操作练习题.docx(9页珍藏版)》请在三一办公上搜索。

1、SQL 操作练习题SQL Server操作练习题 1 数据库运行监控 1.1 使用SQL语句实现DMV查询,查找当前挂起的 I/O 请求,将结果保存在“c:gatDocSQL3J2.1.12.1.1.doc”文档中。 1.2 以SA身份登录数据库,在Master数据库上执行SQL语句: Select * from sysobjects 。利用SQL Server Manangement Studio监控数据库服务器,观察每个登录用户在数据库执行的命令,请在“c:gatDocSQL3J2.1.12.1.1.doc”文档内写出操作步骤,并在该文档内将下列操作界面截屏后保存:阅读进程信息,sa执行的

2、命令。 1.3 打开SQL Server Profiler,建立跟踪,对数据库活动进行监视,同时打开性能监视器,利用SQL Server: Memory对象监视数据库的一般活动,运行3分钟后,观察重合时段内SQL Serve的活动和上述性能计数器的值,请在“2.1.1.doc”文档内写出操作步骤,并在该文档内将下列三个操作界面截屏后依次保存: 1) 在SQL Server Profiler中新建跟踪mytrace。 2) 在性能监视器中新建SQL Server: Memory计数器。 3) 在SQL Server Profiler中查看指定性能计数器的情况。 2 数据库备份计划 2.1 利用维

3、护计划功能,设置每天1:00自动执行增量备份数据库model到文件夹C:Backup,并将操作步骤写在c:gatDocSQL3J2.2.12.2.1.doc文档里面,将下面两个操作界面截屏后依次保存在同一个文档里: 1)设置备份数据库任务的界面 2)维护计划设置完成的界面 2.2 利用SQL Server Agent功能,创建作业job1,设置每天4:00完成以下步骤:先删除备份文件c:gatDocSQL3J2.2.1model.bak,然后对数据库model进行完全备份,保存为c:gatDocSQL3J2.2.1model.bak,请在2.2.1.doc文档里写出操作步骤,并将下面三个操作界

4、面截屏后依次保存: 1) 设置删除备份文件的界面 2) 设置对数据库model进行完全备份的界面 3) 设置作业计划属性的界面 3 数据库编程 * 准备:假设目前有一个数据库demo,里面有两个表Supplier、Production,结构如下: Supplier : ID int, -供应商编号 Name varchar(25), -姓名 hireDate datetime, -供应日期 type varchar(10), -供应类型 sal numeric(8,2), -补助 MGR int, -所属类型编号 productionID int, -商品编码 Production : ID

5、int, -商品编码 Name varchar(25), -商品名 price float, -商品价格 number float, -商品种类 练习时请同学自行创建以上数据库和数据表。 将下面操作的SQL脚本保存到c:gatDocSQL3J3.1.13.1.1.doc文档中。 3.1 建立存储过程add_supplier,输入供应商编号、姓名、-供应日期、供应类型、补助、所属类型编号,向表Supplier插入数据。 3.2 建立函数valid_id,根据输入的供应商编号,检查该供应商供应的商品是否少于10种,如果少于,则返回1,否则返回0。 3.3 3.4 建立函数get_sal,根据输入的

6、商品名,返回该商品的平均价格。 建立函数get_tab,根据输入的所属类型编号返回该类型的所有供应商信息。 3.5 编写存储过程disp_ supplier,根据输入的所属类型编号,采用游标方式按照下列格式输出该所有该类型的供应商姓名、供应类型、供应日期。 供应商姓名 供应类型 供应日期 - - 参考答案: 1.1 select database_id,file_id,io_stall,io_pending_ms_ticks, scheduler_address from sys.dm_io_virtual_file_stats(null,null) t1, sys.dm_io_pending

7、_io_requests t2 where t1.file_handle=t2.io_handle * 分析:在sys.dm_io_pending_io_requests视图中,记录了挂起的I/O进程情况。这个视图在master数据库中的系统视图中可以找到。另外还用到一个系统函数sys.dm_io_virtual_file_stats,在下面图中的位置可以找到。 1.2 步骤:(考试时不需要写步骤) 1 在SQL Server Manangement Studio打开新查询。 2 选择Master数据库,点击工具栏中的“新建查询”。 3 在查询中执行下面的语句: Seelct * from s

8、ysobjects 4 在“管理 活动监视器”中,右键选择“查看进程”,弹出活动监视器窗口,有多个进程,其中有一个SA帐户在访问数据库实例,双击该进程后弹出一个进程的详细信息窗口。 (提示:使用Alt + PrtSc组合键,可以复制当前活动窗口图象) 1.3 步骤:(考试时不需要写步骤) 1 在SQL Server Manangement Studio的“工具”菜单中打开SQL Server Profiler。 2 点击“新建跟踪”。 3 填写跟踪名称myTrace,选中“保存到文件”,指定文件夹C:和文件名myTrace.trc,单击“运行”。 4 在SQL Server Profiler

9、的“工具”菜单中打开性能监视器。 5 展开“性能日志和警报”,在“计数器日志”上右键选择“新建日志设置”,填写日志名称myLog。 6 点击“添加计数器”,在 “性能对象”中选择“SQL Server: Memory”,再从列表中选择一个计数器“pages/sec”(根据题目要求,如果没有要求,任意选一个),然后点击“添加”,再点击“关闭”。 7 打开“日志文件”选项卡,在“日志文件类型”中选择“文本文件”。点击“配置”按钮,指定文件夹C:和文件名myLog.csv,然后按“确定”返回。 8 在查询工具中任意使用SQL语句执行一些数据库操作。 9 3分钟后,分别停止SQL Server Pro

10、filer和性能监视器的所有运行的任务。 10 关闭SQL Server Profiler的当前跟踪,在“文件”菜单中打开所保存的跟踪文件C:myTrace.trc,然后在“文件”菜单中选择“导入性能数据”,选择性能计数器保存的文件C:myLog.csv,并在“性能计数器限制对话框”中选中相应的计数器。 2.1 步骤:(考试时不需要写步骤) 1 在SQL Server Manangement Studio的管理-维护计划中,右键点击“新建维护计划”,填写名称。 2 设置计划,选择“重复执行”,频率为每天一次,时间设定为3:00。 3 在左边任务列表中将“备份数据库”任务拖曳到右边窗口,然后双击

11、他。 4 选择数据库“model”,备份类型选“完整”,文件夹选“C:Backup”(直接打字,不要打开对话框进行选择)。 5 保存,退出。 2.2 步骤:(考试时不需要写步骤) 1 在SQL Server Manangement Studio的SQL Server代理-作业中,右键点击“新建作业”,填写名称。 2 点击“步骤”选项卡,新建一个步骤,命名为step1,类型选择“操作系统”,命令栏目中填写:del c:backupmodel.bak,单击“确定”。 3 新建一个步骤,命名为step2,类型选择“Transact-SQL脚本”,数据库选择“master”,命令栏目中填写:backu

12、p database model to disk=c:backupmodel.bak,单击“确定”。 4 点击“计划”选项卡,新建一个计划,命名为plan1,选择“重复执行”,频率为每天一次,时间设定为5:00,单击“确定”。 5 单击“确定”,退出。 3.1 create procedure add_supplier id int,name varchar(25),hiredate datetime,type varchar(10),sal numeric(8,2),MGR float as begin insert into supplier values(id,name,hiredate

13、,type,sal,MGR,null) end * 分析:本题使用存储过程模板。由于没有给出productionID字段的值,所以要使用null补足。 3.2 create function valid_id ( id int ) returns int as begin declare result int select result=count(*) from production where ID= (select productionID from supplier where id=id) if result10 set result = 1 else set result = 0

14、return result end create function valid_id ( id int ) returns int as begin declare result int if (select count(*) from production where ID= (select productionID from supplier where id=id)10 set result = 1 else set result = 0 return result end * 分析:本题使用标量函数模板。先使用嵌套查询得到指定供应商的商品数量,再进行判断。也可以使用其他方式完成,例如多

15、表查询。 3.3 create function get_sal ( name varchar(25) ) returns float as begin declare result float selectresult=avg(price) from production where name=name return result end *分析:本题使用标量函数模板。 3.4 create function get_table ( MGR int ) returns table as return (select * from supplier where MGR=MGR) * 分析:本题

16、使用内联表值函数模板。 3.5 create procedure disp_supplier MGR int as begin declare name varchar(25),type varchar(10),hireDate datetime declare c_rs cursor for select name,type, hireDate from supplier where MGR=MGR open c_rs print 供应商姓名 供应类型 供应日期 print - fetch next from c_rs into name,type,hireDate while fetch_status = 0 begin print name + + type + + cast(hireDate as varchar) fetch next from c_rs into name,type,hireDate end close c_rs deallocate c_rs end * 分析:本题使用存储过程模板。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号