基于SQL数据库的酒店管理系统

一、数据库设计

1.需求分析

客房的预定:可以通过网络进行预定,预定修改,取消预订。

客房管理:预定管理、客房查询、设置房态、开房、换房、续住、退房等管理。

员工管理: 员工修改信息、人员调配。

账务管理:主要是处理酒店的日常的账务报表,收入报表(前台收入明细表、现付收入明细表)、消费报表等。

顾客管理:收集旅客入住评价,记录顾客身份信息。

2.数据库概念结构设计

(1)局部ER图

旅客信息:

客房信息:

员工信息:

经理信息:

餐厅信息:

(2)整体ER图:

3.数据库逻辑结构设计

(1)关系模式

旅客信息(旅客姓名,性别,身份证号,房间号,餐厅名字);

客房信息(房间号,房间类型,房价,员工号);

餐厅信息(餐厅名字,餐厅电话,经理姓名);

经理(经理姓名,经理电话);

员工(员工号,员工姓名,经理姓名);

(2)关系模式的规范化

旅客信息的主码是旅客身份证号,其他非主属性不完全依赖于身份证号,并且不存在传递函数依赖,因此旅客信息不属于三范式

客房信息的主码是房间号,其他非主属性不完全依赖于房间号,并且不存在传递函数依赖,因此客房信息不属于三范式

餐厅信息的主码是餐厅名字,其他非主属性不完全依赖于餐厅名字,并且不存在传递函数依赖,因此餐厅信息不属于三范式

经理信息的主码是经理姓名,其他非主属性都完全依赖于经理姓名,并且存在传递函数依赖,因此经理信息属于三范式

员工信息的主码是旅客员工号,其他非主属性不完全依赖于员工号,并且不存在传递函数依赖,因此员工信息不属于三范式

(3)数据库中表结构

旅客信息表

列名

数据类型

可否为空

主键

外键

说明

Lkname

Varchar(20)

N

N

旅客姓名

Lksex

Varchar(5)

N

N

旅客性别

Lkid

char(20)

Y

N

身份证号

Ctname

Varchar(20)

N

N

餐厅名字

房间信息表

列名

数据类型

可否为空

主键

外键

说明

Roomid

char(20)

Y

N

酒店房间号

Roomlx

Varchar(16)

N

N

房间类型

Roomfj

Varchar(16)

N

N

房价

Ygid

Varchar(16)

N

N

员工号

员工表

列名

数据类型

可否为空

主键

外键

说明

Ygname

Varchar(20)

N

N

员工姓名

Ygid

char(5)

Y

N

员工号

Jlname

Varchar(20)

N

N

经理姓名

餐厅信息表

列名

数据类型

可否为空

主键

外键

说明

Ctname

Varchar(20)

Y

N

餐厅名字

Ctph

Varchar(5)

N

N

餐厅电话

Jlname

Varchar(20)

N

N

经理姓名

经理信息表

列名

数据类型

可否为空

主键

外键

说明

Jlname

char(20)

Y

N

经理姓名

Jlph

Varchar(20)

N

N

经理电话

(4)数据库中的视图

视图一: 名称 功能

定义(代码)旅客信息表

CREATE VIEW CustomerView (

旅客姓名,

旅客性别,

身份证号

餐厅名字

)

AS

SELECT Lkname, Lksex, Lkid,Ctname

FROM Customer

视图二: 名称 功能

定义(代码)

CREATE VIEW 房间信息 (

房间号,

房间类型,

房间价格

员工号

)

AS

SELECT RoomID, Roomlx,Roomfj,Ygid

FROM Room

三、系统操作说明及运行结果

1.创建数据库及表

(1)创建酒店管理系统数据库

代码:

create database jdglxt

go

(2)客房信息表

create table kfxxb

(roomid char(5),

roomlx char(16) not null,

roomfj varchar(16) not null,

ygid varchar(16) not null,

primary key(roomid)

(3)旅客信息表

create table lkxxb

(lkname char(20) not null,

lksex char(5)not null,

lkid char(20)not null,

ctname varchar(20)not null,

primary key(lkid)

(4)餐厅信息表

create table ctxxb

(ctname char(20),

ctph varchar(5),

jlname varchar(20)

primary key(ctname),

(5)员工表

create table ygxxb

(ygid char(10),

ygname varchar(20),

jlname varchar(20)

primary key(ygid)

)

(6)经理信息表

create table jjxxb

(jlname char(20) primary key,

Jlth varchar(20) not null)

2.数据添加

(1)–向客房信息表中插入数据

代码:

insert into kfxxb

values(‘2008’,‘标间’,‘90’,‘020101’),

(‘2009’,‘标间’,‘90’,‘020102’),

(‘2010’,‘标间’,‘90’,‘020103’),

(‘3007’,‘特价’,‘70’,‘020104’),

(‘3008’,‘特价’,‘70’,‘020105’),

(‘3009’,‘特价’,‘80’,‘020106’),

(‘3010’,‘单人间’,‘80’,‘020107’),

(‘4001’,‘单人间’,‘80’,‘020109’),

(‘4002’,‘三人间’,‘120’,‘020110’),

(‘4003’,‘三人间’,‘120’,‘020111’)

(2)–向旅客信息表中插入数据

代码:

insert into lkxxb

values(‘张三’,‘男’,‘123456789012345678’,‘好运来’),

(‘李四’,‘男’,‘012345678912345678’,‘好运来’),

(‘王五’,‘男’,‘987654321012345678’,‘好运来’),

(‘张强’,‘男’,‘951564621012345678’,‘好运来’),

(‘陈七’,‘女’,‘654987721012345678’,‘好运来’),

(‘马六’,‘男’,‘220125199902253645’,‘好运来’),

(‘李红’,‘女’,‘987654321012347128’,‘好运来’),

(‘张杰’,‘男’,‘220228419650325645’,‘好运来’),

(‘陈军’,‘男’,‘568941723849268622’,‘好运来’) ,

(‘王久’,‘女’,‘025849613546820056’,‘好运来’)

(3)–向餐厅信息表中插入数据

代码:

insert into ctxxb

values(‘好运来’,‘15356412471’,‘秋山’)

(‘好运一’,‘15356412472’,‘秋以’)

(‘好运二’,‘15356412473’,‘秋和’)

(‘好运三’,‘15356412474’,‘秋三’)

(‘好运四’,‘15356412475’,‘秋山四’)

(‘好运五’,‘15356412476’,‘秋五’)

(‘好运六’,‘15356412477’,‘秋六’)

(‘好运七’,‘15356412478’,‘秋七’)

(‘好运八’,‘15356412479’,‘秋吧’)

(‘好运九’,‘15356412480’,‘秋就’)

(4)–向员工信息表中插入数据

代码:

insert into ygxxb

values(‘王朝阳’,‘010201’,‘秋山’),

(‘张向荣’,‘010202’,‘秋山’),

(‘李乐’,‘010203’,‘秋山’),

(‘田达’,‘010204’,‘秋山’),

('周博 ',‘010205’,‘秋山’),

(‘田家’,‘010206’,‘秋山’),

('伊大 ',‘010207’,‘秋山’),

('周婷婷 ',‘010208’,‘秋山’),

(‘陈眉丽’,‘010209’,‘秋山’),

('犹大冬 ',‘010210’,‘秋山’)

(5)–向经理信息表插入数据

代码:

insert into jjxxb

values(‘秋山’,‘15489762450’)

(‘秋以’,‘15489762451’)

(‘秋和’,‘15489762452’)

(‘秋三’,‘15489762453’)

(‘秋山四’,‘15489762454’)

(‘秋五’,‘15489762455’)

(‘秋六’,‘15489762456’)

(‘秋七’,‘15489762457’)

(‘秋吧’,‘15489762458’)

(‘秋就’,‘15489762459’)

3.数据修改

–修改客房信息表表中房间号2008的房价

(1)代码:

updatekfxxb

setroomfj=‘100’

whereroomid=‘2008’

–修改客房信息表中

update kfxxb

setroomfj=‘150’

whereroomid=‘4002’

(2)餐厅信息表

–修改餐厅信息表中好运来的电话字

updatectxxb

setctph=‘19823480345’

wherectname=‘好运来’

(3)旅客信息表

–修改旅客信息表中张三的身份证号

updatelkxxb

setlkid=‘220228474383978544’

whereikname=‘张三’

–修改旅客信息表中李四的性别

updatellxxb

setlkid=‘女’

whereiknamee=‘李四’

(4)员工信息表

–修改员工信息表中王朝阳的员工号

updateygxxb

setygid=‘010220’

whereygname=‘王朝阳’

–修改员工信息表中田家的员工号

updateygxxb

setygid=‘010221’

whereygname=‘田家’

(5)经理信息表

–修改经理信息表中经理秋山电话

updatejjxxb

setctph=‘18674320384’

wherejlname=‘秋山’

–修改经理信息表中经理秋五电话

updatejjxxb

setctph=‘18674320311’

wherejlname=‘秋五’

4.数据删除

(1)旅客信息表

–删除旅客信息表中姓名为王五的信息

deletefromlkxxb

wherelkname=‘王五’

–删除旅客信息表中陈七的身份信息

deletefromlkxxb

wherelkname=‘陈七’

(2)客房信息表

–删除客房信息表中编号2009的信息

deletefromkfxxb

wherekfid=‘2009’

–删除客房信息表中编号4000的信息

deletefromkfxxb

wherekfid=‘4000’

(3)员工信息表

–删除员工信息表中李乐的基本信息

deletefromygxxb

whereygname=‘李乐’

–删除员工信息表中伊大的基本信息

deletefromygxxb

whereygname=‘伊大’

(4)餐厅信息表

–删除餐厅信息表中好运五的基本信息

deletefromctxxb

wherectname=‘好运五’

–删除餐厅信息表中好运六的基本信息

deletefromctxxb

wherectname=‘好运六’

(5)经理信息表

–删除经理信息表中秋山四的基本信息

deletefromjlxxb

where jlname =‘秋山四’

–删除经理信息表中秋五的基本信息

deletefromjlxxb

where jlname =‘秋五’

5.数据查询

(1)查询旅客信息表的所有信息(单表查询)

代码:select*from lkxxb

截图:

(2)查询张强的员工号(多表查询)

selectygidfromlkxxb,ygxxb

whereygxxb.ygid=lkxxb.lknameand

ygxxb.ygid=‘张强’

(3)查询旅客信息表中所有旅客

selectlknamefromlkxxb

(4)查询员工信息表中所有员工编号

selectygid,count(*)asamountfromygxxb

groupbyygid

(5)将所有员工编号按照降序排列(将查询结果排序)

代码:

selectygidfromygxxb

orderbyygiddesc

(6)查询客房信息表(视图查询)

代码:

select*fromkfxxb

(7)查询员排名最小的员工号

代码:

selectmin(ygid)fromygxxb

(8)查询男女人人数(分组查询)

代码:

selectlksex,count(*)as人数fromlkxxb

groupbylksex

(9)查询价格大于100的入住客房房间号和价格(单表查询)

代码:

selectroomid,price

fromkfxxb

whereprice>100

(10)查询所有房价小于100的房间号

select roomfj,roomid

from kfxxb

where roomfj<100

create database jdglxt
go
--客房信息表
create table kfxxb             
    (roomid char(5) primary key,
    roomlx char(16) not null,
       roomfj varchar(16) not null,
       ygid varchar(16) not null
    )
--旅客信息表
create table lkxxb                   
    (lkname char(20) not null,
   lksex char(5)not null,         
   lkid char(20)not null,
     ctname varchar(20)not null,
    primary key(lkid)
 )
    
--餐厅信息表
create table ctxxb
 (ctname char(20),
ctph varchar(20),
jlname varchar(20),
primary key(ctname)

)


--员工表
create table ygxxb 
(ygid char(10) primary key,
ygname varchar(20),
jlname char(20) )
--经理信息表
create table jjxxb
(jlname char(20) primary key,
Jlth varchar(20) not null
)
--插入数据
--向客房信息表中插入数据
insert into kfxxb 
values('1010','标间','90','010101'),
 ('1011','标间','90','010102'),
('1012','标间','90','010103'),
 ('1013','特价','70','010104'),
 ('1014','特价','70','010105'),
('1015','特价','80','010106'), 
('1016','单人间','80','010107'),
('1017','单人间','80','010109'),
('1018','三人间','120','010110'),
('1019','三人间','120','010111')

--3向旅客信息表中插入数据
insert into lkxxb
 values('尚福乐','男','211322198509260317','好运来'),
 ('岳朋','女','211481198401154441','好运来'),
 ('赵晓强','男','987654321012345678','好运来'),
 ('杨思剑','女','522324197508045647','好运来'),
 ('柏朝林','男','510921591208435011','好运来'),
('李家发','男','52262619800410121X','好运来'),
 ('李科','女','522324197309155226','好运来'),
 ('钱齐高','男','433026196612172414','好运来'),
 ('李关福','女','522422610421281489','好运来') ,
 ('段小平','男','510226196602284031','好运来')

--7向餐厅信息表中插入数据
insert into ctxxb 
values('好运来','15356412471','秋山')
--8向员工信息表中插入数据
insert into ygxxb 
values('王阳','020201','秋山'),
 ('张荣','020202','秋山'),
 ('李向乐','020203','秋山'),
 ('王一达','020204','秋山'),
 ('周天博 ','020205','秋山'),
('田林','020206','秋山'),
 ('伊大金 ','020207','秋山'),
('周婷 ','020208','秋山'),
('陈丽','020209','秋山'),
 ('犹大冬 ','020210','秋山')

--9.向经理信息表插入数据
insert into jjxxb
values('秋叶','15187964521')

update kfxxb
set roomfj='100'
where roomid='2008'

update  kfxxb
set roomfj='150'
where roomid='4002'

update ctxxb
set ctph='19823480345'
where ctname='好运来'

update lkxxb
set lkid='220228474383978544'
where lkname='张三'

select*from lkxxb

select lkname from lkxxb

select ygid,count(*) as amount from ygxxb
group by ygid
select ygid from ygxxb
order by ygid desc

select*from kfxxb
select min(ygid) from ygxxb

select lksex,count(*) as 人数 from lkxxb
group by lksex

select roomid,roomfj
from kfxxb
where roomfj>100

select roomfj,roomid
from kfxxb
where roomfj<100

select ygname ygid from ygxxb
order by ygid desc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/980183.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年中国城市统计年鉴(PDF+excel)

2024年中国城市统计年鉴&#xff08;PDFexcel&#xff09; 说明&#xff1a;包括地级县级市 格式&#xff1a;PDFEXCEL 《中国城市统计年鉴》是一部全面反映中国城市发展状况的官方统计出版物&#xff0c;包括各级城市的详细统计数据。这部年鉴自1985年开始出版&#xff0c;…

1.C语言初识

C语言初识 C语言初识基础知识hello world数据类型变量、常量变量命名变量分类变量的使用变量的作用域 常量字符字符串转义字符 选择语句循环语句 函数&#xff1b;数组函数数组数组下标 操作符操作符算术操作符移位操作符、位操作符赋值操作符单目操作符关系操作符逻辑操作符条…

LINUX基础 - 网络基础 [一]

前言 在当今的数字化世界中&#xff0c;网络已成为计算机系统和应用的核心组成部分。Linux&#xff0c;作为一个开放源代码的操作系统&#xff0c;在服务器、嵌入式设备、以及开发环境中被广泛使用&#xff0c;而其强大的网络能力使其在网络管理和网络编程领域占据了重要地位。…

苹果廉价机型 iPhone 16e 影像系统深度解析

【人像拍摄差异】 尽管iPhone 16e支持后期焦点调整功能&#xff0c;但用户无法像iPhone 16系列那样通过点击屏幕实时切换拍摄主体。前置摄像头同样缺失人像深度控制功能&#xff0c;不过TrueTone原彩闪光灯系统在前后摄均有保留。 很多人都高估了 iPhone 的安全性&#xff0c;查…

游戏引擎学习第128天

开始 然而&#xff0c;我们仍然有一些工作要做&#xff0c;渲染部分并没有完全完成。虽然现在已经能够运行游戏&#xff0c;而且帧率已经可以接受&#xff0c;但仍然有一些东西需要进一步完善。正在使用调试构建编译版本&#xff0c;虽然调试版本的性能不如优化版本&#xff0…

几个api

几个api 原型链 可以阅读此文 Function instanceof Object // true Object instanceof Function // true Object.prototype.isPrototypeOf(Function) // true Function.prototype.isPrototypeOf(Object) // true Object.__proto__ Function.prototype // true Function.pro…

用DeepSeeker + AI app工具自动生成 APP代码

作为上海嘉冰信息技术有限公司创始人&#xff0c;我想做一个AI美食点评类APP&#xff0c;用户可以上传自己的美食图片并生成相应的AI美食点评&#xff0c;可以帮我详细描述一下这个APP&#xff0c;用于方便我的企业B端客户开拓本地生活的内容市场。 AI美食点评APP&#xff1a;开…

布署elfk-准备工作

建议申请5台机器部署elfk&#xff1a; filebeat(每台app)--> logstash(2台keepalived)--> elasticsearch(3台)--> kibana(部署es上)采集输出 处理转发 分布式存储 展示 ELK中文社区: 搜索客&#xff0c;搜索人自己的社区 官方…

利用PyQt简单的实现一个机器人的关节JOG界面

在上一篇文章中如何在Python用Plot画出一个简单的机器人模型&#xff0c;我们介绍了如何在Python中画出一个简单的机器人3D模型&#xff0c;但是有的时候我们需要通过界面去控制机器人每一个轴的转动&#xff0c;并实时的显示出当前机器人的关节位置和末端笛卡尔位姿。 那么要实…

制造业中的“大数据”:如何实现精准决策?

在当今全球经济竞争日趋激烈、技术变革周期不断缩短的环境下&#xff0c;制造业面临着全新的挑战和机遇。随着信息技术的飞速发展&#xff0c;“大数据”正以前所未有的速度渗透到制造业的各个环节&#xff0c;帮助企业实现更精准的决策、更灵活的生产组织以及更敏捷的市场响应…

【沙漠之心:揭秘尘封奇迹的终极之旅】

在地球的边缘,横亘着一片浩瀚无垠的沙漠,它既是生命的绝域,亦是奇迹孕育的秘境。这片广袤的沙漠,以其神秘莫测的面貌,自古以来便吸引着无数探险家、旅行者和梦想家的目光。它既是生命的禁区,让无数生命在这片不毛之地中消逝;同时,它也是奇迹的摇篮,孕育着无数未被发现…

线程控制(创建、终止、等待、分离)

目录 1.前言 2.创建线程 pthread_create函数 3.线程终止 pthread_exit函数 pthread_cancel函数 4.线程等待 5.线程分离 1.前言 在Linux系统中&#xff0c;并不存在真正的线程&#xff0c;只有轻量级进程。所以&#xff0c;Linux系统只提供了操作轻量级进程的系统调用…

有关Java中的集合(1):List<T>和Set<T>

学习目标 核心掌握List集合了解Set集合 1.List<T> ● java.util.List。有序列表。 ● List集合元素的特点&#xff1a;有序表示存取有序&#xff08;因为有索引&#xff09;而且可以重复 ● List常用实现类&#xff1a; ArrayList、LinkedList、Vector等 1.1 常用方法…

第J1周:ResNet50算法(Tensorflow版)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标 具体实现 &#xff08;一&#xff09;环境 语言环境&#xff1a;Python 3.10 编 译 器: PyCharm 框 架: TensorFlow &#xff08;二&#xff09;具体…

第三百七十一节 JavaFX教程 - JavaFX组合框

JavaFX教程 - JavaFX组合框 组合框允许用户选择几个选项之一。用户可以滚动到下拉列表。组合框可以是可编辑和不可编辑的。 创建组合框 以下代码将选项列表包装到ObservableList中&#xff0c;然后使用observable列表实例化ComboBox类。 ObservableList<String> optio…

《HelloGitHub》第 107 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…

和鲸科技推出人工智能通识课程解决方案,助力AI人才培养

2025年2月&#xff0c;教育部副部长吴岩应港澳特区政府邀请&#xff0c;率团赴港澳宣讲《教育强国建设规划纲要 (2024—2035 年)》。在港澳期间&#xff0c;吴岩阐释了教育强国目标的任务&#xff0c;并与特区政府官员交流推进人工智能人才培养的办法。这一系列行动体现出人工智…

2025 最新版鸿蒙 HarmonyOS 开发工具安装使用指南

为保证 DevEco Studio 正常运行&#xff0c;建议电脑配置满足如下要求&#xff1a; Windows 系统 操作系统&#xff1a;Windows10 64 位、Windows11 64 位内存&#xff1a;16GB 及以上硬盘&#xff1a;100GB 及以上分辨率&#xff1a;1280*800 像素及以上 macOS 系统 操作系统…

not support ClassForName

com.alibaba.fastjson2.JSONException: not support ClassForName : java.lang.String, you can config JSONReader.Feature.SupportClassForName 官方说明中提到默认关闭&#xff0c; 可通过配置开启 JSON.config(JSONReader.Feature.SupportClassForName);

面试常问的压力测试问题

性能测试作为软件开发中的关键环节&#xff0c;确保系统在高负载下仍能高效运行。压力测试作为性能测试的重要类型&#xff0c;旨在通过施加超出正常负载的压力&#xff0c;观察系统在极端条件下的表现。面试中&#xff0c;相关问题常被问及&#xff0c;包括定义、重要性、与负…