Advertisement
desislava_topuzakova

Data Definition and Data Types - Exercise

Sep 16th, 2022
3,707
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 6.83 KB | None | 0 0
  1. Data Definition and Data Types - Exercise
  2.  
  3. 01. Create Tables
  4. CREATE TABLE `minions` (
  5.     id INT PRIMARY KEY AUTO_INCREMENT,
  6.     name VARCHAR(255),
  7.     age INT
  8. );
  9.  
  10. CREATE TABLE `towns` (
  11.     town_id INT PRIMARY KEY AUTO_INCREMENT,
  12.     name VARCHAR(255) NOT NULL
  13. );
  14.  
  15.  
  16. 02. Alter Minions Table
  17. ALTER TABLE `minions`
  18. ADD COLUMN `town_id` INT NOT NULL,
  19. ADD CONSTRAINT fk_minions_towns
  20. FOREIGN KEY (`town_id`)
  21. REFERENCES `towns` (`id`);
  22.  
  23.  
  24. 03. Insert Records in Both Tables
  25. INSERT INTO `towns`(`id`, `name`)
  26. VALUES (1, 'Sofia'), (2, "Plovdiv"), (3, "Varna");
  27.  
  28. INSERT INTO `minions` (`id`, `name`, `age`, `town_id`)
  29. VALUES (1, "Kevin", 22, 1),
  30.         (2, "Bob", 15, 3),
  31.         (3, "Steward", NULL, 2);
  32.  
  33.  
  34. 04. Truncate Table Minions
  35. TRUNCATE TABLE `minions`;
  36.  
  37. 05. Drop All Tables
  38. DROP TABLE `minions`;
  39. DROP TABLE `towns`;
  40.  
  41. 06. Create Table People
  42. CREATE TABLE `people` (
  43.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  44.     `name` VARCHAR(200) NOT NULL,
  45.     `picture` BLOB,
  46.     `height` DOUBLE(10, 2),
  47.     `weight` DOUBLE(10, 2),
  48.     `gender` CHAR(1) NOT NULL,
  49.     `birthdate` DATE NOT NULL,
  50.     `biography` TEXT
  51. );
  52.  
  53. INSERT INTO `people` (`name`, `gender`, `birthdate`)
  54. VALUES
  55.     ("Boris", 'm', DATE(NOW())),
  56.     ("Aleksandar", 'm', DATE(NOW())),
  57.     ("Dancho", 'm', DATE(NOW())),
  58.     ("Peter", 'm', DATE(NOW())),
  59.     ("Desi", 'f', DATE(NOW()));
  60.  
  61. 07. Create Table Users
  62. CREATE TABLE `users` (
  63.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  64.     `username` VARCHAR(30) NOT NULL,
  65.     `password` VARCHAR(26) NOT NULL,
  66.     `profile_picture` BLOB,
  67.     `last_login_time` TIME,
  68.     `is_deleted` BOOLEAN
  69. );
  70.  
  71. INSERT INTO `users` (`username`, `password`)
  72. VALUES
  73. ("pesho1", "1234"),
  74. ("ivan2", "gotinsam"),
  75. ("test", "tEST1234"),
  76. ("test1", "tEST1"),
  77. ("test4", "tEST5");
  78.  
  79. 08. Change Primary Key
  80. ALTER TABLE `users`
  81. DROP PRIMARY KEY,
  82. ADD PRIMARY KEY pk_users (`id`, `username`);
  83.  
  84. 9. Set Default Value of a Field
  85. ALTER TABLE `users`
  86. MODIFY COLUMN `last_login_time` DATETIME DEFAULT NOW();
  87.  
  88. 10. Set Unique Field
  89. ALTER TABLE `users`
  90. DROP PRIMARY KEY,
  91. ADD CONSTRAINT pk_users
  92. PRIMARY KEY `users` (`id`),
  93. MODIFY COLUMN `username` VARCHAR(30) UNIQUE;
  94.  
  95. 11. Movies Database
  96. CREATE TABLE `directors` (
  97.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  98.     `director_name` VARCHAR(50) NOT NULL,
  99.     `notes` TEXT
  100. );
  101.  
  102. INSERT INTO `directors`(`director_name`, `notes`)
  103. VALUES
  104. ('TestName1', 'TestNotes'),
  105. ('TestName2', 'TestNotes'),
  106. ('TestName3', 'TestNotes'),
  107. ('TestName4', 'TestNotes'),
  108. ('TestName5', 'TestNotes');
  109.  
  110. CREATE TABLE `genres` (
  111.     `id` INT PRIMARY KEY AUTO_INCREMENT ,
  112.     `genre_name` VARCHAR(20) NOT NULL,
  113.     `notes` TEXT
  114. );
  115.  
  116. INSERT INTO `genres`(`genre_name`, `notes`)
  117. VALUES
  118. ('TestName1', 'TestNotes'),
  119. ('TestName2', 'TestNotes'),
  120. ('TestName3', 'TestNotes'),
  121. ('TestName4', 'TestNotes'),
  122. ('TestName5', 'TestNotes');
  123.  
  124. CREATE TABLE `categories` (
  125.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  126.     `category_name` VARCHAR(20) NOT NULL,
  127.     `notes` TEXT
  128. );
  129.  
  130. INSERT INTO `categories`(`category_name`, `notes`)
  131. VALUES
  132. ('TestName1', 'TestNotes'),
  133. ('TestName2', 'TestNotes'),
  134. ('TestName3', 'TestNotes'),
  135. ('TestName4', 'TestNotes'),
  136. ('TestName5', 'TestNotes');
  137.  
  138. CREATE TABLE `movies` (
  139.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  140.     `title` VARCHAR(40) NOT NULL,
  141.     `director_id` INT,
  142.     `copyright_year` INT,
  143.     `length` INT,
  144.     `genre_id` INT,
  145.     `category_id` INT,
  146.     `rating` DOUBLE,
  147.     `notes` TEXT
  148. );
  149.  
  150. INSERT INTO `movies` (`title`)
  151. VALUES
  152. ('TestMovie1'),
  153. ('TestMovie2'),
  154. ('TestMovie3'),
  155. ('TestMovie4'),
  156. ('TestMovie5');
  157.  
  158. 12. Car Rental Database
  159. CREATE TABLE `categories` (
  160.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  161.     `category` VARCHAR(20),
  162.     `daily_rate` DOUBLE,
  163.     `weekly_rate` DOUBLE,
  164.     `monthly_rate` DOUBLE,
  165.     `weekend_rate` DOUBLE    
  166. );
  167.  
  168. INSERT INTO `categories` (`category`)
  169. VALUES
  170. ('TestName1'),
  171. ('TestName2'),
  172. ('TestName3');
  173.  
  174. CREATE TABLE `cars` (
  175.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  176.     `plate_number` VARCHAR(20),
  177.     `make` VARCHAR(20),
  178.     `model` VARCHAR(20),
  179.     `car_year` INT,
  180.     `category_id` INT,
  181.     `doors` INT,
  182.     `picture` BLOB,
  183.     `car_condition` VARCHAR(30),
  184.     `available` BOOLEAN  
  185. );
  186.  
  187. INSERT INTO `cars` (`plate_number`)
  188. VALUES
  189. ('TestName1'),
  190. ('TestName2'),
  191. ('TestName3');
  192.  
  193. CREATE TABLE `employees` (
  194.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  195.     `first_name` VARCHAR(50),
  196.     `last_name` VARCHAR(50),
  197.     `title` VARCHAR(50),
  198.     `notes` TEXT
  199. );
  200.  
  201. INSERT INTO `employees` (`first_name`, `last_name`)
  202. VALUES
  203. ('TestName1', 'TestName1'),
  204. ('TestName2', 'TestName2'),
  205. ('TestName3', 'TestName3');
  206.  
  207. CREATE TABLE `customers` (
  208.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  209.     `driver_license` VARCHAR(20),
  210.     `full_name` VARCHAR(50),
  211.     `address` VARCHAR(50),
  212.     `city` VARCHAR(10),
  213.     `zip_code` VARCHAR(10),
  214.     `notes` TEXT
  215. );
  216.  
  217. INSERT INTO `customers` (`driver_license`, `full_name`)
  218. VALUES
  219. ('TestName1', 'TestName1'),
  220. ('TestName2', 'TestName2'),
  221. ('TestName3', 'TestName3');
  222.  
  223. CREATE TABLE `rental_orders` (
  224.     `id` INT PRIMARY KEY AUTO_INCREMENT,
  225.     `employee_id` INT,
  226.     `customer_id` INT,
  227.     `car_id` INT,
  228.     `car_condition` VARCHAR(50),
  229.     `tank_level` VARCHAR(20),
  230.     `kilometrage_start` INT,
  231.     `kilometrage_end` INT,
  232.     `total_kilometrage` INT,
  233.     `start_date` DATE,
  234.     `end_date` DATE,
  235.     `total_days` INT,
  236.     `rate_applied` DOUBLE,
  237.     `tax_rate` DOUBLE,
  238.     `order_status` VARCHAR(20),
  239.     `notes` TEXT
  240. );
  241.  
  242. INSERT INTO `rental_orders` (`employee_id`, `customer_id`)
  243. VALUES
  244. (1, 2),
  245. (2, 3),
  246. (3, 1);
  247.  
  248.  
  249. 13. Basic Insert
  250. INSERT INTO `towns` (`name`)
  251. VALUES ("Sofia"), ("Plovdiv"), ("Varna"), ("Burgas");
  252.  
  253. INSERT INTO `departments` (`name`)
  254. VALUES ("Engineering"), ("Sales"), ("Marketing"), ("Software Development"), ("Quality Assurance");
  255.  
  256.  
  257. INSERT INTO `employees` (`first_name`, `middle_name`, `last_name`, `job_title`, `department_id`, `hire_date`, `salary`)
  258. VALUES
  259. ('Ivan', 'Ivanov', 'Ivanov', '.NET Developer', 4, '2013-02-01', 3500.00),
  260. ('Petar', 'Petrov', 'Petrov', 'Senior Engineer', 1, '2004-03-02', 4000.00),
  261. ('Maria', 'Petrova', 'Ivanova', 'Intern', 5, '2016-08-28', 525.25),
  262. ('Georgi', 'Terziev', 'Ivanov', 'CEO', 2, '2007-12-09', 3000.00),
  263. ('Peter', 'Pan', 'Pan', 'Intern', 3, '2016-08-28', 599.88);
  264.  
  265. 14. Basic Select All Fields
  266. SELECT * FROM `towns`;
  267. SELECT * FROM `departments`;
  268. SELECT * FROM `employees`;
  269.  
  270. 15. Basic Select All Fields and Order Them
  271. SELECT * FROM `towns`
  272. ORDER BY `name`;
  273. SELECT * FROM `departments`
  274. ORDER BY `name`;
  275. SELECT * FROM `employees`
  276. ORDER BY `salary` DESC;
  277.  
  278. 16. Basic Select Some Fields
  279. SELECT `name` FROM `towns`
  280. ORDER BY `name`;
  281. SELECT `name` FROM `departments`
  282. ORDER BY `name`;
  283. SELECT `first_name`, `last_name`, `job_title`, `salary` FROM `employees`
  284. ORDER BY `salary` DESC;
  285.  
  286. 17. Increase Employees Salary
  287. UPDATE `employees`
  288. SET `salary` = `salary` * 1.10;
  289. SELECT `salary` FROM `employees`;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement