数据库实务实验报告 酒店前台管理系统_第1页
数据库实务实验报告 酒店前台管理系统_第2页
数据库实务实验报告 酒店前台管理系统_第3页
数据库实务实验报告 酒店前台管理系统_第4页
数据库实务实验报告 酒店前台管理系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 数据库管理实务数据库管理实务 实验报告实验报告 课程号 B0900980 实验项目 数据库设计 创建 管理 数据库操作实验项目 数据库设计 创建 管理 数据库操作 学 号 姓 名 马冰洁 同组人学号 姓名 实验 地点 工程学院机房 文波 指导 教师 肖慎勇时间 2012 年 6 月 成绩 教师签字 评语 要求 按时完成实验 实验内容和过程记录完整 回答问题完整 正确 实验报告的撰写认真 格式符合要求 肖慎勇 一 实验目的 1 理解并掌握数据库设计的概念 方法和步骤 2 初步应用数据库设计方法 了解需求分析的内容 3 重点运用 ER 模型进行概念设计 然后将 ER 模型转换为关系模型 4 深入理解 SQL Server 2005 数据库的存储结构 5 深入理解 SQL Server 2005 的数据类型 表对象设计与定义 6 掌握 SQL Server 2005Management studio 的应用 运用交互方式和命令方 式建立数据库和表 7 认识和掌握 Transact SQL 的数据库操作 8 深入理解视图意义 掌握 SQL Server 中创建 管理与应用视图的方法 9 深入理解数据库安全的概念 10 深入理解 SQL Server 2005 的安全体系框架 11 掌握登录与服务器角色的概念 操作与应用 掌握数据库用户 固定角色 自定义角色 架构的概念 操作与应用 掌握数据库权限的概念 操作与应用 12 理解事务的概念 13 深入理解并掌握服务器编程的意义及方法 14 能够编写各种自定义函数和存储过程 15 理解触发器 并能够编写 应用触发器 二 实验设备 环境 及要求 PC Windows XP SQL SERVER 2005 三 实验内容及要求 实验项目 各小组自选的项目 精品文档 2欢迎下载 通过调查 收集信息 分析 写出分析与设计报告 1 简要的系统需求分析 包括业务分析 功能需求分析 信息需求分析 试分析该系统的基本业务 计算机信息系统需要完成的基本功能 信息系统需 要处理的信息 2 概念设计 设计系统的概念模型 采用 ER 模型 3 逻辑设计 将 ER 模型为关系模型 指出每个关系的主键 外键和必要的约束 4 写出数据库的物理设计 包括存储组织结构 表的结构设计等 5 T SQL 命令方式创建数据库的操作 利用 SQL 命令创建数据库文件 表 索引 联系和主键 外键等约束 实验报告应写出实验的过程 包括必要的截图 6 利用 T SQL 命令增加 删除 修改数据 7 利用 T SQL 命令进行数据的检索和统计 根据自己设计的数据库和输入的数据 写出至少 10 个查询要求及对应的 SQL 查询命令 应该包含如下功能 投影和选择 多表连接 分组统计与 HAVING 子查询 查询结果保存 8 利用 SQL 命令创建视图对象 根据开发的系统的需要 至少设计三个视图 基于单表的 包含多表连接的 包含统计运算的 利用 SQL 对视图进行查询 9 对视图进行插入 删除 修改数据操作 体会视图与表的异同 10 编写自定义函数 1 编写一个自定义函数 将一个字符串作为自变量 返回颠倒顺序的字符 串 写出源代码 2 编写一个自定义函数 能够实现参数化查询的功能 自己设定函数的具体要求 然后编写出来 11 编写利用游标进行数据处理的存储过程 并在存储过程中应用事务的概念 自己确定过程的具体要求 然后编写出来 12 编写一个实现修改表的触发器 实现完整性控制 13 设置服务器身份验证模式 用命令创建若干不同验证模式的登录账户 14 将部分登录赋予服务器角色 然后撤消 15 将部分登录映射到你的数据库中成为用户 16 创建自定义角色 架构 17 通过角色给用户授权 18 直接给用户授权 验证其获得权限前后的操作差别 19 删除用户和自定义的角色 精品文档 3欢迎下载 四 回答问题 1 你如何认识需求分析在系统开发中的地位和重要性 需求分析就是根据用户或者客户的需要来设计数据库 只有根据需求设计出的 数据库才是有用的 否则整个设计过程都是在做无用功 并且在需求设计这个过程 中根据具体需要设计出模型 后面的具体实现过程遵照前面设计的模型来完成 使 得后面的工作能够更加具有效率 在需求分析中要严格遵守客户的需求 并且要根 据需求找出最合适的方案 为后面的具体实现打下基础 需求分析是整个开发过程 的第一个阶段 也是最重要的一步 2 设计 ER 图 关系模型分别属于数据库设计的哪一阶段 设计 ER 图属于概念设计阶段 关系模型属于逻辑设计阶段 3 主键 外键对于关系数据库的意义何在 主键是关系中能唯一区分 确定不同元组的单个属性或者属性组合 外键能够保证数据库的数据的完整性和一致性 通过外键 能够将相互关联的 表联系起来 4 在数据库存储结构设计时要考虑哪些因素 需要综合考虑存取时间 存储空间利用率和维护代价三方面的因素 5 在表设计时对于数据类型的选择和使用如何考虑 数据类型的选择首先要根据该属性的性质进行选择 如数值型 日期型等等 在确定基本类型之后 要考虑数据存取时间 取值范围 处理效率多方面的因素 选取合适的数据类型 这主要是在数值类型上的选择 6 交互式如何实现表之间的联系 SQL 命令如何实现表之间的联系 交互式 单击工具栏上的 关系 按钮 打开 外键关系 对话框 在其中设 置各表间关系 SQL 命令 利用 FOREIGN KEY REFERENCES referenced table name referenced column ON DELETE NO ACTION CASCADE SET NULL SET DEFAULT ON UPDATE NO ACTION CASCADE SET NULL SET DEFAULT 7 如果在定义表时进行了主键 外键以及约束等完整性设置 对于数据的输 入有何影响 试举例说明 主键和外键一般不允许为空 如果没有输入值的话会报错 再比如 性别 这一字段如果开发人员已经约束了其值只能为 男 或者 女 当使用者输入除 以上两个值之外的任何值都会报错 8 用 INSERT INTO 命令输入 如果数据与字段数量和要求不一致有什么问题 当表定义中有默认值的时候 插入记录是否可以省略该字段的数据 如果数据与字段数量和要求不一致 只有在少于并且没有写出的那个已定义了 默认值或者可为空的情况下才为正确 其他情况均是错误的 当表定义中有默认值的时候 插入记录可以省略该字段的数据 精品文档 4欢迎下载 9 HAVING 子句有什么作用 HAVING 子句和 WHERE 语句一样都是实现查询功能中条件的控制和数据的选择 WHERE 子句不能包含聚集函数 而 HAVING 子句一般包含聚集函数 HAVING 子句 还可以用来对分组结果进行筛选 10 当通配字符作为普通字符参与匹配查询时 如何解决这样的问题 通过在 ESCAPE 子句中指定转义符 在查询条件下使用转义符指定某个通配 字符是正常字符 将通配符用方括号 括起来 指定一个字符 字符串或范围 要求所匹配对 象为它们中任意一个 11 可否利用视图进行数据的插入 删除 修改 对由多表连接成的视图修改数据时 不能同时影响一个以上的基表 也不能删 除视图中的数据 对视图上的某些列不能修改 这些列是 计算列 内置函数列和行集合函数 列 对具有 NOT NULL 的列进行修改时可能会出错 通过视图修改或者插入数据时 必 须保证未显示的具有 NOT NULL 属性的列有值 可以是默认值 IDENTITY 等 否 则不能像视图中插入数据行 如果某些列因为规则或者约束的限制不能接受从视图插入的数据时 则插入数 据可能会失败 12 根据自己的体会 谈谈视图在数据库体系中的作用 视图是一个虚拟表 其内容由查询定义 同真实的表一样 视图包含一系列带 有名称的列和行数据 但是 视图并不在数据库中以存储的数据值集形式存在 行 和列数据来自由定义视图的查询所引用的表 并且在引用视图时动态生成 视图中看到的就是需要的 视图不仅可以简化用户对数据的理解 也可以简化 他们的操作 那些被经常使用的查询可以被定义为视图 从而使得用户不必为以后 的操作每次指定全部的条件 视图还保证了数据的安全性 通过视图用户只能查询和修改他们所能见到的数 据 数据库中的其它数据则既看不见也取不到 数据库授权命令可以使每个用户对 数据库的检索限制到特定的数据库对象上 但不能授权到数据库特定行和特定的列 上 13 视图是如何保存的 视图中的数据是否真的存储在文件中 视图是一个虚拟表 是以脚本的形式存在于数据库中 即其中数据仍然是原来 表的数据 视图中的数据任然是表中的数据 并不真的存储在文件中 14 SQL SERVER 有几种身份验证模式 区别是什么 不同验证模式的登录账 户有何区别 SQL Server2005 提供了两种对数据库资源的访问进行身份验证的模式 Windows 身份验证和混合模式身份验证 Windows 身份验证 配置 SQL Server2005 使用 Windows 身份验证时 只有通 精品文档 5欢迎下载 过身份验证的 Windows 用户可以访问 SQL 实例 对于每个需要访问 SQL 实例的 Windows 用户 必须为其添加一个 Windows 登录 且该登录帐户必须为计算机的用 户方可以访问 SQL Server 混合模式身份验证 再混合模式身份验证下 Windows 用户和 SQL 用户都可以 访问数据库实例 需要为非 Windows 用户提供访问权限时 比如说另一个客户操作 系统的用户需要访问 SQL Server 时就使用混合模式身份验证 15 Sa 账户有何特点 Sa 账户是 SQL Server 的特殊账户 sa 账户拥有服务器和所有的数据库 即 Sa 账户拥有最高的管理权限 可以执行服务器范围内所有操作 它是以 SQL Server 身份验证的 所以必须设置一个密码 同时 sa 账户的属性不可以更改 密码可以修改 Sa 登录时无法删除的 16 共有几种服务器角色 最高权限的角色是什么 能够创建数据库的角色是 哪个 共有 8 种固定服务器角色 分别是 sysadmin serveradmin setupadmin securityadmin processadmin dbcreato r diskadmin bulkadmin 同时每一个登录用户都属于 public 服务器角色 最高权限的角色是 sysadmin 能够创建数据库的角色是 sysadmin dbcreator 17 数据库用户和登录账户有什么关系 guest 是什么用户 有何作用 这是两种不同级别的安全机制 登录账户是 SQL Server 级的安全性设置 而 数据库用户则是数据库级的安全性设置 登录账户用于登录服务器 但是当某一用 户要访问某个数据库时 除了可以成为服务器的一个登录以外 还必须成为这个数 据库的用户账户 即获得一定的授权 数据库用户账号在一般情况下是从某个登录 账户中映射过来的 Guest 是来宾用户 是用来共享文件的 任何一个登录都可以以此身份访问数 据库 Guest 自动本身只具有 public 权限 也可以由其他用户授权 18 数据库角色有哪两类 PUBLIC 角色有何特点 数据库角色分为固定的数据库角色和用户定义数据库角色 每个数据库都有一 系列固定数据库角色 虽然每个数据库中都存在名称相同的角色 但各个角色的作 用域只是在特定的数据库内 用户定义数据库角色是用户根据工作的职能定义一系 列角色 并给每个角色指派了适合这项工作的权限 从而在数据库中管理这些权限 PUBLIC 角色的特点 默认不具有任何权限 但用户可对此角色进行授权 他 不能被删除 是所有 user 自动拥有的角色 数据库中的每个用户都属于 public 数据库角色 如果想让数据库中的每个用户都能有某个特定的权限 则将该权限指 派给 public 角色 如果没有给用户专门授予对某个对象的权限 他们就使用指派 给 public 角色的权限 19 用户与架构有什么关系 系统默认架构是什么 怎样为用户指定架构 SQL Server 2000 中数据库用户和构架是隐式连在一起的 架构将用户和权限 之间建立了一个间接地方式 数据库架构是一个独立于数据库用户的非重复命名空 精品文档 6欢迎下载 间 可以将架构视为对象的容器 每个数据库用户都是与该用户同名架构的所有者 而在 SQL Server 2005 中构架和用户是不同的实体 一个对象只能属于一个架构 就像一个文件只能存放于一个文件夹中一样 与文件夹不同的是 架构是不能嵌套 的 系统默认架构是 dbo 架构 通过使用 CREATE USER 和 ALTER USER 语句 可以 分配一个默认架构 也可以通过 SSMS 在该用户的属性下面分配一个默认架构 20 什么是安全对象 怎样为数据库用户指定查询表的权限 安全对象是 SQL Server 数据库引擎授权系统控制对其进行访问的资源 安全 对象范围有服务器 端点和架构 为指定数据库用户授予 table 的权利 然后在下面的权限中选择 select 即可 授权命令 GRANT ALL PRIVILEGES permission column n n ON class securable TO principal n WITH GRANT OPTION AS principal 21 简述自定义函数 存储过程和触发器的异同 自定义函数 接受参数 执行操作并且将运算结果以值的形式返回的例程 自定义函数有且只有一个返回值 就像普通的函数一样 可以直接在表达式中嵌入 调用 存储过程 是一个可重用的代码模块 可以高效率地完成指定的操作 存 储过程可以没有返回值 也可以有任意个输出参数 必须单独调用 触发器 当表或视图中的某些重要数据发生变化 时 为了保持数据的一致 性和完整性 可以自动执行某段程序保证相关联其他数据也跟着进行相应的变化 能完成这种功能的程序就是触发器 它是一种特殊类型的存储过程 触发器是一种 特殊类型的存储过程 但是不能直接被调用执行 只能自动执行 在对特定表或列 作特定类型的数据修改时执行 22 什么是游标 应用游标的步骤是什么 游标是一种处理数据的方法 它可以对结果集进行逐行处理 也可以指向 结果集中的任意位置 并对该位置的数据进行处理 应用游标的步骤 声明游标 打开游标 读取游标 关闭游标 释放游标 五 分析讨论 首先第 18 个关于验证授权前后用户操作的差别那步我不会验证 在游标那题里 面也没有用到事务 感觉自己在游标 自定义编程 存储过程等方面的基础及学习 较为薄弱 刚开始将系统想得很大 后来在做的过程中发现一环套一环 如果做整个酒店 管理系统真的很复杂 还包括财务管理 仓库管理 员工管理等方面 最后我和搭 档商量决定只做客房及顾客信息管理等的内容 实现的功能也相对较少 相信经过 一步一步的学习 我们的能力也会进一步的提升 努力作出比较完善的信息系统 精品文档 7欢迎下载 以下为本次实验的过程记录报告撰写 以下为本次实验的过程记录报告撰写 可包括必要的截图 可包括必要的截图 MCMC 酒店前台管理系统酒店前台管理系统 一 一 系统需求分析系统需求分析 1 业务分析 工作人员登录 工作人员登录 并且有权限的限制 不同的权限允许的操作不同 客房预订 客人可以提前预定房间 可以要求房间的类型 入住时间等 取消预定 客人可以对已经预定的客房进行取消预定 入住登记 对入住的客户的信息进行录入 客户入住房间 退房登记 入住的客户离开 进行退房登记 更新客房客户信息 客房信息查询 客户可以要求查询自己的房间号 剩余房间数量 房间信息等信息 客户信息查询 客户可以要求查询自己的相关信息 酒店可以根据需要查询客户的 信息 2 功能需求分析 功能总流程图功能总流程图 酒店前台 管理系统 登录窗口 身份验证 权限识别 相关操作 预定房间 取消预定 退房登记客房信息查询 入住登记客户信息查询 验证失败 精品文档 8欢迎下载 客房预定客房预定 取消预定取消预定 入住登记入住登记 退房登记退房登记 客房预订是否有空 余房间 预定失败 预定房间登记 修改 相关信息 查询 否 是 取消预定 预定信息 删除 修改 相关信息 查询 取消预定操作 入住登记是否预定 查询住房信息及要 求 确认入住房间 确认预定信息及入 住房间 登记入住信息 修改相关信息 退房登记 入住信息 修改客户及客 房相关信息 查询 精品文档 9欢迎下载 信息查询信息查询 3 信息需求分析 工作人员登录 需要处理工作人员的信息 验证账号密码是否正确且互相匹配 并 且授予该工作人员一定的操作权限 只能进行权限范围内的操作 客房预订 需要处理客房及客户的信息 修改客房的状态 以及入住时间 简单登 记客户的信息 取消预定 需要处理客房及客户的信息 修改客房的状态 以及入住时间 修改客 户的预定信息 入住登记 需要处理客房及客户的信息 查询客户是否预定过房间 若预定 则登 记客房和客户的各项信息 若没有预定 则先查询是否有符合条件的房间 如果有 则登记客房和客户的各项信息 如果没有 则入住失败 退房登记 需要处理客房及客户的信息 查询客户及客房的相关信息 并修改客房 的各项信息以及客户的退房时间及入住天数 客户信息查询 需要处理客户的信息 根据需要查询客户的各项信息 客房信息查询 需要处理客房的信息 根据需要查询客户的各项信息 信息查询 客房信息查询 客户信息查询 精品文档 10欢迎下载 二 二 概念设计概念设计 1 整体 ER 图 房间 客户 工作人员 入住 操作 客户编号 客户姓名 客户性别 身份证号 客户电话 客户地址 是否预定 消费金额 付款时间 备注 客户编号 房间号 入住时间 退房时间 入住天数 入住登记 o 预定客房 取消预定 信息查询 编号 密码 权限 房间号 状态 类型 m 1 m n 精品文档 11欢迎下载 2 部分组成图 房间 Rooms 房间号 RoomNo 状态 StatusNo 类型 TypeNo 工作人员 Workers 编号 Employee Id 密码 PassWord 权限 Restricte 客户 Client 客户编号 ClientID 客户姓名 ClientName 客户性别 ClientSex 身份证号 ClientCertific ateID 客户电话 ClientPhone 客户地址 ClientAdress 是否预定 ClientBookOr Not 消费金额 ClientConsu me 付款时间 PaymentTime 备注 ClientRemarks 精品文档 12欢迎下载 客户编号 ClientID 客户 Client 入住 房间号 RoomNo 入住时间 LiveDate 退房时间 OutDate 入住天数 房间 Rooms 工作人员 Works 操作 Operation 房间 Rooms 入住登记 o 预定客房 取消预定 信息查询 精品文档 13欢迎下载 三 三 逻辑设计逻辑设计 客户信息表 员工登录信息表 房间信息表 房间状态信息表 精品文档 14欢迎下载 房间类型信息表 入住信息表 四 四 数据库的物理设计数据库的物理设计 存储组织结构 数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合 这种数据集合具有如下特点 尽可能不重复 以最优方式为某个特定组织的多种应用 服务 其数据结构独立于使用它的应用程序 对数据的增 删 改和检索由统一软件 进行管理和控制 从发展的历史看 数据库是数据管理的高级阶段 它是由文件管理 系统发展起来的 数据库的基本结构分三个层次 反映了观察数据库的三种不同角度 1 物理数据层 它是数据库的最内层 是物理存贮设备上实际存储的数据的集合 这 些数据是原始数据 是用户加工的对象 由内部模式描述的指令操作处理的位串 字 符和字组成 2 概念数据层 它是数据库的中间一层 是数据库的整体逻辑表示 指 出了每个数据的逻辑定义及数据间的逻辑联系 是存贮记录的集合 它所涉及的是数 精品文档 15欢迎下载 据库所有对象的逻辑关系 而不是它们的物理情况 是数据库管理员概念下的数据库 3 逻辑数据层 它是用户所看到和使用的数据库 表示了一个或一些特定用户使用的 数据集合 即逻辑记录的集合 数据库不同层次之间的联系是通过映射进行转换的 表的结构设计 1 客户信息表 ClientInfo 客户编号 ClientID char 8 主键 客户姓名 ClientName varchar 30 非空 客户性别 ClientSex char 4 身份证号 ClientCertificateID varchar 18 非空 出生日期 ClientBirthday datetime 联系电话 ClientPhone varchar 12 非空 是否预定 ClientBookOrNot int 住址 ClientAdress varchar 50 消费金额 ClientConsume money 结账日期 PaymentTime datetime 备注 ClientRemarks varchar 40 2 房间信息表 RoomInfo 房间号 RoomNo int 主键 状态号 StatusNo int 非空 类型号 TypeNo int 非空 房间备注 RoomRemarks varchar 40 3 房间状类型表 RoomType 类型号 TypeNo int 主键 类型名称 TypeName varchar 10 非空 该类房间数 TypeAmount int 非空 价格 Price money 非空 4 房间状态表 RoomStatus 状态号 StatusNo int 主键 状态名 RoomStatus varchar 10 非空 该状态房间数 StatusAmount int 非空 5 工作人员登录表 LoginInfo 员工编号 EmployeeId char 8 密码 PassWord char 6 非空 权限 Restricte int 非空 五五 T SQLT SQL 命令方式创建数据库的操作命令方式创建数据库的操作 利用 SQL 命令创建数据库文件 表 索引 联系和主键 外键等约束 精品文档 16欢迎下载 1 1 创建数据库文件 创建数据库文件 create database MC酒店前台管理系统 on primary name MC酒店前台管理系统 data filename H 数据库事务实验 马冰洁 1009030116马冰洁 MC酒店前台管理系统 mdf size 50 maxsize 100 filegrowth 10 log on name MC酒店前台管理系统 log filename H 数据库事务实验 马冰洁 1009030116马冰洁 MC酒店前台管理系统 ldf size 10 maxsize 25 filegrowth 5 2 2 创建表 创建表 use MC酒店前台管理系统 Create table RoomStatus StatusNo int Primary key 精品文档 17欢迎下载 RoomStatus varchar 10 not null StatusAmount int not null Create table RoomType TypeNo int Primary key TypeName varchar 10 not null TypeAmount int not null Price money not null CREATE TABLE RoomInfo RoomNo int PRIMARY KEY StatusNo int NOT NULL TypeNo int NOT NULL RoomRemarks varchar 40 foreign key StatusNo references RoomStatus StatusNo on update cascade foreign key TypeNo references RoomType TypeNo on update cascade Create TABLE ClientInfo ClientID char 8 PRIMARY KEY ClientName varchar 30 not null ClientSex char 4 ClientCertificateID varchar 18 not null ClientBirthday datetime ClientPhone varchar 12 not null ClientBookOrNot int ClientAdress varchar 50 ClientConsume money PaymentTime datetime ClientRemarks varchar 40 CREATE TABLE LoginInfo EmployeeId char 8 PRIMARY KEY PassWord char 6 not null Restricte int not null create table ReInfo ClientID char 8 NOT NULL 精品文档 18欢迎下载 RoomNo int NOT NULL LiveDate datetime OutDate datetime DayNo AS OutDate LiveDate primary key RoomNo ClientID foreign key RoomNo references RoomInfo RoomNo FOREIGN KEY ClientID REFERENCES ClientInfo ClientID 精品文档 19欢迎下载 3 创建索引 创建索引 create index sroominfo on ReInfo ClientID ASC RoomNo use MC酒店前台管理系统 GO EXEC sp helpindex ReInfo GO create index sclientinfo on ClientInfo ClientID ASC ClientName use MC酒店前台管理系统 GO EXEC sp helpindex ClientInfo GO 精品文档 20欢迎下载 六六 利用利用 T SQLT SQL 命令增加 删除 修改数据命令增加 删除 修改数据 1 1 插入数据 登记客户基本信息 入住信息 管理客房信息 插入数据 登记客户基本信息 入住信息 管理客房信息 USE MC酒店前台管理系统 INSERT INTO ClientInfo values C0000004 马冰洁 女1993 01 23 5927195260 2 中国安徽省 1000 2011 07 10 09 06 07 需要早餐 INSERT INTO ClientInfo values C0000001 林静 男1982 11 230 中国北京市朝阳 路 3100 2011 07 10 09 06 07 每日 分前不要打扫其房间 INSERT INTO ClientInfo values C0000002 叶华 男1988 01 230 中国厦门市鼓浪 屿 3000 2011 07 19 19 06 07 每日换枕头 INSERT INTO ClientInfo values C0000003 素素 女1982 11 231 中国北京市朝阳 路 3100 2011 07 10 09 06 07 对海鲜过敏 INSERT INTO RoomInfo values 8204 2 4 INSERT INTO RoomInfo values 5203 2 4 INSERT INTO RoomInfo values 2222 2 4 INSERT INTO RoomInfo values 8888 1 5 INSERT INTO RoomInfo values 3402 0 1 INSERT INTO RoomInfo values 2202 2 2 INSERT INTO RoomInfo values 2201 1 2 精品文档 21欢迎下载 INSERT INTO RoomStatus values 2 不空闲 178 INSERT INTO RoomStatus values 0 已预订 20 INSERT INTO RoomStatus values 1 空闲 99 INSERT INTO RoomType values 4 商务套房 80 400 INSERT INTO RoomType values 1 单人房 40 120 INSERT INTO RoomType values 2 标准间 100 150 INSERT INTO RoomType values 5 总统套房 2 1888 INSERT INTO RoomType values 3 豪华间 60 270 INSERT INTO LoginInfo values A0000007 WWWNDX 0 INSERT INTO LoginInfo values B0000001 123456 1 INSERT INTO ReInfo values C0000001 8204 2011 07 05 09 06 07 2011 07 10 09 06 07 INSERT INTO ReInfo values C0000002 5203 2011 07 04 19 06 07 2011 07 10 09 06 07 INSERT INTO ReInfo values C0000003 2222 2011 07 09 09 06 07 2011 07 13 19 06 07 INSERT INTO ReInfo values 精品文档 22欢迎下载 C0000004 2202 2011 07 09 09 06 07 2011 07 13 19 06 07 2 2 修改数据 修改数据 USE MC 酒店前台管理系统 GO 客户调房间 update ReInfo set RoomNo 2201 where ClientID C0000004 客户入住修改房间状态 精品文档 23欢迎下载 update RoomInfo set StatusNo 2 where RoomNo 2202 将客户的消费减去200元 但因为之后设置了一个保护安全性的触发器所以这个应该执行不了 update ClientInfo set ClientConsume ClientConsume 200 where ClientID C0000004 3 3 删除数据 删除数据 客户退房 delete from ReInfo where ClientID C0000004 删除客户信息 delete from ClientInfo where ClientName 马冰洁 七七 利用利用 T SQLT SQL 命令进行数据的检索和统计命令进行数据的检索和统计 精品文档 24欢迎下载 根据自己设计的数据库和输入的数据 写出至少 10 个查询要求及对应的 SQL 查询 命令 应该包含如下功能 投影和选择 多表连接 分组统计与 HAVING 子查询 查询结果保存 USE MC酒店前台管理系统 Go 1 查询所有顾客姓名 SELECT ClientName from ClientInfo 2 查询空闲房间 SELECT RoomNo from RoomInfo where StatusNo 1 3 显示每个房间客户的备注要求 SELECT ClientInfo ClientID RoomNo ClientName ClientSex ClientRemarks from ClientInfo ReInfo where ClientInfo ClientID ReInfo ClientID 4 查询男女顾客各自人数 select ClientSex Count ClientSex as 人数from ClientInfo group by ClientSex 5 查询人均收入大于1000的客房类型 SELECT TypeName AVG ClientConsume AS 平均收入 from RoomType ClientInfo ReInfo RoomInfo where RoomInfo RoomNo ReInfo RoomNo and ClientInfo ClientID ReInfo ClientID and RoomInfo TypeNo RoomType TypeNo 精品文档 25欢迎下载 Group by TypeName Having AVG ClientConsume 1000 6 从RoomInfo表查询共有几种类型的客房 SELECT TypeNo from RoomInfo GROUP BY TypeNo HAVING COUNT 2 7 查询入住超过两间房的客房类型的客房号 SELECT RoomNo from RoomInfo WHERE TypeNo IN SELECT TypeNo from RoomInfo GROUP BY TypeNo HAVING COUNT 2 8 查询价格超过酒店客房平均价格的客房信息 SELECT from RoomType where Price SELECT AVG Price from RoomType 9 查询来自中国北京市XXX的客户姓名 SELECT ClientName from ClientInfo where ClientSex 男 AND ClientAdress LIKE 中国北京市 10 查询所有商务套房的基本信息 select RoomNo StatusNo RoomRemarks from RoomInfo where TypeNo select TypeNo from RoomType where TypeName 商务套房 八八 利用利用 SQLSQL 命令创建视图对象命令创建视图对象 精品文档 26欢迎下载 根据开发的系统的需要 至少设计三个视图 基于单表的 包含多表连接的 包 含统计运算的 use MC酒店前台管理系统 go 1 创建VIP顾客基本信息视图 create view clientVIPinfo as select ClientID ClientName ClientSex ClientCertificateID ClientBirthday ClientPhone ClientConsum e from ClientInfo where ClientConsume 2000 select from clientVIPinfo 2 创建男顾客的基本信息视图 create view clientmaninfo as select ClientID ClientName ClientSex ClientCertificateID ClientBirthday ClientPhone from ClientInfo where ClientSex 男 from ClientInfo select from clientmaninfo 3 创建住在某个房间的客户基本信息及入住信息视图 create view roomreinfo as select ClientInfo ClientID ClientName ClientSex ClientCertificateID ClientBirthday ClientPhone R oomNo LiveDate OutDate from ClientInfo ReInfo where RoomNo 2202 and ClientInfo ClientID ReInfo ClientID 4 创建空闲房间基本信息视图 create view freeroom as select RoomInfo RoomNo RoomType TypeName RoomRemarks from RoomStatus RoomInfo RoomType 精品文档 27欢迎下载 where RoomStatus 空闲 and RoomInfo StatusNo RoomStatus StatusNo and RoomInfo TypeNo RoomType TypeNo select from freeroom 5 创建每种房间的总收入视图 create view zxf as select RoomType TypeName SUM ClientConsume as SumConsume from ClientInfo ReInfo RoomInfo RoomType where ClientInfo ClientID ReInfo ClientID and ReInfo RoomNo RoomInfo RoomNo and RoomInfo TypeNo RoomType TypeNo group by TypeName select from zxf 利用利用 SQLSQL 对视图进行查询对视图进行查询 1 查询收入超过 1 万的房间类型 select TypeName SumConsume from zxf where SumConsume 10000 2 查询XX顾客的客户号 select ClientID from clientmaninfo where ClientName 林静 3 查询空闲房间中商务套房的房间号 select RoomNo from freeroom where TypeName 商务套房 精品文档 28欢迎下载 九九 对视图进行插入 删除 修改数据操作 体会视图与表的异同 对视图进行插入 删除 修改数据操作 体会视图与表的异同 1 1 对视图进行插入数据 对视图进行插入数据 insert into clientmaninfo values C0000011 Jason 男1988 07 04 123456789 insert into clientVIPinfo values C0000012 Freja Black 女1988 06 04 123456789 5000 2 2 修改数据 修改数据 update clientVIPinfo set ClientConsume ClientConsume 200 where ClientSex 男 before After update clientmaninfo set ClientName 池贤宇 where ClientID C0000005 before 精品文档 29欢迎下载 After update freeroom set TypeName 海景套房 where TypeName 总统套房 After 3 3 删除数据 删除数据 delete from clientmaninfo where ClientName LIKE Ja after 十十 编写自定义函数 编写自定义函数 1 1 编写一个自定义函数 将一个字符串作为自变量 返回颠倒顺序的字符串 编写一个自定义函数 将一个字符串作为自变量 返回颠倒顺序的字符串 写出源代码 写出源代码 USE MC酒店前台管理系统 GO CREATE FUNCTION MBJ P VARCHAR 100 RETURNS VARCHAR 100 精品文档 30欢迎下载 AS BEGIN DECLARE I INT N INT SET N LEN P SET I LEN P 1 WHILE I 0 BEGIN SET P P SUBSTRING P I 1 SET I I 1 END SET P RIGHT P N RETURN P END GO SELECT DBO MBJ MCJDQTGLXT 2 2 编写一个自定义函数 能够实现参数化查询的功能 编写一个自定义函数 能够实现参数化查询的功能 create function clientsq ClientID char 8 returns table as return select ClientID ClientName ClientCertificateID from ClientInfo Where ClientID ClientID go SELECT FROM DBO clientsq C0000001 3 3 自己设定函数的具体要求 然后编写出来 自己设定函数的具体要求 然后编写出来 自定义一个带参数 SQL 函数 输入一个参数 n 返回 1 2 3 n CREATE FUNCTION jc n int RETURNS varchar 300 AS BEGIN DECLARE s varchar 300 set s str n while n 1 begin 精品文档 31欢迎下载 set s str n 1 ltrim s set n n 1 end return ltrim s END go select dbo jc 10 十一十一 编写利用游标进行数据处理的存储过程 并在存储过程中应用事务的概念 编写利用游标进行数据处理的存储过程 并在存储过程中应用事务的概念 自己确定过程的具体要求 然后编写出来 自己确定过程的具体要求 然后编写出来 利用游标进行数据修改的存储过程 将 ClientInfo 中所有女性的备注改为 女士 可免费参加舞会 create procedure UpdateHKUNo 存储过程里面放置游标 as begin declare UpdateHKUNoCursor cursor 声明一个游标 查询满足条件的数据 for select ClientID from ClientInfo where ClientSex 女 open UpdateHKUNoCursor 打开 declare noToUpdate varchar 20 声明一个变量 用于读取游标中的值 fetch next from UpdateHKUNoCursor into noToUpdate while fetch status 0 循环读取 begin print noToUpdate update ClientInfo set ClientRemarks 女士可免费参加舞会 where ClientID noToUpdate fetch next from UpdateHKUNoCursor into noToUpdate end end exec UpdateHKUNo close

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论