Skip to content

Commit 1241fb8

Browse files
committed
Added missing solutions
1 parent 9869b90 commit 1241fb8

File tree

1 file changed

+99
-2
lines changed

1 file changed

+99
-2
lines changed

02. Data Definition and Datatypes/Data Definition and Datatypes Exercise.sql

Lines changed: 99 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,5 +272,102 @@ VALUES
272272
-- Set primary key to each table.
273273
-- Populate each table with 3 records.
274274
-- 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

Comments
 (0)