├── README.md ├── spring-data ├── 19_XML.zip ├── 21_QNA.zip ├── 17_JSON.zip ├── 05_MiniORM.zip ├── 07_JPAIntro.zip ├── 23_MVC_Demo.zip ├── 03_JDBC_Intro.zip ├── 15_ModelMapper.zip ├── 07_HibernateIntro.zip ├── 09_CodeFirstHibernate.zip └── 14_AdvancedQuering_Exrcise.zip └── mysql ├── 03_datatypes_and_definitions.sql ├── 11_table_relations.sql ├── 09_aggregating_data.sql ├── 13_joins_subqueries.sql ├── 05_basic-crud.sql └── 07_built_in_functions.sql /README.md: -------------------------------------------------------------------------------- 1 | # 2024-jan-mysql-spring-data -------------------------------------------------------------------------------- /spring-data/19_XML.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/19_XML.zip -------------------------------------------------------------------------------- /spring-data/21_QNA.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/21_QNA.zip -------------------------------------------------------------------------------- /spring-data/17_JSON.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/17_JSON.zip -------------------------------------------------------------------------------- /spring-data/05_MiniORM.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/05_MiniORM.zip -------------------------------------------------------------------------------- /spring-data/07_JPAIntro.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/07_JPAIntro.zip -------------------------------------------------------------------------------- /spring-data/23_MVC_Demo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/23_MVC_Demo.zip -------------------------------------------------------------------------------- /spring-data/03_JDBC_Intro.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/03_JDBC_Intro.zip -------------------------------------------------------------------------------- /spring-data/15_ModelMapper.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/15_ModelMapper.zip -------------------------------------------------------------------------------- /spring-data/07_HibernateIntro.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/07_HibernateIntro.zip -------------------------------------------------------------------------------- /spring-data/09_CodeFirstHibernate.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/09_CodeFirstHibernate.zip -------------------------------------------------------------------------------- /spring-data/14_AdvancedQuering_Exrcise.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bankin/2024-jan-mysql-spring-data/HEAD/spring-data/14_AdvancedQuering_Exrcise.zip -------------------------------------------------------------------------------- /mysql/03_datatypes_and_definitions.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM employees; 2 | 3 | CREATE TABLE people ( 4 | id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 5 | email VARCHAR(50) NOT NULL, 6 | first_name VARCHAR(50), 7 | last_name VARCHAR(50) 8 | ); 9 | 10 | CREATE TABLE people_reverse ( 11 | id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, 12 | email VARCHAR(50) NOT NULL, 13 | first_name VARCHAR(50), 14 | last_name VARCHAR(50) 15 | ); 16 | 17 | USE gamebar; 18 | 19 | SELECT first_name, last_name 20 | FROM gamebar.employees 21 | LIMIT 2; 22 | 23 | CREATE TABLE employees( 24 | id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 25 | first_name VARCHAR(50) NOT NULL, 26 | last_name VARCHAR(50) NOT NULL 27 | ); 28 | 29 | CREATE TABLE categories( 30 | id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 31 | name VARCHAR(50) NOT NULL 32 | ); 33 | 34 | CREATE TABLE products( 35 | id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 36 | name VARCHAR(50) NOT NULL, 37 | category_id INT NOT NULL 38 | ); 39 | 40 | INSERT INTO employees VALUES (10, "Query", NULL); 41 | 42 | INSERT INTO employees (first_name, last_name) 43 | VALUES 44 | ("Field", "List"), 45 | ("Second", "Entry"), 46 | ("Third", "Employee"); 47 | 48 | SELECT * FROM employees; 49 | 50 | SELECT first_name, middle_name, last_name 51 | FROM employees; 52 | 53 | ALTER TABLE employees 54 | ADD COLUMN middle2_name VARCHAR(50) NOT NULL AFTER first_name; 55 | 56 | ALTER TABLE employees 57 | MODIFY COLUMN middle_name VARCHAR(100); 58 | 59 | -------------------------------------------------------------------------------- /mysql/11_table_relations.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE relations; 2 | USE relations; 3 | 4 | DROP TABLE mountains; 5 | CREATE TABLE mountains( 6 | id INT AUTO_INCREMENT PRIMARY KEY, 7 | name VARCHAR(50) NOT NULL 8 | ); 9 | 10 | DROP TABLE peaks; 11 | CREATE TABLE peaks( 12 | id INT AUTO_INCREMENT PRIMARY KEY, 13 | name VARCHAR(50) NOT NULL, 14 | mountain_id INT NOT NULL, 15 | CONSTRAINT fk_peaks_mountains 16 | FOREIGN KEY (mountain_id) 17 | REFERENCES mountains(id) 18 | ); 19 | 20 | INSERT INTO mountains(name) VALUES ("Pirin"), ("Rila"); 21 | INSERT INTO peaks(name, mountain_id) VALUES ("Musala", 2); 22 | INSERT INTO peaks(name, mountain_id) VALUES ("Vruh 2", 2); 23 | INSERT INTO peaks(name, mountain_id) VALUES ("Vihren", 3); 24 | 25 | SELECT * FROM mountains; 26 | SELECT * FROM peaks; 27 | 28 | UPDATE peaks SET mountain_id = 1 WHERE name = 'Vihren'; 29 | 30 | SELECT * 31 | FROM peaks 32 | JOIN mountains ON peaks.mountain_id = mountains.id; 33 | 34 | SELECT 35 | peaks.id, 36 | peaks.name AS 'Peak Name', 37 | mountains.name AS 'Mountain Name' 38 | FROM peaks 39 | JOIN mountains ON peaks.mountain_id = mountains.id; 40 | 41 | SELECT * FROM peaks WHERE name = 'Musala'; 42 | SELECT * FROM mountains WHERE id = 2; 43 | 44 | USE camp; 45 | SELECT * FROM campers; 46 | SELECT * FROM vehicles; 47 | 48 | SELECT 49 | vehicles.driver_id, 50 | vehicle_type, 51 | CONCAT(first_name, ' ', campers.last_name) AS 'driver_name' 52 | FROM vehicles 53 | JOIN campers ON campers.id = vehicles.driver_id; 54 | 55 | SELECT 56 | starting_point AS 'route_starting_point', 57 | end_point AS 'route_end_point', 58 | leader_id, 59 | CONCAT(first_name, ' ', last_name) AS 'leader_name' 60 | FROM routes 61 | JOIN campers ON routes.leader_id = campers.id; 62 | 63 | USE relations; 64 | SELECT * FROM mountains; 65 | SELECT * FROM peaks; 66 | 67 | DELETE FROM mountains WHERE id = 1; 68 | 69 | CREATE TABLE peaks( 70 | id INT AUTO_INCREMENT PRIMARY KEY, 71 | name VARCHAR(50) NOT NULL, 72 | mountain_id INT NOT NULL, 73 | CONSTRAINT fk_peaks_mountains 74 | FOREIGN KEY (mountain_id) 75 | REFERENCES mountains(id) 76 | ON DELETE CASCADE 77 | ); 78 | 79 | DELETE FROM peaks WHERE id = 4; 80 | DELETE FROM mountains WHERE id = 2; -------------------------------------------------------------------------------- /mysql/09_aggregating_data.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM departments; 2 | 3 | SELECT * FROM employees; 4 | 5 | SELECT * 6 | FROM employees 7 | GROUP BY department_id; 8 | 9 | SELECT department_id, SUM(salary) 10 | FROM employees 11 | GROUP BY department_id; 12 | 13 | SELECT department_id, COUNT(id) AS 'Number of employees' 14 | FROM employees 15 | GROUP BY department_id 16 | ORDER BY department_id; 17 | 18 | SELECT COUNT(id) FROM employees; 19 | 20 | SELECT * FROM hotel.clients; 21 | SELECT COUNT(id) FROM hotel.clients; 22 | SELECT COUNT(first_name) FROM hotel.clients; 23 | SELECT COUNT(*) FROM hotel.clients; 24 | 25 | CREATE TABLE `test_null_values` ( 26 | `id` int NOT NULL AUTO_INCREMENT, 27 | `name` varchar(45) DEFAULT NULL, 28 | `salary` int DEFAULT NULL, 29 | `department_id` int NOT NULL, 30 | PRIMARY KEY (`id`) 31 | ); 32 | 33 | SELECT department_id, SUM(int_value) 34 | FROM test_null_values 35 | GROUP BY department_id; 36 | 37 | SELECT department_id, MAX(salary) 38 | FROM test_null_values 39 | GROUP BY department_id; 40 | 41 | SELECT department_id, MIN(salary) 42 | FROM test_null_values 43 | GROUP BY department_id; 44 | 45 | SELECT department_id, AVG(salary) 46 | FROM test_null_values 47 | GROUP BY department_id; 48 | 49 | SELECT department_id, ROUND(AVG(salary), 2) 50 | FROM employees 51 | GROUP BY department_id 52 | ORDER BY department_id; 53 | 54 | SELECT 55 | department_id AS 'Dep', 56 | MIN(salary) AS 'MinSalary' 57 | FROM employees 58 | GROUP BY department_id 59 | HAVING `MinSalary` > 800; 60 | 61 | SELECT * FROM categories; 62 | 63 | SELECT * FROM products; 64 | 65 | SELECT COUNT(*) 66 | FROM products 67 | WHERE category_id = 2 AND price > 8; 68 | 69 | SELECT 70 | category_id, 71 | FORMAT(AVG(price), 2) AS 'Average Price', 72 | ROUND(MIN(price), 2) AS 'Cheapest Product', 73 | MAX(price) AS 'Most Expensive Product' 74 | FROM products 75 | GROUP BY category_id; 76 | 77 | SELECT COUNT(category_id) 78 | FROM products; 79 | 80 | SELECT COUNT(DISTINCT category_id) 81 | FROM products; 82 | 83 | SELECT DISTINCT category_id 84 | FROM products; 85 | 86 | SELECT 87 | category_id, 88 | ROUND(AVG(price),2) AS "Average Price", 89 | ROUND(MIN(price),2) AS "Cheapest Product", 90 | ROUND(MAX(price),2) AS "Most Expensive Product" 91 | FROM products; 92 | 93 | SELECT * FROM products; 94 | 95 | SELECT * 96 | FROM products 97 | WHERE 98 | name LIKE 'L%' OR 99 | name LIKE 'T%' OR 100 | name LIKE 'B%'; 101 | 102 | SELECT * 103 | FROM products 104 | WHERE name REGEXP '^[btl]'; 105 | -------------------------------------------------------------------------------- /mysql/13_joins_subqueries.sql: -------------------------------------------------------------------------------- 1 | SELECT * 2 | FROM employees 3 | JOIN departments ON employees.department_id = departments.id; 4 | 5 | SELECT * 6 | FROM employees 7 | JOIN departments; 8 | 9 | SELECT * 10 | FROM employees, departments; 11 | 12 | SELECT * 13 | FROM employees 14 | JOIN departments ON 1 = 1; 15 | 16 | SELECT * 17 | FROM employees 18 | JOIN departments ON employees.department_id = departments.id; 19 | 20 | SELECT 21 | employee_id, 22 | CONCAT(first_name, ' ', last_name) AS 'full_name', 23 | departments.department_id, 24 | name AS 'department_name' 25 | FROM departments 26 | JOIN employees ON departments.manager_id = employees.employee_id 27 | ORDER BY employee_id 28 | LIMIT 5; 29 | 30 | SELECT 31 | employee_id, 32 | CONCAT(first_name, ' ', last_name) AS 'full_name', 33 | d.department_id, 34 | name AS 'department_name' 35 | FROM departments AS d 36 | JOIN employees AS e ON d.manager_id = e.employee_id 37 | ORDER BY employee_id 38 | LIMIT 5; 39 | 40 | SELECT employee_id, first_name FROM employees 41 | 42 | UNION 43 | 44 | SELECT department_id, name FROM departments; 45 | 46 | SELECT * FROM departments; 47 | 48 | SELECT 49 | name, 50 | CONCAT(first_name, ' ', last_name) AS 'full_name' 51 | FROM departments AS d 52 | JOIN employees AS e ON e.employee_id = d.manager_id 53 | WHERE name = 'Sales' OR name = 'Marketing'; 54 | 55 | SELECT 56 | name, 57 | CONCAT(first_name, ' ', last_name) AS 'full_name' 58 | FROM departments AS d 59 | JOIN employees AS e ON e.employee_id = d.manager_id 60 | WHERE d.department_id IN ( 61 | SELECT department_id 62 | FROM departments 63 | WHERE name = 'Sales' OR name = 'Marketing' 64 | ); 65 | 66 | SELECT 'Sales'; 67 | 68 | SELECT department_id 69 | FROM departments 70 | WHERE name = (SELECT 'Sales') OR name = 'Marketing'; 71 | 72 | 73 | SELECT COUNT(*) AS 'count' 74 | FROM employees 75 | WHERE salary > ( 76 | SELECT AVG(salary) FROM employees 77 | ); 78 | 79 | SELECT 80 | a.town_id, 81 | t.name, 82 | a.address_text 83 | FROM addresses AS a 84 | JOIN towns AS t ON a.town_id = t.town_id 85 | WHERE t.name IN ('San Francisco', 'Sofia', 'Carnation') 86 | ORDER BY a.town_id, a.address_id; 87 | 88 | SELECT 89 | a.town_id, 90 | t.name, 91 | a.address_text 92 | FROM addresses AS a 93 | INNER JOIN towns AS t 94 | ON a.town_id = t.town_id AND 95 | t.name IN ('San Francisco', 'Sofia', 'Carnation') 96 | ORDER BY a.town_id, a.address_id; 97 | 98 | SELECT 99 | employee_id, 100 | first_name, 101 | last_name, 102 | department_id, 103 | salary 104 | FROM employees 105 | WHERE manager_id IS NULL; 106 | 107 | SELECT employee_id, AVG(address_id) 108 | FROM employees 109 | HAVING employee_id > AVG(address_id); 110 | 111 | SELECT COUNT(*) 112 | FROM employees; 113 | 114 | SELECT * FROM employees; 115 | 116 | SELECT 117 | e.employee_id, 118 | e.first_name, 119 | e.last_name, 120 | p.name 121 | FROM employees AS e 122 | JOIN employees_projects AS ep ON e.employee_id = ep.employee_id 123 | JOIN projects AS p ON ep.project_id = p.project_id 124 | ORDER BY e.employee_id; 125 | 126 | SELECT * 127 | FROM employees_projects 128 | WHERE employee_id = 1; 129 | 130 | SELECT 131 | e.employee_id, 132 | e.first_name, 133 | e.last_name, 134 | e.manager_id, 135 | m.employee_id, 136 | m.first_name, 137 | m.last_name 138 | FROM employees AS e 139 | JOIN employees AS m ON e.manager_id = m.employee_id; 140 | 141 | 142 | 143 | 144 | 145 | -------------------------------------------------------------------------------- /mysql/05_basic-crud.sql: -------------------------------------------------------------------------------- 1 | SELECT id, first_name, last_name, job_title 2 | FROM employees 3 | ORDER BY first_name, last_name; 4 | 5 | SELECT 6 | e.id AS 'No. ', 7 | e.first_name AS 'First Name', 8 | e.last_name AS 'Last Name', 9 | e.job_title AS 'Job Title' 10 | FROM `hotel`.employees AS e 11 | ORDER BY id; 12 | 13 | CREATE TABLE test_employees( 14 | id INT, 15 | `from` VARCHAR(40), 16 | `concat` VARCHAR(40) 17 | ); 18 | 19 | 20 | SELECT 21 | CONCAT('#', id, ' -> ', first_name, ' ', last_name) AS 'Details' 22 | FROM employees; 23 | 24 | SELECT * FROM rooms; 25 | SELECT * FROM clients; 26 | 27 | SELECT * 28 | FROM clients, rooms; 29 | 30 | 31 | SELECT 32 | CONCAT_WS(' ', first_name, last_name, job_title) AS 'Details' 33 | FROM employees; 34 | 35 | SELECT 36 | CONCAT(first_name, ' ', last_name) AS 'CONCAT', 37 | CONCAT_WS(' ', first_name, last_name) AS 'CONCAT_WS' 38 | FROM clients; 39 | 40 | SELECT 41 | id, 42 | CONCAT(first_name, ' ', last_name) AS 'full_name', 43 | job_title, 44 | salary 45 | FROM employees 46 | WHERE salary > 1000 47 | ORDER BY id; 48 | 49 | SELECT 50 | DISTINCT first_name 51 | FROM employees; 52 | 53 | SELECT * 54 | FROM employees 55 | WHERE salary > 1100 AND salary < 2000; 56 | 57 | SELECT * 58 | FROM employees 59 | WHERE salary BETWEEN 1100 AND 2000; 60 | 61 | SELECT 62 | DISTINCT department_id 63 | FROM employees 64 | WHERE salary < 1500; 65 | 66 | SELECT * 67 | FROM departments 68 | WHERE id NOT IN (1, 2, 3); 69 | 70 | SELECT * 71 | FROM employees 72 | WHERE NOT department_id = 1; 73 | 74 | SELECT * 75 | FROM employees 76 | WHERE salary > 1100 AND salary < 2000; 77 | 78 | SELECT * 79 | FROM employees 80 | WHERE department_id = 4 AND salary >= 1000 81 | ORDER BY id DESC, first_name, last_name DESC; 82 | 83 | SELECT * 84 | FROM clients 85 | WHERE first_name IS NOT NULL; 86 | 87 | CREATE VIEW v_employee_summary AS 88 | SELECT 89 | id, 90 | CONCAT(first_name, ' ', last_name) AS 'Full Name', 91 | job_title, 92 | salary 93 | FROM employees 94 | WHERE salary > 1000 95 | ORDER BY first_name, last_name; 96 | 97 | SELECT * 98 | FROM v_employee_summary; 99 | 100 | CREATE VIEW v_employee_summary AS 101 | SELECT 102 | id, 103 | CONCAT(first_name, ' ', last_name) AS 'Full Name', 104 | job_title, 105 | salary 106 | FROM employees 107 | WHERE salary > 1000 108 | ORDER BY first_name, last_name; 109 | 110 | DROP VIEW v_employee_summary; 111 | 112 | DROP TABLE employees; 113 | 114 | SELECT * 115 | FROM employees 116 | ORDER BY salary DESC 117 | LIMIT 1; 118 | 119 | CREATE VIEW v_top_paid_employee AS 120 | SELECT * 121 | FROM employees 122 | ORDER BY salary DESC 123 | LIMIT 1; 124 | 125 | SELECT * FROM v_top_paid_employee; 126 | 127 | CREATE TABLE test_clients AS 128 | SELECT id, first_name, room_id 129 | FROM clients 130 | WHERE first_name IS NOT NULL; 131 | 132 | SELECT * FROM test_clients; 133 | 134 | SELECT room_id, first_name 135 | FROM clients; 136 | 137 | INSERT INTO test_clients(first_name, room_id) 138 | SELECT first_name, room_id 139 | FROM clients 140 | WHERE first_name IS NOT NULL; 141 | 142 | 143 | UPDATE test_clients 144 | SET 145 | id = 3, 146 | first_name = CONCAT('Updated ', first_name) 147 | WHERE first_name = 'Gosho'; 148 | 149 | UPDATE employees 150 | SET 151 | salary = salary + 100 152 | WHERE 153 | job_title = 'Manager'; 154 | 155 | SELECT * 156 | FROM employees; 157 | 158 | DELETE FROM employees 159 | WHERE department_id = 1 OR department_id = 2; 160 | 161 | SELECT * 162 | FROM employees 163 | ORDER BY id; 164 | 165 | DELETE FROM employees 166 | WHERE department_id BETWEEN 1 AND 2; 167 | 168 | UPDATE employees 169 | SET salary = 100; 170 | -------------------------------------------------------------------------------- /mysql/07_built_in_functions.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | CONCAT(first_name, last_name) 3 | FROM employees 4 | WHERE first_name = CONCAT('Ja', 'ck'); 5 | 6 | SELECT * FROM employees WHERE first_name = 'Jack'; 7 | 8 | SELECT * FROM employees; 9 | 10 | INSERT INTO employees(first_name) 11 | VALUES (CONCAT('Mr. ', 'Pesho')); 12 | 13 | UPDATE employees 14 | SET first_name = CONCAT('value ', 'alabala') 15 | WHERE id = 9; 16 | 17 | SELECT CONCAT('Value', ' Other'); 18 | 19 | SELECT SUBSTRING('Very Long Text', 4, 5); 20 | SELECT SUBSTRING('Very Long Text' FROM 4 FOR 5); 21 | SELECT SUBSTR('Very Long Text' FROM 4 FOR 5); 22 | 23 | SELECT SUBSTRING(title, 1, 20) 24 | FROM books; 25 | 26 | SELECT CONCAT(SUBSTRING(title, 1, 20), '...') 27 | FROM books; 28 | 29 | SELECT title 30 | FROM books 31 | WHERE SUBSTRING(title, 1, 4) = 'the ' 32 | ORDER BY id; 33 | 34 | SELECT 35 | REPLACE(REPLACE('Some string', 's', 'WORKS'), 'S', 'works'); 36 | 37 | SELECT 38 | REPLACE(title, 'The', '***') AS 'title' 39 | FROM books 40 | WHERE SUBSTR(title, 1, 4) = 'The '; 41 | 42 | SELECT LTRIM(' after spaces'); 43 | SELECT LTRIM(' after tabs'); 44 | SELECT LTRIM(' 45 | 46 | after newline'); 47 | 48 | SELECT RTRIM(' alabala '); 49 | SELECT LTRIM(' alabala '); 50 | SELECT RTRIM(LTRIM(' alabala ')); 51 | 52 | SELECT LENGTH(title), CHAR_LENGTH(title) 53 | FROM books; 54 | 55 | SELECT LENGTH('асд'), CHAR_LENGTH('асд'); 56 | 57 | SELECT SUBSTRING('Pesho', 1, 3) = LEFT('Pesho', 3); 58 | SELECT SUBSTRING('Pesho', -3) = RIGHT('Pesho', 3); 59 | 60 | SELECT LOWER('Hello'), UPPER('Hello'); 61 | 62 | SELECT REVERSE('Hello'); 63 | 64 | SELECT REPEAT('Hello', 4); 65 | 66 | SELECT * 67 | FROM books 68 | WHERE LOCATE('the', title, 2) > 0; 69 | 70 | SELECT * 71 | FROM books 72 | WHERE LOCATE('the', title) = 0; 73 | 74 | SELECT INSERT('Some text', 3, 2, 're'); 75 | SELECT INSERT('Some text', 3, 6, 're'); 76 | SELECT INSERT('Some text', 3, 0, 're'); 77 | 78 | SELECT 7 DIV 2, 7 / 2; 79 | SELECT 7 MOD 2; 80 | SELECT 16 MOD 2; 81 | SELECT 28 MOD 5; 82 | 83 | -- 25 / 5 = 5 (0) 84 | -- 26 / 5 = 5 (1) 85 | -- 27 / 5 = 5 (2) 86 | -- 28 / 5 = 5 (3) 87 | -- 29 / 5 = 5 (4) 88 | -- 30 / 5 = 6 (0) 89 | 90 | SELECT PI(); 91 | SELECT ABS(-10), ABS(10); 92 | 93 | SELECT SQRT(16), SQRT(2); 94 | 95 | SELECT POW(2, 5), POW(14, 7); 96 | 97 | SELECT CONV(14, 10, 2); 98 | SELECT CONV(1110, 2, 10); 99 | 100 | SELECT ROUND(2.67), ROUND(2.67, 1), ROUND(2.67, 2), ROUND(2.67, 3); 101 | SELECT 102 | ROUND(156.37, -2), 103 | ROUND(156.37, -1), 104 | ROUND(156.37), 105 | ROUND(156.37, 1), 106 | ROUND(156.37, 2); 107 | 108 | SELECT FLOOR(1.2), CEILING(1.2); 109 | SELECT FLOOR(-3.4), CEILING(-3.4); 110 | 111 | SELECT SIGN(7), SIGN(0), SIGN(-9); 112 | 113 | SELECT FLOOR(RAND() * 6); 114 | 115 | -- [0, 1) * 6 116 | -- [0, 6) -> CEILING [1; 6] 117 | -- [0, 6) -> FLOOR [0; 5] 118 | -- [0, 1, 2, 3, 4, 5] 119 | 120 | SELECT FLOOR(RAND() * 14) + 13; 121 | 122 | -- [0; 1) * 28 123 | -- [0; 27] + 13 124 | -- [13; 40] 125 | 126 | -- [0; 1) * 14 127 | -- [0; 14] + 13 128 | -- [13; 27] 129 | 130 | -- [min; max] 131 | -- SELECT FLOOR(RAND() * (max - min)) + min; 132 | 133 | SELECT 134 | title, 135 | ROUND(cost, 1) 136 | FROM books; 137 | 138 | SELECT 139 | title, 140 | EXTRACT(DAY_MINUTE FROM year_of_release) 141 | FROM books; 142 | 143 | SELECT TIMESTAMPDIFF(DAY, '2024-01-01', '2024-01-16'); 144 | SELECT YEAR('2024-01-01'), EXTRACT(YEAR FROM '2024-01-01'); 145 | 146 | SELECT 147 | CONCAT(first_name, ' ', last_name) AS 'Full Name', 148 | ABS(TIMESTAMPDIFF(DAY, died, born)) AS 'Days Lived' 149 | FROM authors; 150 | 151 | SELECT TIMESTAMPDIFF(YEAR, '1236-01-01', '2000-01-01'); 152 | 153 | SELECT * FROM books; 154 | 155 | SELECT 156 | title, 157 | DATE_FORMAT(year_of_release, '%Y-%c/%e'), 158 | DATE_FORMAT(year_of_release, '%y [%m] %d') 159 | FROM books; 160 | 161 | SELECT NOW(); 162 | SELECT DATE_FORMAT(NOW(), '%Y-%c/%e'); 163 | 164 | SELECT * 165 | FROM books 166 | WHERE title LIKE '_%the%'; 167 | 168 | SELECT * 169 | FROM books 170 | WHERE title LIKE 'a%' OR title LIKE 'b%' OR title LIKE 'c%'; 171 | 172 | SELECT title 173 | FROM books 174 | WHERE title LIKE 'Harry Potter%' 175 | ORDER BY id; 176 | 177 | SELECT * 178 | FROM books 179 | WHERE title REGEXP '^\[^K\]{3}\$'; 180 | 181 | SELECT ROUND(SUM(cost), 2) 182 | FROM books; 183 | 184 | --------------------------------------------------------------------------------