@@ -272,5 +272,102 @@ VALUES
272
272
-- Set primary key to each table.
273
273
-- Populate each table with 3 records.
274
274
-- Make sure the columns that are present in 2 tables would be of the same data type.
275
- -- Consider which fields are always required and which are optional.
276
- -- Submit your CREATE TABLE and INSERT statements
275
+ -- Consider which fields are always required and which are optional.
276
+ -- Submit your CREATE TABLE and INSERT statements
277
+
278
+ CREATE DATABASE `car_rental `;
279
+ USE ` car_rental` ;
280
+
281
+ CREATE TABLE `categories ` (
282
+ ` id` INT UNSIGNED PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
283
+ ` category` VARCHAR (30 ) NOT NULL ,
284
+ ` daily_rate` DOUBLE NOT NULL ,
285
+ ` weekly_rate` DOUBLE NOT NULL ,
286
+ ` monthly_rate` DOUBLE NOT NULL ,
287
+ ` weekend_rate` DOUBLE NOT NULL
288
+ );
289
+
290
+ INSERT INTO ` categories`
291
+ (` category` , ` daily_rate` , ` weekly_rate` , ` monthly_rate` , ` weekend_rate` )
292
+ VALUES
293
+ (' Category 1' , 1 .1 , 2 .1 , 3 .1 , 4 .1 ),
294
+ (' Category 2' , 1 .2 , 2 .2 , 3 .2 , 4 .2 ),
295
+ (' Category 3' , 1 .3 , 2 .3 , 3 .3 , 4 .3 );
296
+
297
+ CREATE TABLE `cars ` (
298
+ ` id` INT UNSIGNED PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
299
+ ` plate_number` VARCHAR (20 ) NOT NULL UNIQUE,
300
+ ` make` VARCHAR (20 ) NOT NULL ,
301
+ ` model` VARCHAR (20 ) NOT NULL ,
302
+ ` car_year` YEAR NOT NULL ,
303
+ ` category_id` INT UNSIGNED NOT NULL ,
304
+ ` doors` TINYINT UNSIGNED NOT NULL ,
305
+ ` picture` BLOB,
306
+ ` car_condition` VARCHAR (20 ),
307
+ ` available` BOOLEAN NOT NULL DEFAULT TRUE
308
+ );
309
+
310
+ INSERT INTO ` cars`
311
+ (` plate_number` , ` make` , ` model` , ` car_year` , ` category_id` , ` doors` , ` car_condition` )
312
+ VALUES
313
+ (' Plate Num 1' , ' Maker 1' , ' Model 1' , ' 1970' , 1 , 2 , ' ' ),
314
+ (' Plate Num 2' , ' Maker 2' , ' Model 2' , ' 1980' , 2 , 4 , ' Scrap' ),
315
+ (' Plate Num 3' , ' Maker 3' , ' Model 3' , ' 1990' , 3 , 5 , ' Good' );
316
+
317
+ CREATE TABLE `employees ` (
318
+ ` id` INT UNSIGNED PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
319
+ ` first_name` VARCHAR (30 ) NOT NULL ,
320
+ ` last_name` VARCHAR (30 ) NOT NULL ,
321
+ ` title` VARCHAR (30 ) NOT NULL ,
322
+ ` notes` VARCHAR (128 )
323
+ );
324
+
325
+ INSERT INTO ` employees`
326
+ (` first_name` , ` last_name` , ` title` , ` notes` )
327
+ VALUES
328
+ (' Gosho' , ' Goshev' , ' Boss' , ' ' ),
329
+ (' Pesho' , ' Peshev' , ' Supervisor' , ' ' ),
330
+ (' Bai' , ' Ivan' , ' Worker' , ' Can do any work' );
331
+
332
+ CREATE TABLE `customers ` (
333
+ ` id` INT UNSIGNED PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
334
+ ` driver_licence_number` VARCHAR (30 ) NOT NULL ,
335
+ ` full_name` VARCHAR (60 ) NOT NULL ,
336
+ ` address` VARCHAR (50 ) NOT NULL ,
337
+ ` city` VARCHAR (20 ) NOT NULL ,
338
+ ` zip_code` INT (4 ) NOT NULL ,
339
+ ` notes` VARCHAR (128 )
340
+ );
341
+
342
+ INSERT INTO ` customers`
343
+ (` driver_licence_number` , ` full_name` , ` address` , ` city` , ` zip_code` , ` notes` )
344
+ VALUES
345
+ (' 1234ABCD' , ' Gosho Goshev' , ' A casstle' , ' Sofia' , 1000 , ' ' ),
346
+ (' 2234ABCD' , ' Pesho Peshev' , ' A boat' , ' Varna' , 2000 , ' ' ),
347
+ (' 3234ABCD' , ' Bai Ivan' , ' Under the bridge' , ' Sofia' , 1000 , ' ' );
348
+
349
+ CREATE TABLE `rental_orders ` (
350
+ ` id` INT UNSIGNED PRIMARY KEY NOT NULL UNIQUE AUTO_INCREMENT,
351
+ ` employee_id` INT UNSIGNED NOT NULL ,
352
+ ` customer_id` INT UNSIGNED NOT NULL ,
353
+ ` car_id` INT UNSIGNED NOT NULL ,
354
+ ` car_condition` VARCHAR (20 ),
355
+ ` tank_level` DOUBLE,
356
+ ` kilometrage_start` DOUBLE,
357
+ ` kilometrage_end` DOUBLE,
358
+ ` total_kilometrage` DOUBLE,
359
+ ` start_date` DATE ,
360
+ ` end_date` DATE ,
361
+ ` total_days` INT UNSIGNED,
362
+ ` rate_applied` DOUBLE,
363
+ ` tax_rate` DOUBLE,
364
+ ` order_status` VARCHAR (30 ),
365
+ ` notes` VARCHAR (128 )
366
+ );
367
+
368
+ INSERT INTO ` rental_orders`
369
+ (` employee_id` , ` customer_id` , ` car_id` , ` car_condition` , ` start_date` )
370
+ VALUES
371
+ (1 , 3 , 2 , ' Good' , NOW()),
372
+ (2 , 1 , 3 , ' Bad' , NOW()),
373
+ (3 , 2 , 1 , ' OK' , NOW());
0 commit comments