实验1-hotel数据库
某酒店预定系统的数据库中包含以下数据表,具体信息如下:
customer表:包含顾客id和顾客名字
hotel表:包含酒店id和酒店名
room_type表:包含房型id,房型名,对应的酒店id
room_info表:房间信息id,日期,当前日期价格,剩余数量,对应房型id
hotel_order表:订单id,订单对应的房型id,入店日期,离店日期,预定数量,订单价格,订单创建日期,发起订单的顾客id
rating表:评价id,评价分数,评价对应的订单id,发起评价的顾 客id
P1
查询所有房型的具体信息,包括room_id, Room_name, hotel_id;
1 | SELECT * |
P2
查询所有酒店名称中包含“希尔顿”的酒店,返回酒店名称和酒店id。
1 | SELECT * |
P3
查询订单总价在9000元及以上的所有订单详情,包括订单编号、 酒店编号、房型编号及居住时长。
1 | SELECT hotel_order.order_id, |
P4
查询所有房型的订单情况,包括房型编号,房型名称,订单编号、 价格
1 | SELECT hotel_order.room_id, |
P5
创建启悦酒店的订单视图。
1 | CREATE OR REPLACE VIEW qiyue_hotel AS |
P6
在订单表的总价字段上创建降序的普通索引。索引名为 orderpayment. 用\di 命令查看创建的索引。
1 | CREATE INDEX order_payment ON hotel_order(payment DESC); |
P7
创建函数:查询给定日期,给定酒店所有房型的平均价格。 执行函数,输入参数为2020-11-14,希尔顿大酒店
1 | CREATE OR REPLACE FUNCTION get_average_price_on_date_hotel(DATE, VARCHAR(255)) |
P8
创建存储过程:从订单表中统计指定酒店、指定日期的各种房型 的预订情况,返回酒店名,房型,预定数量。执行存储过程:统计希尔顿大酒店2020-11-14当天各个房型预定情况
1 | CREATE OR REPLACE PROCEDURE |
1 | CREATE OR REPLACE PROCEDURE get_room_type_order_on_date_hotel(para1 DATE, para2 VARCHAR(255)) |
P9
查找同时评价了2次及以上的用户信息。
1 | SELECT * |
P10
查询评价过所有总统套房的顾客姓名。
1 | SELECT DISTINCT customer.uname |
P11
若要预定11.14-16日每天房间数量4间。查询满足条件(时 间区间,将预定房间数)的房型及其平均价格,并按平均价格从 低到高进行排序。查询结果应包含酒店,房型及平均价格信息。
1 | SELECT FIRST(hotel.hotel_name) AS hotel_name, |
P12
编写触发器:完成预订房间,包括创建订单和更新房型信息。
该订单为预订11月14号-15号4号房型4间
1 | CREATE OR REPLACE PROCEDURE order_room(t_start_date DATE, t_leave_date DATE, t_room_id INT, t_amount INT, t_customer_id INT) |