155
14.1 SQL Server 2000 的的的的的的 14.2 的的的的的的的 14.3 的的的的的的的的的 14.4 的的的 的的的 14.5 的的的的的的的 14.6 的的的的的 第第第第 第第第第

14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5 数据库复杂查询 14.6 视图的使用

Embed Size (px)

DESCRIPTION

第十四章 上机指导. 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5 数据库复杂查询 14.6 视图的使用. 14.7 T-SQL 编程 . 14.8 约束和索引的使用 14.9 存储过程和触发器的使用 14.10 游标的使用 14.11 安全论证与访问权限 14.12 数据库备份. 14.1 实验一 SQL Server 2000 的安装及配置. 1、实验目的与要求 ( 1 ) 掌握 SQL Server 服务器的安装。 - PowerPoint PPT Presentation

Citation preview

Page 1: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

14.1 SQL Server 2000的安装与配置14.2创建数据库和表14.3管理数据表中的数据14.4数据库一般查询14.5 数据库复杂查询14.6视图的使用

第十四章 上机指导

Page 2: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

14.7 T-SQL编程.

14.8约束和索引的使用14.9存储过程和触发器的使用14.10游标的使用14.11安全论证与访问权限14.12 数据库备份

Page 3: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求( 1 )掌握 SQL Server 服务器的安装。( 2 )了解企业管理器的使用方法和界面。( 3 )了解查询分析器的使用方法和界面。( 4 )了解数据库及其对象的基本概况。

14.1 实验一 SQL Server 2000 的安装及配置

Page 4: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实 验 内 容( 1 )安装 SQL Server 2000 步骤参照1.3.3 节。( 2 )验证 SQL Server 2000 安装的正确性单击“开始 / 程序 / Microsoft SQLServer” ,可查看安装的组件。此时在程序组里会出现 Microsoft SQL Server的管理工具,如图 14-1 。

Page 5: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用
Page 6: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

(3)启动、停止和暂停 SQL Server

服务器单击“开始 / 程序 / Microsoft

SQL Server/ 服务管理器”,在打开的对话框中单击服务器名称栏右边的下拉列表,选择安装的服务器实例,如图 14-2.

Page 7: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用
Page 8: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

(4)建立到 SQL Server 的连接  单击“开始 / 程序 / Microsoft SQL Server/ 查询分析器”,在打开的对话框中选择指定的身份验证模式。(5)利用企业管理器访问系统的pubs 数据库 1 )启动 SQL Server 服务管理器

Page 9: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2 )单击“开始 / 程序 / Microsoft SQL Server/ 企业管理器”,打开企业管理器。 3 )层层展开控制台根目录的目录树,在安装的服务器实例名(如 DXY )下选择“数据库 /pubs/ 表”对象,在右边窗口选择“ publishers” 单击鼠标右键,在快

Page 10: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

捷菜单中选择“打开表 / 返回所有行”,查看其内容。( 6 )利用查询分析器查看当前系统中存在的所有数据库 1 )单击“开始 / 程序 / Microsoft SQL Server/ 查询分析器”,打开查询分析器。

Page 11: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2 )在对象浏览器的目录树中展开“pubs” 数据库对象,列出 pubs 数据库的所有对象。 3 )在“用户表”对象下选择“dbo.authors” 单击鼠标右键,在快捷菜单中选择“打开”,查看该表内容。4 )在表的尾部添加一记录。

Page 12: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

5 )在查询分析器的输入窗口,输入下面的 T-SQL 语句: USE pubs SELECT * from authors GO单击工具栏中图标,查看执行结果。( 7 )注册服务器参见 1.3.4 节。

Page 13: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

14.2 实验二 创建数据库和表1、实验目的与要求( 1 )了解数据库的逻辑结构和物理结构。( 2 )了解表的结构特点及 SQL

Server 的基本数据类型。

Page 14: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 3 )掌握通过企业管理器界面创建数据库和表的操作方法。( 4 )掌握使用 T-SQL 语句创建数据库和表的方法。

Page 15: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )在企业管理器中创建数据库  启动企业管理器,展开控制台根目录的树状结构,在“数据库”对象上单击鼠标右键,在快捷菜单中选择“ 新建数据库”,在打开的数据库属性对话框中设置新数据库的属性。详细

Page 16: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

步骤参照 2.1.5 节。( 2 )在企业管理器中删除数据库  在企业管理器左边窗口中选择新建的数据库 traffic ,单击鼠标右键,在快捷菜单中选择“删除”。( 3 )用 T-SQL 语句创建数据库  启动分析查询器,在查询窗口中

Page 17: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

输入正确的 T-SQL 语句,创建 traffic数据库(参照〖例 2-2 〗)。在企业管理器中可查看数据库对象,观察该语句执行结果。( 4 )用 T-SQL 语句删除数据库  在分析查询器的查询窗口输入下面 T-SQL 语句:

Page 18: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

DROP DATABASE mytemp

GO  在企业管理器中查看数据库对象,观察该语句执行结果。( 5 )在企业管理器中创建数据表确定数据库 traffic 已创建好。

Page 19: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1 )在企业管理器中展开层次结构后,选择“数据库 / traffic/ 表”对象,单击鼠标右键,在快捷菜单中选择“ 新建表”。2 )在打开的新表对话框中输入表的结构。3 )选择“驾照号”行,单击工具栏中

Page 20: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

“ 设置主键”图标。  详细步骤参照 2.2.4 节,表结构可参照附录。( 6 )用同样的方法建立表 cd 、 cl 、xc 和 ddy 。( 7 )在企业管理器中删除表  在企业管理器左边窗口中选择

Page 21: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

“ 数据库 / traffic/ 表”,在右边窗口中选择要删除的表,单击鼠标右键,在快捷菜单中选择“删除”。( 8 )用 T-SQL 语句创建表 jsy

 启动分析查询器,在查询窗口中输入正确的 T-QL 语句,创建表 jsy(参照〖例 2-10 〗)。在企业管理器

Page 22: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

中查看数据库的表对象,观察该语句执行结果。( 9 )用界面方式或命令方式(以下同)创建学籍管理数据库 xjgl 。数据库初始大小为 10MB ,最大为150MB ,数据库自动增长,增长方式是按 10% 比例增长,日志文件初始为

Page 23: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1BM ,最大为 5MB ,按 1MB 增长,其余参数自定。数据库中所包含的表如下:学生表:学号,姓名,性别,专业,学分。课程表:课程号,课程名,开课学期,学时,学分。

Page 24: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

10.将 xjgl 数据库的增长方式改为5MB 。11.将 xjgl 数据库中学生表的“学分”列改为“总学分”列。12.在 xjgl 数据库的学生表中增加“出生年月”列。

Page 25: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

14.3 实验三 管理数据表中的数据1、实验目的与要求( 1 )掌握在企业管理器中对数据表进行插入、修改和删除的编辑操作。( 2 )掌握用 T-SQL 语句管理表数据的方法。

Page 26: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 3 )了解数据更新时保持数据完整性的意义。( 4 )为后续实验准备表数据(如traffic 数据库中驾驶员表 jsy 、车辆表 cl 、行车表 xc 及车单表 cd

等表的数据)。

Page 27: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )在企业管理器中向表 jsy 中添加数据行。 1 )启动企业管理器,层层展开树状结构,选择“数据库 / traffic/ 表”对象,在右边窗口中选择表jsy ,单击鼠标右键,在快捷菜单

Page 28: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

中选择“返回所有行”。 2 )在打开的表数据窗口输入每行数据(可参照附录)。注意当jsy 表的驾照号列设置为主键,该列的值不能有重复。 3 )关闭表数据窗口。( 2 )在企业管理器中更新表 jsy中

Page 29: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

的数据。1 )按上步的 1 )方法打开 js

y表数据窗口,可直接修改任意行和列的数据。

2 )单击需删除行右边的行指示器,该行反显,再按 Delete 键,可删除该行。或在该行的行指示器

Page 30: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

上单击鼠标右键,在快捷菜单中选择“删除”。3 )单击菜单栏右边“关闭”图标,关闭表窗口。4 )再次打开 jsy 表数据窗口,浏览数据行,观察更新操作的结果。( 3 )用 T-SQL 语句编辑表中数

Page 31: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

据。每次运行 T-SQL 语句后,可打开表数据窗口,观察更新操作的结果。 1 )在分析查询器的查询窗口输入以下 T-SQL 语句,在表 jsy 中插入记录。

INSERT   INTO   jsy

Page 32: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

VALUES(‘0011103’,’王文’ ,’汽车指挥’ , ’1983-12-03’, ’北京’ ,02001,30,’ 是’ ,NULL)

2 )在分析查询器的查询窗口输入以下 T-SQL 语句,修改记录的字段。

UPDATE jsy

Page 33: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

SET 所学专业=“汽车运用” WHERE=“汽车指挥”

GO 3 )在分析查询器的查询窗口输入正确的 T-SQL 语句,删除表 jsy中某些行。

DELETE   FROM   jsy

Page 34: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

  WHERE 所学专业=“汽车运用”

GOGO

(4)用界面方式或命令方式完成以下操作。 1 )将 jsy 表中积分在 20 以下的人员删除。

Page 35: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2 )将 jsy 表中备注为空的记录删除。 3 )将 jsy 表中所有记录的积分均加 2 分。 4 )添加 traffic 数据库中其余各表的数据(可参照附录)。

Page 36: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

  注意不要轻易使用TRUNCATE   TABLE 命令,以防将来用到这些数据时需重新输入。当对表设置了主键,添加、修改或更新表数据时必须保持数据完整性。

Page 37: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求( 1 )掌握 SELECT 语句基本子句的使用方法。( 2 )掌握设置列的输出格式及控制行数的方法。( 3 )掌握比较运算、匹配运算和

14.4 实验四 数据库简单查询

Page 38: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

限止范围的行筛选方法。( 4 )掌握输出数据排序的方法。( 5 )掌握对多表进行自然连接、内连接、外连接及左外连接、右外连接的方法。( 6 )掌握分组统计 GROUP   BY子句的简单用法。

Page 39: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )基本查询操作1 )在分析查询器的查询窗口输入如下 T-SQL 语句,查询 cl 表中所有的车辆类别名称,消除重复行。

   SELECT DISTINCT 类别 AS “ 现有类别”

Page 40: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

FROM cl2 )在分析查询器的查询窗口输入如下 T-SQL 语句,查询 jsy 表中积分在 25 和 30之间的驾驶员的驾照号、姓名和积分。

SELECT  驾照号 , 姓名 ,积分FROM   jsy

Page 41: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

WHERE  积分 !<25 AND积分 !>303) 在分析查询器的查询窗口输入如下 T-SQL 语句,查询驾照号以 002 开头且姓高的驾驶员的情况。SELECT  驾照号 , 姓名 ,积分

FROM   jsy

Page 42: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

WHERE 驾照号 LIKE ‘002% ’ AND 姓名 LIKE ‘高%’( 2 )多表连接查询操作1)在分析查询器的查询窗口输入如下 T-SQL 语句,查询每次出车的日期、目的地和行程情况。

Page 43: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

SELECT xc.*,cd.*FROM xc,cd

WHERE xc. 出车单号 =cd. 出车单号2) 在分析查询器的查询窗口输入如下 T-SQL 语句,查询 2003年 2月 15 日前车辆的出行情况,包括车牌

Page 44: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

号、日期、目的地和驾驶员姓名。  SELECT xc.车牌号 , cd. 日期 , cd. 目的地 , jsy. 姓名

FROM xc, cd, jsy WHERE cd. 日期 <‘2003-

2-15’AND cd. 出车单号 =xc. 出车单号

Page 45: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

AND xc. 主驾 =jsy. 驾照号3 )在分析查询器的查询窗口输入如下 T-SQL 语句,查询每个出车的驾驶员的姓名和出车情况。   SELECT jsy. 姓名 , 车牌号 ,出车单号   FROM jsy INNER JOIN xc

Page 46: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

ON jsy. 驾照号 =xc. 驾照号 4 )在分析查询器的查询窗口输入如下 T-SQL 语句,查询所有汽车指挥专业驾驶员情况及他们的出车单号,若未出车,也要包括其基本情况。   SELECT jsy.*, 出车单号

Page 47: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

FROM jsy LEFT OUTE JOIN xc ON jsy. 驾照号 =xc. 主驾  WHERE 所学专业 =’汽车指挥’( 3 )分类汇总操作 1 )在分析查询器的查询窗口输入如下 T-SQL 语句,查询车辆表cl 中各类别的车有多少辆。

Page 48: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   SELECT 类别 , COUNT(*) AS ‘ 数量’

FROM clGROUP BY 类别

2 )在分析查询器的查询窗口输入如下 T-SQL 语句,查询所有驾驶员的驾照号、姓名和出车次数。

Page 49: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   SELECT xc. 主驾 ,jsy. 姓名 ,COUNT(*)FROM xc,jsyWHERE xc. 主驾 =jsy. 驾照号GROUP BY xc. 主驾 ,jsy. 姓名3) 在分析查询器的查询窗口输入如下 T-SQL 语句,对于天津籍驾驶

Page 50: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

员按所学专业统计平均积分,查询平均积分在 25 分以上的所学专业和其平均积分。

SELECT 所学专业 , ‘平均积分’ =AVG(积分 )

FROM jsyWHERE 籍贯 =’天津’

Page 51: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   GROUP BY  所学专业

HAVING AVG(积分 )>25( 4 )自行完成以下操作。

1 )查询曾单人驾车的驾驶员的姓名。 2 )查询所有车辆的累计里程,并按降序排列。

Page 52: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

3 )按所学专业和是否见习分组统计驾驶员人数。 4 )查询 2003年 2月 15 日-2003年 4月 15 日之间出车驾驶员姓名。

  5 )查询所有汽车指挥专业驾驶员情况及他们的出车单号,若未出车,也要包括其基本情况。

Page 53: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求( 1 )加深理解在 SELECT 语句中,用 WHERE子句筛选行的条件表达式应用。( 2 )掌握通过 IN 、 EXSITS关键字和比较运算符进行子查询,实现

14.5实验五 数据库高级查询

Page 54: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

多表复杂查询的方法。( 3 )掌握使用 GROUP By子句中WITH{CUBE | ROLLUP} 选项进行复杂统计汇总的方法。( 4 )掌握 HAVING子句的用法。( 5 )掌握 COMPUTE BY子句的用法。

Page 55: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )用 IN关键字查询  在分析查询器的查询窗口输入如下 T-SQL 语句,查询指派“AX1320”车的所有调度员的姓名、职务和电话。

SELECT 姓名 , 职务 , 电话

Page 56: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   FROM ddyWHERE 调度号 I

N (SELECT DISTINCT调度号

FROM xcWHERE 车牌号 =‘AX132

0’)( 2 )用 EXISTS关键字查询 在分析查询器的查询窗口输入

Page 57: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

如下 T-SQL 语句,查询出车单号为“ 7013” 的所有主驾的姓名、籍贯和积分。SELECT 姓名 , 籍贯 , 积分

FROM jsyWHERE EXISTS

    (SELECT 主驾

Page 58: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

FROM xcWHERE 主驾 =jsy. 驾照号

AND 出车单号 =’7013’)( 3 )用比较运算符查询在分析查询器的查询窗口输入如下 T-SQL 语句,查询积分不低于王明、高兵、刘可的所有驾驶员

Page 59: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

驾照号和姓名。SELECT 驾照号 , 姓名FROM jsy

WHERE 积分 > ALL(    SELECT 积分

FROM jsyWHERE 姓名 IN (‘王明’ ,

‘高

Page 60: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

兵’ ,‘ 刘可’ )( 4 )分组统计选取   在分析查询器的查询窗口输入如下 T-SQL 语句,统计天津籍驾驶员各专业的平均积分,查询平均积分在 25 分以上的专业和其平均积分。

Page 61: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

SELECT 所学专业 , ‘平均积分’ =AVG(积分 )

FROM jsyWHERE 籍贯 =‘天

津’GROUP BY  所学专

业HAVING AVG(积分 )>

25( 5 )浏览统计数据

Page 62: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

  在分析查询器的查询窗口输入如下 T-SQL 语句,统计天津籍和北京籍驾驶员的平均积分。SELECT  籍贯,积分

FROM jsyWHERE 籍贯 IN (‘天津’ ,‘北京’ )

ORDER BY 籍贯

Page 63: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

COMPUTE AVG(积分 ) BY 籍贯  在上面 SQL 语句的最后一行取消“ BY 籍贯”选项,再运行,观察统计结果有何不同。( 6 )自行完成以下操作。 1 )查询由孙平调度的所有出车驾驶员的姓名。

Page 64: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2 )查询积分不高于刘可和张平的所有驾驶员的姓名、驾照号和积分。 3 )查询有两次以上出车经验的驾驶员的姓名。

Page 65: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求1 )掌握视图的建立、修改和删除操作。2 )掌握使用视图查询基本表数据。3 )掌握可更新视图的定义和使用方法。

14.6实验六 视图的使用

Page 66: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 ).在企业管理器中创建、修改和删除视图的操作

1) 打开企业管理器,层层展开树状结构,在“数据库 / traffic/ 视图”对象上单击鼠标上右键,在快捷菜单上选择“新建视图…”,出

Page 67: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

现新建视图窗口。可以 SQL子窗口中输入创建视图的 SQL 语句,或在关系图窗口添加表,在网格窗口选择列,单击工具栏中“运行”图标。详细步骤参见 4.3.2 节。   2 )在企业管理器中左边窗口中选择“数据库 / traffic/ 视图”对

Page 68: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

象,在右边窗口中新创建的视图上单击标上右键,在快捷菜单上选择“ 返回所有行”,可以浏览和修改视图数据。   3 )在企业管理器左边窗口选定“视图”对象,在右边窗口中需修改的视图上单击标上右键,在快捷

Page 69: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

菜单上选择“设计视图”,出现设计视图窗口,可重新设计视图结构。   4 )在企业管理器左边窗口选定“视图”对象,在右边窗口中需删除的视图上单击标上右键,在弹出的快捷菜单上选择“删除”,即可删除视图。

Page 70: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 2 )用 T-SQL 语句建立视图的操作

1) 在分析查询器的查询窗口输入正确的 T-SQL 语句,创建“汽车指挥”专业驾驶员的基本情况视图jsy_01v (参照〖例 4-58 〗)。

2) 在分析查询器的查询窗口

Page 71: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

输入正确的 T-SQL 语句,创建出车驾驶员的出车基本情况视图jsy_xcv (参照〖例 4-57 〗)。( 3 )在视图中查询  1)在分析查询器的查询窗口输入正确的 T-SQL 语句,浏览视图jsy_01v 。

Page 72: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   2) 在分析查询器的查询窗口输入如下 T-SQL 语句,在视图jsy_xcv 中查询车牌号以 AX 开头的驾驶员姓名。

SELECT 姓名 , 车牌号FROM jsy_xcv

WHERE  车牌号 LIKE ‘AX%’

Page 73: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 4 )分组统计选取  在分析查询器的查询窗口输入如下 T-SQL 语句,统计天津籍驾驶员各专业的平均积分,查询平均积分在 25 分以上的专业和其平均积分。

SELECT 所学专业 , ‘平均积

Page 74: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

分’ =AVG(积分 )FROM jsyWHERE 籍贯 =‘天津’GROUP BY  所学专业HAVING AVG(积分 )>2

5( 5 )自行完成以下操作。   1 )删除 jsy_01v视图中驾照

Page 75: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

号为’ 002013’ 的驾驶员记录。   2 )创建名为 view001 小轿车的出车视图,包括车牌号、日期、目的地、实际行程及主驾。   3) 在视图 view001 查询AX1320车的出车记录。   4) 删除视图 jsy_01v 和view001视图。

Page 76: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求1 )掌握用户自定义数据类型的建立和使用方法。2 )掌握字符函数、时间日期函数、聚合函数和判定函数等系统常用函数的使用。

14.7实验七 T-SQL编程

Page 77: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

3 )掌握用户自定义函数的创建和调用方法。4) 掌握各种流程控制语句的使用。

Page 78: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )使用系统函数辅助查询

1 )在分析查询器的查询窗口输入以下语句,并执行。

SELECT POWER (2,8), POWER(2, 16), POWER(2, 10), POWER(2,20)

Page 79: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   2 )在分析查询器的查询窗口输入以下语句,用随机函数产生三个随机数,并分别四舍五入输出 4位、 5位、 6位小数。

DECLARE @number smallint

SET @number=1

Page 80: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

WHILE @number<=3 BEGIN

SELECT ROUND(RAND(@number),@number+3)

SET @number=@number+1

Page 81: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

ENDGO

   3 )在分析查询器的查询窗口输入以下语句,查询调度员的职务。

SELECT LEFT( 姓名, 1 )+       LEFT (职务,3 )

Page 82: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

FROM ddy4 )在分析查询器的查询窗口

输入以下语句,查询驾驶员年龄。SELECT 姓名 , DATEDIFF(year, 出生年月 ,GETDATE()) AS ‘年龄’

FROM jsyWHERE 驾照号 =’002011’

Page 83: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 2 )自定义数据类型的创建和使用  定义一个新的数据类型jsy_id ,该类型名为 jsy_id ,为字符型 char(6) ,非空属性。  可以用企业管理器界面方式和SQL 语句的命令方式建立该数据类

Page 84: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

型,操作步骤如下:   1 )用界面方式建立数据类型jsy_id 。在企业管理器中选择数据库对象“ traffic” 下的“用户自定义数据类型”对象,单击鼠标右键,在快捷菜单上选择“新建用户自定义数据类型”,如图 14-3 。

Page 85: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用
Page 86: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   2 )在打开的用户定义数据类型属性对话框中输入新数据类型名,选择数据类型为 char ,长度为 6 ,勾选允许空选项,单击“确定”按钮,如图 14-4 。

Page 87: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用
Page 88: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   3 )在企业管理器右边窗口出现用户定义数据类型 jsy_id 对象。如图 14-5 。在其上单击鼠标右键,在快捷菜单中选择“删除”。

Page 89: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用
Page 90: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   4 )用命令方式建立数据类型jsy_id 。打开分析查询器,在查询窗口输入下面语句并执行:

USE   trafficEXEC sp_addtype

‘jsy_id’, ‘char(6)’, ‘not null’GO

执行结果如图 14-6 。

Page 91: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用
Page 92: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   5) 在查询窗口输入以下语句新建表 jsy_1 ,其中驾照号列使用数据类型 jsy_id 。

CREATE   TABLE   jsy_1  ( 驾照号  jsy_id,  姓名   char(8) NOT NULL,  地址   char(20) )

  GO如图 14-7 ,此时表 jsy_1 为空表。

Page 93: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用
Page 94: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 3 )自定义函数的创建和使用1 )在分析查询器的查询窗口

中输入正确的 T-SQL 语句并执行,定义一个函数 average() ,用于计算指定专业的平均积分(参照〖例6-1 〗)。

2 )在对象浏览器窗口中,展

Page 95: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

开 traffic 数据库下的“函数”对象,可见到 average()函数对象。   3 )在分析查询器的查询窗口中输入下面语句,通过调用average()函数查询‘汽车管理’专业的平均积分,并根据平均积分大小,修改表 jsy 中的积分列。

Page 96: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

USE traffic declare @num int

SELECT @num=dbo.average (‘汽车管理’ )

If @num>25update jsyset 积分=积分 +

2

Page 97: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

where 所学专业=‘汽车管理’

else if @num<20

update jsyset 积分=积分 -2

where 所学专业=‘汽车管理’GO

SELECT * FROM jsy

Page 98: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

GO观察执行结果。   4) 在分析查询器的查询窗口中输入正确的 T-SQL 语句并执行,定义一个表值函数 havejsy() ,用于返回指定籍贯的所有驾驶员的姓名和驾照号(参照〖例 6-2 〗)。

5 )在分析查询器的查询窗口

Page 99: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

中输入下面语句,通过调用havejsy() 查询来自天津的所有驾驶员的驾照号、姓名。SELECT *FROM dbo.havejsy(‘天津’ )观察执行结果。( 4 )自行完成以下操作。1 )查询驾驶员年龄。

Page 100: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2 )查询所有车辆的前两位字符和启用年代中的年份数字。3 )定义一个函数,返回任意指定的字符串的字符个数。4 )自定义一个表型函数,它输入变量为姓名的第 1个的汉字,其返回值为该姓所有驾驶员的姓名和驾照号。

Page 101: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

14.8实验八 约束与索引的使用1、实验目的与要求1 )掌握数据完整性概念。2 )掌握缺省、规则、默认值的建立和使用方法。3 )掌握各种约束的建立和使用方法。4 )掌握创建索引的方法。

Page 102: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )使用缺省对象   1 )在查询分析器的查询窗口输入 T-SQL 语句,创建缺省对象,默认字符型数据“天津”。

CREATE DEFAULT def_come

Page 103: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

AS “天津”   2 )将其绑定到籍贯列,使籍贯列的取值默认为“天津”。EXEC SP_BINDEFAULT ‘def_come’, ‘jsy. 籍贯’   3 )用企业管理器打开 jsy 表,输入一行数据,观察籍贯列的默认

Page 104: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

值情况。( 2 )使用规则对象   1 )在查询分析器的查询窗口输入 T-SQL 语句,创建规则对象,规定取值可为“小轿车”、“小客车”和“大客车”。CREATE RULE rul_lb

Page 105: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

AS @lb IN (‘ 小轿车’ , ‘ 小客车’ , ‘ 大客车’ )  2)绑定到车辆表的类别列,使类别的取值只能为其中之一。

EXEC SP_BINDRULE ‘rul_lb’ , ‘cl. 类别’   3 )用企业管理器打开 cl 表,

Page 106: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

输入一行数据,检查类别列规则的效果。( 3 )创建主键约束   1 )在查询分析器的查询窗口输入 T-SQL 语句,修改 jsy 表,增加驾照号的主键约束。ALTER TABLE jsy

Page 107: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

ADD CONSTRAINT pkey_jsyPRIMARY KEY CLUSTERED ( 驾照号 )   2 )打开 jsy 表,输入一行数据,检查驾照号列的主键约束情况。( 4 ) 创建外键约束

Page 108: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   1 )在查询分析器的查询窗口输入 T-SQL 语句,创建表xc_temp ,并建立复合主键约束。CREATE TABLE xc_temp( 驾照号 char(6) NOT NULL,车牌号 char(8) NOT NULL,调度号 char(4) NULL,

Page 109: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

行程 smallint NULL, CONSTRAINT pkey_ xc_temp PRIMARY KEY ( 驾照号 , 车牌号 ) )

GO   2 )修改表 xc_temp ,增加外键约束。

Page 110: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

ALTER TABLE xc_temp     ADD CONSTRAINT fkey_ xc_temp1 FOREIGN   KEY (车牌号 )REFERENCES cl (车牌号 ) ON UPDATE CASCADE

Page 111: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

GO   3 )用企业管理器打开xc_temp 表,输入一行数据,观察车牌号列的外键约束情况。( 5 ) 使用 CHECK约束   1 )在查询分析器的查询窗口输入 T-SQL 语句,修改表 jsy ,增

Page 112: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

加 CHECK约束 ck_birth ,使出生年月列的取值在系统当前日期之前。

ALTER TABLE jsy_temp5

ADD CONSTRAINT ck_telh CHECK 出生年月

Page 113: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

<=CURRENT_TIMESTAMP )GO   2 )用企业管理器打开 jsy 表,输入一行数据,观察出生年月列的约束情况。   3) 在查询分析器的查询窗口输入 T-SQL 语句,禁用 ck_birth约

Page 114: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

束。ALTER TABLE xc_temp NOCHECK CONSTRAINT ck_birth   4) 用企业管理器打开 jsy 表,输入一行数据,观察出生年月列的约束情况。

Page 115: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   5) 在查询分析器查询窗口输入 T-SQL 语句,删除 ck_birth约。ALTER TABLE jsy DROP CONSTRAINT ck_birth( 6 )在企业管理器中完成以下操作1 )创建规则对象,规定取值可以为“汽车指挥”、“汽车管理”或

Page 116: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   “汽车维修”。并绑定到所学专业列,使所学专业列的取值只能为其中之一。   2 )驾驶员表的驾照号列设定非空并有主键约束。   3 )为 jsy 表驾照号列创建索引。   4 )为 cl 表车牌号列创建唯一聚

Page 117: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

集索引。   5 )打开表 cl ,对驾照号和车牌号列值做修改,如果输入了重复的键,系统将取消该重复键的修改或插入操作。   6 )删除上面建立的规则、约束和索引。

Page 118: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求1 )掌握存储过程的类型和作用。2 )掌握存储过程的创建与调用方法。3 )掌握触发器的类别和作用。4 )掌握触发器的创建与调用方法。

14.9实验九 存储过程和触发器的使用

Page 119: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )存储过程的使用

   1) 在查询分析器的查询窗口输入正确的 T-SQL 语句,建立一个存储过程 xclist1 ,该存储过程返回所有驾驶员的驾照号、姓名和各次出车行程(参照【例 9-1】)。

Page 120: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

   2 )在查询分析器的查询窗口输入下面语句调用存储过程xclist1 ,查询 traffic 数据库中驾驶员的驾照号、姓名和各次出车行程。

EXECUTE xclist1   3 )在查询分析器的查询窗口

Page 121: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

输入下面语句删除存储过程 xclist1存储过程。

USE trafficDROP PROCEDURE xclist1GO

( 2 )在企业管理器中通过界面方式完成上面步骤。参见 9.1 节。

Page 122: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 3 )触发器的使用   1 )在查询分析器的查询窗口输入正确的 T-SQL 语句,在 jsy 表中创建一触发器 jsy_updtri ,若对驾照号和姓名列修改则给出提示信息,并取消操作。(参照【例 9-14】)。

Page 123: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2 )在企业管理器中打开表jsy ,修改姓名和驾照号列的数据,观察执行结果。   3 )在查询分析器的查询窗口输入下面语句,删除 jsy 表上定义的 jsy_updtri触发器。

USE traffic

Page 124: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

DROP TRIGGER jsy_updtriGO

( 4 )在企业管理器中通过界面方式完成上面步骤。参见 9.2 节。( 5 )自行完成以下操作。 1 )建立一存储过程,查询指定

Page 125: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2 )在企业管理器中打开表驾照号的驾驶员的姓名和积分。 3 )对 xc 表创建一触发器,如插入记录的驾照号不是 jsy 表的驾照号列的取值,或车牌号不是 cl 表中的车牌号,则消该记录的插入操作。

Page 126: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求1 )掌握游标的概念和游标类型。2 )掌握游标的声明、打开、关闭和删除的方法。3 )掌握通过游标读取数据和修改数据的方法。

14.10实验十 游标的使用

Page 127: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )在查询分析器的查询窗口输入下面语句,声明一键集驱动游标,选取“汽车指挥”专业的驾驶员的驾照号、姓名和积分,可对积分进行修改。DECLARE jsy_cur CURSOR

Page 128: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

KEYSETFORSELECT 驾照号 , 姓名 , 积分

FROM jsy( 2 )在查询分析器的查询窗口输入下面语句,打开游标,测试游标内数据行数。

Page 129: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

OPEN jsy_curSELECT ‘游标内数据行数’=@@CURSOR_ROWS( 3 )在查询分析器的查询窗口输入下面语句,提取游标内数据。FETCH NEXT FROM jsy_cur( 4 )在查询分析器的查询窗口输入

Page 130: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

下面语句,提取游标内数据,并测试系统状态。FETCH LAST FROM jsy_curSELECT ‘FETCH 执行状态’=@@FETCH_STATUS( 5 )修改游标数据。1 )在查询分析器的查询窗口输入下

Page 131: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

面语句,定义可修改游标 DECLARE up_jsy_cur CUR

SOR LOCAL SCROLL

SCROLL_LOCKSFORSELECT 驾照号 , 姓名 , 积分

Page 132: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

FROM jsyFOR UPDATE OF 积分

OPEN up_jsy_cur2) 在查询分析器的查询窗口输入下面语句,打开游标,修改游标内数据。FETCH LAST FROM up_jsy_cur

Page 133: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

UPDATE jsy SET 积分 =21WHERE CURRENT

OF up_jsy_cur3 )用 SELECT 语句查询修改后的数据。

SELECT   * FROM jsy( 6 )在查询分析器的查询窗口输入

Page 134: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

下面语句,关闭上一步创建的游标。CLOSE up_jsy_cur

( 7 )在查询分析器的查询窗口输入下面语句,删除游标。DEALLOCATE jsy_cur

Page 135: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求1 )掌握管理 SQL   Server登录帐号的方法。2 )掌握设置用户可访问的和不可访问的数据库的方法。3 )掌握管理角色和角色成员的方。4 )掌握设置用户权限的方法。

14.11 实验十一 安全认证与访问权限

Page 136: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )创建 Windows2000登录账号。1 ) Windows2000桌面,开始、程序、管理工具、计算机管理,打开计算机管理窗口,在本地用户和组下创建一用户账号 qtest 。

Page 137: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2 )在查询分析器的查询窗口输入下面语句,建立该用户的信任连接。

EXEC sp_grantlogin ‘DXY\qtest’3 )打开企业管理器,选择服务器、安全性、登录对象,可浏览所有登录账号。

Page 138: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 2 )建立 SQL Server认证的登录账号1 )在查询分析器的查询窗口输入下面语句,建登录账号为‘ dong’ ,密码为‘ qqq’ ,指定默认数据库为‘ traffic’ 。EXECsp_addlogin ‘dong’, ‘qqq’,

Page 139: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

‘traffic’2 )在企业管理器中,选择服务器、安全性、登录对象,可浏览所有登录帐号。( 3 )显示登录者信息  在查询分析器的查询窗口输入下面语句,则列出目前数据库的所

Page 140: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

有登录者的信息。EXEC sp_helplogins

( 4 )添加固定服务器角色成员  在查询分析器的查询窗口输入下面语句,将 DXY\qtest 添加到sysadmin固定服务器角色中。

EXEC

Page 141: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

sp_dropsrvrolemember ‘DXY\qtest’, ‘sysadmin’( 5 )创建自定义角色。1 )在查询分析器的查询窗口输入下面语句,在当前数据库中创建名为role1 的新角色。USE traffic

Page 142: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

EXEC   sp_addrole ‘role1’2 )在查询分析器的查询窗口输入下面语句,添加用户 dong 为角色 role1的成员。EXEC sp_addrolemember ‘dong’, ‘role1’3 ) 在查询分析器的查询窗口输入下

Page 143: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

面语句,给 role1角色授予建数据表的权限。    GRANT GREATE TABLE TO role1

GO4 )在企业管理器中,选择 traffic 数据库民、角色,在右边窗口选择

Page 144: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

role1角色,单击鼠标右键,在快捷菜单中选择“属性”,可查看 role1角色的成员和权限。( 6 )拒绝用户编辑表数据  在查询分析器的查询窗口输入下面语句,不允许 qtest 用户对 jsy表进行编辑修改的操作。

Page 145: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

DENY INSERT,UPDATE,DELETE ON jsy TO   qtest

GO( 7 )授予查询权限  在查询分析器的查询窗口输入下面语句,给 public角色授予查询

Page 146: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

jsy 表的权限。 GRANT SELECT ON jsy TO

public

GO

( 8 )在企业管理器界面中进行上面各步骤。

Page 147: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

1、实验目的与要求1 )掌握数据库备份的方法。2 )掌握数据库还原的方法。3 )掌握数据表导入和导出的方法。

14.12 实验十二 数据库备份

Page 148: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

2、实 验 内 容( 1 )在 Windows 下创建数据库备份的目的文件夹 D:\backup 。( 2 )在查询分析器的查询窗口输入正确的 T-SQL 语句,创建 traffic 数据库的备份 trabackup ,备份到D:\backup 中,文件名为

Page 149: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

trabackup 。( 3 )在查询分析器的查询窗口输入正确的 T-SQL 语句,创建 traffic 数据库的事务日志文件的备份,备份到D:\backup 中,文件名为trabackup_log 。( 4 )用资源管理器查看备份文件目

Page 150: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

录。( 5 )用命令方式或界面方式删除traffic 数据库中 jsy 表。( 6 )在查询分析器的查询窗口输入下面语句,从 trabackup 中还原traffic 数据库。 RESTORE DATABASE traffic

Page 151: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

TO disk=’D:\backup\trabackup’ WITH NORECOVERY RESTORE LOG traffic TO disk=’D:\backup\trabackup_log’ WITH NORECOVERY

Page 152: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 7 )用企业管理器查看 traffic 数据库中的 jsy 表。( 8 )用企业管理器进行以上各步骤。( 9 )在查询分析器窗口输入正确的T-SQL 下面命令,创建数据库tra_temp 。

Page 153: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

( 10 )将 traffic 数据库的所有表和视图导出至数据库 tra_temp 中(参见12.3.1 节)。( 11 )将 traffic 数据库中 jsy 表中所有天津籍驾驶员的驾照号、姓名、出生年月和积分列导出至 tra_temp数据库中的新表 tjjsy 中。注意以下

Page 154: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

要点:1 )在选择目的对话框中选择tra_temp 数据库。2 )在指定表复制或查询对话框中,选取“用一条查询指定要传输的数据”。3 )在键入 SQL 语句对话框中,输入

Page 155: 14.1 SQL Server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据 14.4 数据库一般查询 14.5  数据库复杂查询 14.6 视图的使用

以下语句:SELECT  驾照号,姓名,

出生年月,积分FROM   jsyWHERE 籍贯 =‘天

津’4 )在选择源表和视图对话框中,目的表名改为 tjjsy 。