[sql] Cars

Viewer

  1. CREATE DATABASE `commission_car_shop`;
  2. USE `commission_car_shop`;
  3.  
  4. -- create
  5. CREATE TABLE contracts (
  6.   id INT AUTO_INCREMENT PRIMARY KEY, 
  7.   customer VARCHAR(255) NOT NULL, 
  8.   dealer VARCHAR(255) NOT NULL,
  9.   contract_date DATE NOT NULL, 
  10.   car_brand VARCHAR(255) NOT NULL, 
  11.   release_date DATE NOT NULL,
  12.   mileage INT NOT NULL,
  13.   sale_date DATE NOT NULL, 
  14.   sale_price INT NOT NULL,
  15.   commission_amount INT NOT NULL,
  16.   cust_id INT,
  17.   deal_id INT
  18. );
  19.  
  20. CREATE TABLE customers (
  21.   id INT AUTO_INCREMENT PRIMARY KEY, 
  22.   customer_full_name VARCHAR(255) NOT NULL, 
  23.   city VARCHAR(255) NOT NULL,
  24.   address VARCHAR(255) NOT NULL, 
  25.   telephone_number INT NOT NULL
  26. );
  27.  
  28. CREATE TABLE dealers (
  29.   id INT AUTO_INCREMENT PRIMARY KEY, 
  30.   dealer_full_name VARCHAR(255) NOT NULL, 
  31.   photo BLOB,
  32.   address VARCHAR(255) NOT NULL, 
  33.   telephone_number INT NOT NULL
  34. );
  35.  
  36. -- insert
  37. INSERT INTO contracts (customer, dealer, contract_date, car_brand, release_date, mileage, sale_date, sale_price, commission_amount, cust_id, deal_id) 
  38. VALUES 
  39. ("Bohdan", "Dmytro", "2021.03.18", "Toyota", "2018.01.01", 5250, "2022.03.17", 74480, 6520, 1, 1),
  40. ("Ivan", "Oleksandr", "2023.09.07", "Porsche", "2019.01.01", 6100, "2023.09.12", 140000, 15000, 2, 3),
  41. ("Ihor", "Maksym", "2022.05.22", "Tesla", "2017.01.01", 795, "2022.12.28", 51605, 4500, 3, 2),
  42. ("Juliia", "Dmytro", "2022.08.04", "BMW", "2020.01.01", 3790, "2023.06.21", 133000, 12560, 4, 1),
  43. ("Mykyta", "Dmytro", "2023.08.10", "Audi", "2019.01.01", 4855, "2023.08.31", 166950, 17700, 5, 1),
  44. ("Stepan", "Oleksandr", "2022.12.31", "Porsche", "2017.01.01", 7921, "2023.01.07", 135660, 13670, 6, 3),
  45. ("Daria", "Dmytro", "2022.11.11", "Mercedes-Benz", "2021.01.01", 5920, "2022.12.22", 119899, 8230, 7, 1),
  46. ("Oleh", "Maksym", "2023.07.15", "Mustang", "2020.01.01", 7700, "2023.09.01", 125000, 9000, 8, 2),
  47. ("Volodymyr", "Maksym", "2022.02.23", "Dodge", "2021.01.01", 1175, "2022.07.06", 85830, 7330, 9, 2),
  48. ("Danylo", "Oleksandr", "2023.08.01", "Porsche", "2016.01.01", 2115, "2023.09.18", 82450, 7100, 10, 3);
  49.  
  50. INSERT INTO customers (customer_full_name, city, address, telephone_number) 
  51. VALUES 
  52. ('Voronin Bohdan Oleksandrovych', 'Mykolaiv', 'st. Okeanivska 36', 0632345072),
  53. ('Hoba Ivan Ivanovych', 'Mykolaiv', 'st. Novozavodska 111', 0991236036),
  54. ('Li Ihor Volodymyrovych', 'Kyiv', 'st. Kyrylivska 99', 0931906783),
  55. ('Vorkinh Juliia Yevhenivna', 'Lviv', 'st. Teatralna 8', 0666134777),
  56. ('Molchanov Mykyta Bohdanovych', 'Mykolaiv', 'st. Sadova 11/13', 0988765415),
  57. ('Lobov Stepan Mychailovych', 'Odesa', 'st. Seredna 18', 0992384740),
  58. ('Tsvihun Daria Pavlivna', 'Mykolaiv', 'st. Shevchenka 69A', 0652349730),
  59. ('Holub Oleh Vladyslavovych', 'Uman', 'st. Hrushevskoho 46', 0669762629),
  60. ('Boiko Volodymyr Petrovych', 'Dnipro', 'st. Marshala Malynovskoho 36', 0982357854),
  61. ('Pyzhyk Danylo Valeriiovych', 'Lutsk', 'st. Kopernyka 34', 0999487510);
  62.  
  63. INSERT INTO dealers (dealer_full_name, address, telephone_number)
  64. VALUES 
  65. ('Holovko Dmytro Serhiiovych', 'Zaliznychnyi district, st. Lyubinska 162', 999856785),
  66. ('Vdovychenko Maksym Dmytrovych', 'Halytskyi district, st. Drahomanova 50', 932411691),
  67. ('Shevchenko Oleksandr Oleksandrovych', 'Lychakyvskyi district, st. General Tarnavskoho 107', 932411660);
  68.  
  69. -- alter
  70. -- ALTER TABLE dealers ADD CONSTRAINT fk_dt FOREING KEY (id) REFERENCES contracts(deal_id) ON DELETE CASCADE ON UPDATE CASCADE;
  71. -- ALTER TABLE customers ADD CONSTRAINT fk_ct FOREING KEY (id) REFERENCES contracts(cust_id) ON DELETE CASCADE ON UPDATE CASCADE;
  72.  
  73. -- fetch 
  74. -- SELECT * FROM contracts;
  75. -- SELECT * FROM customers;
  76. --  SELECT * FROM dealers;
  77.  
  78. -- Створюємо нову таблицю для інформації про марки автомобілів
  79. CREATE TABLE car_brands (
  80.     car_brand_id INT PRIMARY KEY,
  81.     car_brand VARCHAR(255) NOT NULL
  82. );
  83.  
  84. -- Заповнюємо нову таблицю
  85. INSERT INTO car_brands (car_brand_id, car_brand)
  86. VALUES
  87. (1, 'Toyota'),
  88. (2, 'Porsche'),
  89. (3, 'Tesla'),
  90. (4, 'BMW'),
  91. (5, 'Audi'),
  92. (6, 'Mercedes-Benz'),
  93. (7, 'Mustang'),
  94. (8, 'Dodge');
  95.  
  96. -- Видаляємо стовпець car_brand з таблиці contracts
  97. ALTER TABLE contracts
  98. DROP COLUMN car_brand;
  99.  
  100. -- Додаємо до таблиці contracts зовнішній ключ car_brand_id
  101. ALTER TABLE contracts
  102. ADD COLUMN car_brand_id INT,
  103. ADD CONSTRAINT fk_car_brand
  104.     FOREIGN KEY (car_brand_id)
  105.     REFERENCES car_brands(car_brand_id);
  106.     
  107. UPDATE contracts
  108. SET car_brand_id = 1 WHERE id = 1;
  109. UPDATE contracts
  110. SET car_brand_id = 2 WHERE id = 2;
  111. UPDATE contracts
  112. SET car_brand_id = 2 WHERE id = 6;
  113. UPDATE contracts
  114. SET car_brand_id = 2 WHERE id = 10;
  115. UPDATE contracts
  116. SET car_brand_id = 3 WHERE id = 3;
  117. UPDATE contracts
  118. SET car_brand_id = 4 WHERE id = 4;
  119. UPDATE contracts
  120. SET car_brand_id = 5 WHERE id = 5;
  121. UPDATE contracts
  122. SET car_brand_id = 6 WHERE id = 7;
  123. UPDATE contracts
  124. SET car_brand_id = 7 WHERE id = 8;
  125. UPDATE contracts
  126. SET car_brand_id = 8 WHERE id = 9;
  127.  
  128. -- SELECT * FROM contracts;
  129.  SELECT * FROM car_brands;
  130. --  DESC customers;

Editor

You can edit this paste and save as new:


File Description
  • Cars
  • Paste Code
  • 10 Dec-2023
  • 4.99 Kb
You can Share it: