红色旅游景点售票管理数据库中有如下实体集: D售票员:属性有员工号、姓名、性别、年龄、职务、景点代码 游客: 属性游客编号、姓名、性别、年龄、属地 ●门票:属性有门票代号、门票名称、价格、景点代码 ●景点:属性有景点代码、景点名称、地址 其中,每个售票员只属于一个景点;每个售票员可以销售多张门票,门票销售给游客时指定时间和地点:每名游客可以订购多处景点的门票:每张门票只能在个景点由一个售票员销售。3.使用SQL命令创建spot数据库,并在数据库中创建门票表、销售表,具体要求如 (1)表名、字段名自拟。(2)字段类型、字段长度根据常识进行设置 (3)需要设置主键和外键,并为门票名称属性设置唯一性约束,销售门票的时间默认为系统日期时间(获取系统日期时间的函数是getdate())。(共10分) 4.为User2用户授子对售票员表的表结构修改、删除记录、插入记录的权限,并收回User1对游客表的查询权限。(4分)
时间: 2023-07-10 12:28:08 浏览: 144
3. 使用SQL命令创建spot数据库,并在数据库中创建门票表、销售表
```sql
-- 创建spot数据库
CREATE DATABASE spot;
-- 使用spot数据库
USE spot;
-- 创建门票表Tickets
CREATE TABLE Tickets (
TicketID INT PRIMARY KEY, -- 门票代号
TicketName VARCHAR(50) UNIQUE, -- 门票名称,设置唯一性约束
Price FLOAT, -- 价格
SpotCode INT, -- 景点代码
FOREIGN KEY (SpotCode) REFERENCES Spots(SpotCode) -- 外键,关联景点表
);
-- 创建景点表Spots
CREATE TABLE Spots (
SpotCode INT PRIMARY KEY, -- 景点代码
SpotName VARCHAR(50), -- 景点名称
Address VARCHAR(100) -- 地址
);
-- 创建销售表Sales
CREATE TABLE Sales (
SaleID INT PRIMARY KEY, -- 销售编号
TicketID INT, -- 门票代号
StaffID INT, -- 售票员编号
VisitorID INT, -- 游客编号
SaleTime DATETIME DEFAULT getdate(), -- 销售时间,默认为系统日期时间
SaleAddress VARCHAR(100), -- 销售地点
FOREIGN KEY (TicketID) REFERENCES Tickets(TicketID), -- 外键,关联门票表
FOREIGN KEY (StaffID) REFERENCES Staffs(StaffID), -- 外键,关联售票员表
FOREIGN KEY (VisitorID) REFERENCES Visitors(VisitorID) -- 外键,关联游客表
);
-- 创建售票员表Staffs
CREATE TABLE Staffs (
StaffID INT PRIMARY KEY, -- 售票员编号
StaffName VARCHAR(50), -- 姓名
Gender VARCHAR(10), -- 性别
Age INT, -- 年龄
Position VARCHAR(50), -- 职务
SpotCode INT, -- 景点代码
FOREIGN KEY (SpotCode) REFERENCES Spots(SpotCode) -- 外键,关联景点表
);
-- 创建游客表Visitors
CREATE TABLE Visitors (
VisitorID INT PRIMARY KEY, -- 游客编号
VisitorName VARCHAR(50), -- 姓名
Gender VARCHAR(10), -- 性别
Age INT, -- 年龄
Address VARCHAR(100) -- 属地
);
```
4. 为User2用户授子对售票员表的表结构修改、删除记录、插入记录的权限,并收回User1对游客表的查询权限。
```sql
-- 授权给User2用户
GRANT ALTER, DELETE, INSERT ON Staffs TO User2;
-- 收回User1对Visitors表的查询权限
REVOKE SELECT ON Visitors FROM User1;
```
阅读全文