14.1 sql server 2000 的安装与配置 14.2 创建数据库和表 14.3 管理数据表中的数据...

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

Upload: kareem-carter

Post on 15-Mar-2016

204 views

Category:

Documents


11 download

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

TRANSCRIPT

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 。