我有以下数据库,希望更新“room”表。表“room”列出了单人、双人或大床房型,价格是每晚每间房的价格,酒店名称是酒店的名称。
我需要做的是将Scotty Hotel中所有双人房改为大床房,并将其价格增加10%。
我知道如何在单个表中更新价格和类型,但似乎在这里我需要通过HNO连接hotel和room,然后进行更新。可能需要使用嵌套查询?
我需要做的是将Scotty Hotel中所有双人房改为大床房,并将其价格增加10%。
我知道如何在单个表中更新价格和类型,但似乎在这里我需要通过HNO连接hotel和room,然后进行更新。可能需要使用嵌套查询?
create table Hotel (
HNo char(4),
Name varchar(20) not null,
Address varchar(50),
Constraint PK_Hotel Primary Key (HNo)
);
create table Room (
RNo char(4),
HNo char(4),
Type char(6) not null,
Price decimal (7,2),
Constraint PK_Room Primary Key (HNo, RNo),
Constraint FK_Room Foreign Key (HNo)
references Hotel (HNo)
);
create table Guest (
GNo char(4),
Name varchar(20) not null,
Address varchar(50),
Constraint PK_Guest Primary Key (GNo)
);
create table Booking (
HNo char(4),
GNo char(4),
DateFrom date,
DateTo date,
RNo char(4),
Constraint PK_Booking Primary Key (HNo, GNo, DateFrom),
Constraint FK_Booking Foreign Key (GNo)
references Guest (GNo),
Constraint FK_Booking_room Foreign Key (HNo, RNo)
references Room (HNo, RNo),
Constraint FK_Booking_hotel Foreign Key (HNo)
references Hotel (HNo)
);
我有两个主要问题:
是否可以更新需要联接的表?
我想通过视图列出客人。我能否创建一个包含酒店名称和曾经入住过该酒店的不同客人数量的视图?
RDBMS
代表关系数据库管理系统。RDBMS是SQL的基础
,也是所有现代数据库系统如MS SQL Server、IBM DB2、Oracle、MySQL等的基础。 - John Woocreate table Hotel
的末尾有一个额外的闭合括号)
。 - Sepster;
。我必须承认,我假设使用的是 mySql。已编辑代码以反映出这一点 - 我添加了;
,因为我相信虽然它们并非普遍所需,但它们几乎被广泛接受了?(如果不是这种情况,请重新编辑) - Sepster