某汽车租赁公司建立汽车租赁管理系统,其数据库的部分关系模式如下: 用户: USERS(UserId,Name,Balance),各属性分别表示用户身份证号,姓名,账户余额; 汽车:CARS(CId,CType,CPrice,CStatus),各属性分别表示汽车车牌,汽车型号,日租金,状态。状态0表示未出租,1表示已出租。 租用记录BORROWS(BId,UserId,CId,SDate,EDate,bill)。各属性分别表示租车流水号,用户身份证号,汽车车牌,租用开始时间,归还时间,租车费用。其中已租但尚未还车的记录,其edate和bill均为Null 建表命令如下:*/ create table Users ( UserId char(18) primary key, --身份证 Name varchar(20) not null, --姓名 Balance int check( Balance>=0) --账户余额 ) create table Cars ( CId char(10) primary key, --车牌 CType varchar(30) not null, --汽车型号 CPrice int check(CPrice>=0), --日租金 CStatus tinyint --租车状态,0表示未出租,1表示正在出租 ) create table Borrows ( BId int primary key, -- 租车流水号 UserId char(18) foreign key references Users(UserId), CId char(10) foreign key references Cars(CId), SDate date, -- 租车开始日期 EDate date ,-- 还车日期,未还车则为null Bill int --本次消费金额, 未还车则为null )在Users表创建级联删除触发器: 当删除某个用户时,同时删除该用户所有的租车记录。
时间: 2023-11-22 13:53:11 浏览: 40
以下是在Users表上创建级联删除触发器的SQL语句:
```
CREATE TRIGGER delete_user
ON Users
AFTER DELETE
AS
BEGIN
DELETE FROM Borrows WHERE UserId IN (SELECT deleted.UserId FROM deleted)
END
```
该触发器会在Users表中有记录被删除时触发,然后删除Borrows表中与被删除用户相关的所有租车记录。这样可以确保当一个用户被删除时,与该用户相关的所有租车记录也会被删除,避免数据冗余和不一致性。
相关问题
长途汽车售票系统 建立数据库及表格代码
以下是一个简单的长途汽车售票系统的数据库及表格建立代码,供参考:
```
CREATE DATABASE bus_ticket_system;
USE bus_ticket_system;
CREATE TABLE buses (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
departure_location VARCHAR(50) NOT NULL,
arrival_location VARCHAR(50) NOT NULL,
departure_time DATETIME NOT NULL,
arrival_time DATETIME NOT NULL,
price DECIMAL(10, 2) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(50) NOT NULL,
phone_number VARCHAR(20) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE bookings (
id INT(11) NOT NULL AUTO_INCREMENT,
user_id INT(11) NOT NULL,
bus_id INT(11) NOT NULL,
departure_date DATE NOT NULL,
seat_number INT(11) NOT NULL,
booking_time DATETIME NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (bus_id) REFERENCES buses(id)
);
```
上述代码创建了3个表格:
1. `buses` 表格用于存储汽车信息,包括汽车名称、出发地点、到达地点、出发时间、到达时间以及票价。
2. `users` 表格用于存储用户信息,包括用户名、密码、电子邮件地址和电话号码。
3. `bookings` 表格用于存储订单信息,包括用户ID、汽车ID、出发日期、座位号以及预订时间。
在实际应用中,还可以添加其他表格以存储更多信息,如乘客信息、司机信息等。
国开实验2 mysql数据库对象管理(预备知识:第3
第3章是关于MySQL数据库对象管理的知识,其中包括了如何创建数据库、创建数据表、以及使用的一些常用的数据库对象管理命令。
首先,我们需要通过使用CREATE DATABASE语句来创建一个数据库。比如,我们可以使用以下命令来创建一个名为"mydatabase"的数据库:
CREATE DATABASE mydatabase;
接着,我们可以使用CREATE TABLE语句来创建一个数据表。数据表是数据库中用于存储数据的一种对象。例如,以下命令可以用来创建一个名为"users"的数据表,其中包含id、name和email字段:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
在数据库对象管理中,我们还可以使用ALTER TABLE语句来修改数据表的结构。比如,我们可以使用以下命令向"users"数据表中添加一个age字段:
ALTER TABLE users
ADD COLUMN age INT;
除了创建和修改数据表,我们还可以使用DROP DATABASE和DROP TABLE命令来删除数据库和数据表。比如,以下命令将删除名为"mydatabase"的数据库:
DROP DATABASE mydatabase;
最后,我们还可以使用RENAME TABLE命令来更改数据表的名称。例如,以下命令可以将名为"users"的数据表重命名为"customers":
RENAME TABLE users TO customers;
综上所述,国开实验2中涉及了MySQL数据库对象管理的基本内容,包括创建数据库、创建数据表、修改数据表的结构、删除数据库和数据表以及更改数据表的名称等操作。掌握这些知识可以帮助我们更好地管理和维护MySQL数据库。