├── .gitignore ├── hw1-mysql-RU.txt ├── hw1-mysql-UA.txt ├── hw2-mysql-RU.txt ├── hw2-mysql-UA.txt ├── lesson1.sql ├── lesson2.sql ├── lesson3.sql ├── resolve-hw1-mysql-RU.sql ├── resolve-hw1-mysql-UA.sql ├── resolve-hw2-mysql-RU.sql └── resolve-hw2-mysql-UA.sql /.gitignore: -------------------------------------------------------------------------------- 1 | .idea -------------------------------------------------------------------------------- /hw1-mysql-RU.txt: -------------------------------------------------------------------------------- 1 | найти все машины старше 2000 г 2 | найти все машины младше 2015 г 3 | найти все машины 2008, 2009, 2010 годов 4 | найти все машины не с этих годов 2008, 2009, 2010 годов 5 | найти все машины год которых совпадает с ценой 6 | 7 | найти все машины bmw старше 2014 года 8 | найти все машины audi младше 2014 года 9 | найти первые 5 машин 10 | найти последние 5 машин 11 | 12 | найти среднее арифметическое цен машин модели KIA 13 | найти среднее арифметическое цен каждой машины 14 | посчитать количество каждой марки машин 15 | найти марку машины количество которых больше всего 16 | 17 | найти все машины в модели которых вторая и предпоследняя буква "а" 18 | найти все машины модели которых больше 8 символов 19 | 20 | ***найти машины цена которых больше чем цена среднего арифметического всех машин 21 | 22 | -------------------------------------------------------------------------------- /hw1-mysql-UA.txt: -------------------------------------------------------------------------------- 1 | знайти всі машини старші за 2000 р. 2 | знайти всі машини молодші 2015 р. 3 | знайти всі машини 2008, 2009, 2010 років 4 | знайти всі машини не з цих років 2008, 2009, 2010 5 | знайти всі машини де year==price 6 | 7 | знайти всі машини bmw старші за 2014 р. 8 | знайти всі машини audi молодші 2014 р. 9 | знайти перші 5 машин 10 | знайти останні 5 машин 11 | 12 | знайти середнє арифметичне цін машини KIA 13 | знайти середнє арифметичне цін для кожної марки машин окремо 14 | підрахувати кількість кожної марки 15 | знайти марку машин кількість яких найбільше 16 | 17 | знайти марку машини в назві яких друга та передостання буква "a" 18 | знайти всі машини назва моделі яких більше за 8 символів 19 | 20 | 21 | ***знайти машини ціна котрих більше ніж ціна середнього арифметичного всіх машин 22 | -------------------------------------------------------------------------------- /hw2-mysql-RU.txt: -------------------------------------------------------------------------------- 1 | 1. Найти всех клиентов, чье имя меньше 6 символов 2 | 3 | 2. Выбрать львовские отделения банка. 4 | 5 | 3. Выбрать клиентов с высшим образованием и по сортировать их по фамилии. 6 | 7 | 4. Выполнить сортировку в обратном порядке над таблицей Заявка и вывести 5 последних записи. 8 | 9 | 5. Вывести всех клиентов, чья фамилия заканчивается на OV или OVA. 10 | 11 | 6. Вывести клиентов банка, которые обслуживаются киевскими отделениями. 12 | 13 | 7. Найти все имена клиентов без повторов. 14 | 15 | 8. Вывести данные про клиентов, которые имеют кредиты больше чем 5000 гривен. 16 | 17 | 9. Посчитать количество клиентов всех отделений и только львовских отделений. 18 | 19 | 10. Найти кредиты, которые имеют самую большую сумму для каждого клиента отдельно. 20 | 21 | 11. Посчитать количество заявок на кредит для каждого клиента. 22 | 23 | 12. Найти наибольший и наименьший кредиты. 24 | 25 | 13. Подсчитать количество кредитов для клиентов, которые имеют высшее образование. 26 | 27 | 14. Вывести данные про клиента, у которого наибольшая средняя сумма кредитов. 28 | 29 | 15. Вывести отделение, которое выдало в кредити больше всего денег. 30 | 31 | 16. Вывести отделение, которое выдало самый большой кредит. 32 | 33 | 17. Все клиентам, которые имею высшее образование, установить все их кредити в размене 6000грн. 34 | 35 | 18. Всех клиентов киевских отделений пересилить в Киев. 36 | 37 | 19. Удалить все возвращенные кредити. 38 | 39 | 20. Удалить кредити клиентов, у которых вторая буква фамилии гласная. 40 | 41 | 21. Найти львовские отделения, которые выдали кредитов на общую сумму больше чем 5000 42 | 43 | 22. Найти клиентов, которые погасили кредиты на сумму больше чем 5000 44 | 45 | 23. Найти наибольший невозвращенный кредит. 46 | 47 | 24. Найти клиента с наименьшей суммой кредита 48 | 49 | 25. Найти кредиты, сумма которых больше за среднее арифметическое всех кредитов. 50 | 51 | 26. Найти клиентов с того же самого города, что и клиент который взял наибольшее количество кредитов. 52 | 53 | 27. Найти город клиента с самим большим количеством кредитов. 54 | -------------------------------------------------------------------------------- /hw2-mysql-UA.txt: -------------------------------------------------------------------------------- 1 | 1.Вибрати усіх клієнтів, чиє ім'я має менше ніж 6 символів. 2 | 3 | 2.Вибрати львівські відділення банку. 4 | 5 | 3.Вибрати клієнтів з вищою освітою та посортувати по прізвищу. 6 | 7 | 4.Виконати сортування у зворотньому порядку над таблицею Заявка і вивести 5 останніх елементів. 8 | 9 | 5.Вивести усіх клієнтів, чиє прізвище закінчується на OV чи OVA. 10 | 11 | 6.Вивести клієнтів банку, які обслуговуються київськими відділеннями. 12 | 13 | 7.Знайти унікальні імена клієнтів. 14 | 15 | 8.Вивести дані про клієнтів, які мають кредит більше ніж на 5000 гривень. 16 | 17 | 9.Порахувати кількість клієнтів усіх відділень та лише львівських відділень. 18 | 19 | 10.Знайти кредити, які мають найбільшу суму для кожного клієнта окремо. 20 | 21 | 11. Визначити кількість заявок на крдеит для кожного клієнта. 22 | 23 | 12. Визначити найбільший та найменший кредити. 24 | 25 | 13. Порахувати кількість кредитів для клієнтів,які мають вищу освіту. 26 | 27 | 14. Вивести дані про клієнта, в якого середня сума кредитів найвища. 28 | 29 | 15. Вивести відділення, яке видало в кредити найбільше грошей 30 | 31 | 16. Вивести відділення, яке видало найбільший кредит. 32 | 33 | 17. Усім клієнтам, які мають вищу освіту, встановити усі їхні кредити у розмірі 6000 грн. 34 | 35 | 18. Усіх клієнтів київських відділень пересилити до Києва. 36 | 37 | 19. Видалити усі кредити, які є повернені. 38 | 39 | 20. Видалити кредити клієнтів, в яких друга літера прізвища є голосною. 40 | 41 | 21.Знайти львівські відділення, які видали кредитів на загальну суму більше ніж 5000 42 | 43 | 22.Знайти клієнтів, які повністю погасили кредити на суму більше ніж 5000 44 | 45 | 23.Знайти максимальний неповернений кредит. 46 | 47 | 24.Знайти клієнта, сума кредиту якого найменша 48 | 49 | 25.Знайти кредити, сума яких більша за середнє значення усіх кредитів 50 | 51 | 26. Знайти клієнтів, які є з того самого міста, що і клієнт, який взяв найбільшу кількість кредитів 52 | 53 | 27. Місто клієнта з найбільшою кількістю кредитів 54 | -------------------------------------------------------------------------------- /lesson1.sql: -------------------------------------------------------------------------------- 1 | show databases; 2 | use lkjh; 3 | 4 | select * from cars; 5 | select id, model from cars; 6 | select * from users where name = 'OleG'; 7 | select * from users where name !='OleG'; 8 | select * from users where name like 'o%'; 9 | select * from users where name like '%o%'; 10 | select * from users where name like '%a'; 11 | select * from users where name like '__e%'; 12 | 13 | select * from users where age = 30; 14 | select * from users where age != 30; 15 | select * from users where age between 20 and 30; 16 | select * from users where age not between 20 and 30; 17 | select * from users where age>=20 and age<=30; 18 | select * from users where age>=20 and age<=30 and gender ='male' or age=33; 19 | select * from users where age in (25, 33, 36, 18, 16, 100); 20 | select * from users where age not in (25, 33, 36, 18, 16, 100); 21 | 22 | 23 | select * from users where length(name)<4; 24 | 25 | 26 | select * from users order by id ; 27 | select * from users where age> 20 order by id ; 28 | 29 | select * from users limit 5 offset 15; 30 | 31 | select * from users order by age, name desc ; 32 | 33 | 34 | # max() 35 | # min() 36 | # avg() 37 | # count() 38 | # sum() 39 | 40 | select min(age) as minAge from users; 41 | select max(age) as maxAge from users; 42 | select avg(age) as avgAge from users; 43 | select sum(age) as sumAge from users; 44 | select count(*) as sumAge from users where age>20; 45 | 46 | 47 | select min(age), gender from users where age>25 group by gender; 48 | select max(age), gender from users where age>25 group by gender; 49 | select * from users where age> (select avg(age) from users where age>25 and gender='male' group by gender) 50 | select count(*), gender from users where age>25 group by gender having count(*)>2; 51 | 52 | 53 | 54 | drop table users; 55 | 56 | create table users( 57 | id int primary key auto_increment, 58 | name varchar(20) not null , 59 | age int not null 60 | ); 61 | 62 | insert into users (name, age) values ('Kiril', 15); 63 | 64 | update users set name='Orest' where id=2; 65 | 66 | delete from users where id in (1,3,4) -------------------------------------------------------------------------------- /lesson2.sql: -------------------------------------------------------------------------------- 1 | use lkjh; 2 | select distinct name, age from users; 3 | 4 | select avg(age), sum(age) from users; 5 | 6 | select avg(age) from users 7 | union 8 | select sum(age) from users; 9 | 10 | select id, price, price*2 as doublePrice from cars; 11 | 12 | select concat('My name is ',name, ' I`m ', age, 'gender - ',gender) as strings from users; 13 | select * from users where concat('My name is ',name, ' I`m ', age, 'gender - ',gender)='My name is Max I`m 16gender - male'; 14 | 15 | select * from users where name < 'max'; 16 | 17 | select * from users where age = id+17; 18 | 19 | select lower(name) from users; 20 | select upper(name) from users; 21 | 22 | 23 | select * from application 24 | join client on client.idClient = application.Client_idClient 25 | where FirstName='Roman'; 26 | 27 | select client.*, application.CreditState from application 28 | join client on client.idClient = application.Client_idClient 29 | where FirstName='Roman'; 30 | 31 | select a.*, client.FirstName, d.DepartmentCity from client 32 | join lkjh.application a on client.idClient = a.Client_idClient 33 | join lkjh.department d on d.idDepartment = client.Department_idDepartment; 34 | 35 | create table cities( 36 | id int primary key auto_increment, 37 | city varchar(20) not null 38 | ); 39 | 40 | create table users( 41 | id int primary key auto_increment, 42 | name varchar(20) not null , 43 | age int not null , 44 | city_id int null , 45 | foreign key (city_id) references cities(id) 46 | ); 47 | 48 | 49 | select users.*, c.city from users 50 | join cities c on c.id = users.city_id 51 | where city='lviv'; 52 | 53 | select * from users 54 | join cities c on c.id = users.city_id; 55 | 56 | select * from users left join cities as c on c.id = users.city_id; 57 | select * from users right join cities as c on c.id = users.city_id; 58 | 59 | 60 | select model from cars group by model order by count(*) desc limit 1; 61 | 62 | select max(price), count(*), model from cars group by model; 63 | 64 | select count(*) from cars GROUP BY model; 65 | 66 | -------------------------------------------------------------------------------- /lesson3.sql: -------------------------------------------------------------------------------- 1 | create table skills 2 | ( 3 | id int primary key auto_increment, 4 | skill varchar(20) not null 5 | ); 6 | 7 | create table users 8 | ( 9 | id int auto_increment primary key, 10 | username varchar(50) not null, 11 | password varchar(255) not null 12 | ); 13 | 14 | create table users_skills 15 | ( 16 | # id int primary key auto_increment, 17 | user_id int not null, 18 | skill_id int not null, 19 | # primary key (id), 20 | foreign key (user_id) references users (id), 21 | foreign key (skill_id) references skills (id) 22 | ); 23 | 24 | 25 | select p.*, s.skill 26 | from users 27 | join users_skills us on users.id = us.user_id 28 | join skills s on s.id = us.skill_id 29 | join profile p on users.id = p.user_id 30 | where username = 'Kokos_87'; 31 | 32 | create table profile 33 | ( 34 | id int primary key auto_increment, 35 | name varchar(25) not null, 36 | age int not null, 37 | user_id int not null unique, 38 | foreign key (user_id) references users (id) 39 | ); -------------------------------------------------------------------------------- /resolve-hw1-mysql-RU.sql: -------------------------------------------------------------------------------- 1 | # найти все машины старше 2000 г 2 | select * from cars where year > 2000; 3 | # найти все машины младше 2015 г 4 | select * from cars where year < 2015; 5 | # найти все машины 2008, 2009, 2010 годов 6 | select * from cars where year in(2008,2009,2010); 7 | # найти все машины не с этих годов 2008, 2009, 2010 годов 8 | select * from cars where year not in(2008,2009,2010); 9 | # найти все машины год которых совпадает с ценой 10 | select * from cars where year = price; 11 | # 12 | # найти все машины bmw старше 2014 года 13 | select * from cars where model='bmw' and year > 2014; 14 | # найти все машины audi младше 2014 года 15 | select * from cars where model='audi' and year < 2014; 16 | # найти первые 5 машин 17 | select * from cars limit 5; 18 | # найти последнии 5 машин 19 | select * from cars order by id desc limit 5; 20 | # 21 | # найти среднее арифметическое цен машин модели KIA 22 | select avg(price), model from cars where model='kia'; 23 | # найти среднее арифметическое цен каждой машины 24 | select avg(price), model from cars group by model; 25 | # посчитать количество каждой марки машин 26 | select count(*), model from cars group by model; 27 | # найти марку машины количество которых больше всего 28 | select count(*) as count, model from cars group by model order by count desc limit 1; 29 | # 30 | # найти все машины в модели которых вторая и предпоследняя буква "а" 31 | select * from cars where model like '_a%a_'; 32 | # найти все машины модели которых больше 8 символов 33 | select * from cars where length(model)>8; 34 | # ***найти машины цена которых больше чем цена среднего арифметического всех машин 35 | select * from cars where price > (select avg(price) from cars) 36 | -------------------------------------------------------------------------------- /resolve-hw1-mysql-UA.sql: -------------------------------------------------------------------------------- 1 | # знайти всі машини старші за 2000 р. 2 | select * from cars where year > 2000; 3 | # знайти всі машини молодші 2015 р. 4 | select * from cars where year < 2015; 5 | # знайти всі машини 2008, 2009, 2010 років 6 | select * from cars where year in(2008,2009,2010); 7 | # знайти всі машини не з цих років 2008, 2009, 2010 8 | select * from cars where year not in(2008,2009,2010); 9 | # знайти всі машини де year==price 10 | select * from cars where year = price; 11 | # знайти всі машини bmw старші за 2014 р. 12 | select * from cars where model='bmw' and year > 2014; 13 | # знайти всі машини audi молодші 2014 р. 14 | select * from cars where model='audi' and year < 2014; 15 | # знайти перші 5 машин 16 | select * from cars limit 5; 17 | # знайти останні 5 машин 18 | select * from cars order by id desc limit 5; 19 | # знайти середнє арифметичне цін машини KIA 20 | select avg(price), model from cars where model='kia'; 21 | # знайти середнє арифметичне цін для кожної марки машин окремо 22 | select avg(price), model from cars group by model; 23 | # підрахувати кількість кожної марки 24 | select count(*), model from cars group by model; 25 | # знайти марку машин кількість яких найбільше 26 | select count(*) as count, model from cars group by model order by count desc limit 1; 27 | # знайти марку машини в назві яких друга та передостання буква "a" 28 | select * from cars where model like '_a%a_'; 29 | # знайти всі машини назва моделі яких більше за 8 символів 30 | select * from cars where length(model)>8; 31 | 32 | 33 | # ***знайти машини ціна котрих більше ніж ціна середнього арифметичного всіх машин 34 | select * from cars where price > (select avg(price) from cars) 35 | -------------------------------------------------------------------------------- /resolve-hw2-mysql-RU.sql: -------------------------------------------------------------------------------- 1 | # 1. Найти всех клиентов, чье имя меньше 6 символов 2 | select * 3 | from client 4 | where length(FirstName) < 6; 5 | # 2. Выбрать львовские отделения банка. 6 | select * 7 | from department 8 | where DepartmentCity = 'lviv'; 9 | # 3. Выбрать клиентов с высшим образованием и по сортировать их по фамилии. 10 | select * 11 | from client 12 | where Education = 'high' 13 | order by LastName; 14 | # 4. Выполнить сортировку в обратном порядке над таблицей Заявка и вывести 5 последних записи. 15 | select * 16 | from application 17 | order by idApplication desc 18 | limit 5; 19 | # 5. Вывести всех клиентов, чья фамилия заканчивается на OV или OVA. 20 | select * 21 | from client 22 | where LastName like '%ov' 23 | or LastName like '%ova'; 24 | # 6. Вывести клиентов банка, которые обслуживаются киевскими отделениями. 25 | select idClient, FirstName, LastName, DepartmentCity 26 | from client 27 | join department d on d.idDepartment = client.Department_idDepartment 28 | where DepartmentCity = 'Kyiv'; 29 | # 7. Найти все имена клиентов без повторов. 30 | select distinct FirstName 31 | from client; 32 | # 8. Вывести данные про клиентов, которые имеют кредиты больше чем 5000 гривен. 33 | select distinct client.* 34 | from client 35 | join application a on client.idClient = a.Client_idClient 36 | where Sum > 5000; 37 | # 9. Посчитать количество клиентов всех отделений и только львовских отделений. 38 | select count(*) as all_lviv 39 | from client 40 | join department d on d.idDepartment = client.Department_idDepartment; 41 | 42 | select count(*) 43 | from client 44 | join department d2 on d2.idDepartment = client.Department_idDepartment 45 | where DepartmentCity = 'lviv'; 46 | # or 47 | select (select count(*) 48 | from client 49 | join department d on d.idDepartment = client.Department_idDepartment) as all_count, 50 | (select count(*) 51 | from client 52 | join department d on d.idDepartment = client.Department_idDepartment 53 | where DepartmentCity = 'lviv') as lviv_count; 54 | # 10. Найти кредиты, которые имеют самую большую сумму для каждого клиента отдельно. 55 | select max(Sum) as max_credit, client.* 56 | from client 57 | join application a on client.idClient = a.Client_idClient 58 | group by idClient; 59 | # 11. Посчитать количество заявок на кредит для каждого клиента. 60 | select count(*), idClient, FirstName, LastName 61 | from client 62 | join application a on client.idClient = a.Client_idClient 63 | group by idClient; 64 | # 12. Найти наибольший и наименьший кредиты. 65 | select min(Sum) as min, max(Sum) as max 66 | from application; 67 | # 13. Подсчитать количество кредитов для клиентов, которые имеют высшее образование. 68 | select count(*), idClient, FirstName, LastName, Education 69 | from client 70 | join application a on client.idClient = a.Client_idClient 71 | where Education = 'high' 72 | group by idClient; 73 | #14. Вывести данные про клиента, у которого наибольшая средняя сумма кредитов. 74 | select avg(Sum) as avg, client.* 75 | from client 76 | join application a on client.idClient = a.Client_idClient 77 | group by idClient 78 | order by avg desc 79 | limit 1; 80 | # 15. Вывести отделение, которое выдало в кредити больше всего денег. 81 | select sum(Sum) as sum, idDepartment, DepartmentCity 82 | from department 83 | join client c on department.idDepartment = c.Department_idDepartment 84 | join application a on c.idClient = a.Client_idClient 85 | group by idDepartment 86 | order by sum desc 87 | limit 1; 88 | # 16. Вывести отделение, которое выдало самый большой кредит. 89 | select max(Sum) as max_sum, department.* 90 | from department 91 | join client c on department.idDepartment = c.Department_idDepartment 92 | join application a on c.idClient = a.Client_idClient 93 | group by idDepartment 94 | order by max_sum desc 95 | limit 1; 96 | # 17. Все клиентам, которые имею высшее образование, установить все их кредити в размене 6000грн. 97 | update application join client c on c.idClient = application.Client_idClient 98 | set Sum=6000 99 | where Education = 'high'; 100 | # 18. Всех клиентов киевских отделений пересилить в Киев. 101 | update client join department d on d.idDepartment = client.Department_idDepartment 102 | set City='Kyiv' 103 | where DepartmentCity = 'kyiv'; 104 | 105 | # 19. Удалить все возвращенные кредити. 106 | delete application 107 | from application 108 | where CreditState = 'Returned'; 109 | # 20. Удалить кредити клиентов, у которых вторая буква фамилии гласная. 110 | delete application 111 | from application 112 | join client c on c.idClient = application.Client_idClient 113 | where 114 | LastName like '_e%' or 115 | LastName like '_y%' or 116 | LastName like '_u%' or 117 | LastName like '_o%' or 118 | LastName like '_a%'; 119 | 120 | #or 121 | 122 | delete application 123 | from application 124 | join client c on c.idClient = application.Client_idClient 125 | where LastName regexp '^.[eyuoa].*'; 126 | # 21. Найти львовские отделения, которые выдали кредитов на общую сумму больше чем 5000 127 | select sum(Sum) as sum, DepartmentCity,idDepartment 128 | from department 129 | join client c on department.idDepartment = c.Department_idDepartment 130 | join application a on c.idClient = a.Client_idClient 131 | where DepartmentCity = 'lviv' 132 | group by idDepartment 133 | having sum(Sum) > 5000; 134 | # 22. Найти клиентов, которые погасили кредиты на сумму больше чем 5000 135 | select idClient, FirstName, LastName, CreditState, Sum 136 | from client 137 | join application a on client.idClient = a.Client_idClient 138 | where CreditState = 'Returned' 139 | and Sum > 5000; 140 | # 23. Найти наибольший невозвращенный кредит. 141 | select application.* 142 | from application 143 | where CreditState = 'Not returned' 144 | order by Sum desc 145 | limit 1; 146 | # 24. Найти клиента с наименьшей суммой кредита 147 | select client.*, Sum 148 | from client 149 | join application a on client.idClient = a.Client_idClient 150 | order by Sum 151 | limit 1; 152 | # 25. Найти кредиты, сумма которых больше за среднее арифметическое всех кредитов. 153 | select * 154 | from application 155 | where Sum > (select avg(Sum) from application); 156 | # 26. Найти клиентов с того же самого города, что и клиент который взял наибольшее количество кредитов. 157 | select * 158 | from client 159 | where City = ( 160 | select c.City 161 | from client c 162 | join application a on c.idclient = a.client_idclient 163 | group by idclient 164 | order by count(*) desc 165 | limit 1 166 | ); 167 | # 27. Найти город клиента с самим большим количеством кредитов. 168 | select c.City 169 | from client c 170 | join application a on c.idclient = a.client_idclient 171 | group by idclient 172 | order by count(*) desc 173 | limit 1; 174 | -------------------------------------------------------------------------------- /resolve-hw2-mysql-UA.sql: -------------------------------------------------------------------------------- 1 | # 1.Вибрати усіх клієнтів, чиє ім'я має менше ніж 6 символів. 2 | select * 3 | from client 4 | where length(FirstName) < 6; 5 | # 2.Вибрати львівські відділення банку. 6 | select * 7 | from department 8 | where DepartmentCity = 'lviv'; 9 | # 3.Вибрати клієнтів з вищою освітою та посортувати по прізвищу. 10 | select * 11 | from client 12 | where Education = 'high' 13 | order by LastName; 14 | # 4.Виконати сортування у зворотньому порядку над таблицею Заявка і вивести 5 останніх елементів. 15 | select * 16 | from application 17 | order by idApplication desc 18 | limit 5; 19 | # 5.Вивести усіх клієнтів, чиє прізвище закінчується на OV чи OVA. 20 | select * 21 | from client 22 | where LastName like '%ov' 23 | or LastName like '%ova'; 24 | # 6.Вивести клієнтів банку, які обслуговуються київськими відділеннями. 25 | select idClient, FirstName, LastName, DepartmentCity 26 | from client 27 | join department d on d.idDepartment = client.Department_idDepartment 28 | where DepartmentCity = 'Kyiv'; 29 | # 7.Знайти унікальні імена клієнтів. 30 | select distinct FirstName 31 | from client; 32 | # 8.Вивести дані про клієнтів, які мають кредит більше ніж на 5000 тисяч гривень. 33 | select distinct client.* 34 | from client 35 | join application a on client.idClient = a.Client_idClient 36 | where Sum > 5000; 37 | # 9.Порахувати кількість клієнтів усіх відділень та лише львівських відділень. 38 | select count(*) as all_lviv 39 | from client 40 | join department d on d.idDepartment = client.Department_idDepartment; 41 | 42 | select count(*) 43 | from client 44 | join department d2 on d2.idDepartment = client.Department_idDepartment 45 | where DepartmentCity = 'lviv'; 46 | # or 47 | select (select count(*) 48 | from client 49 | join department d on d.idDepartment = client.Department_idDepartment) as all_count, 50 | (select count(*) 51 | from client 52 | join department d on d.idDepartment = client.Department_idDepartment 53 | where DepartmentCity = 'lviv') as lviv_count; 54 | # 10.Знайти кредити, які мають найбільшу суму для кожного клієнта окремо. 55 | select max(Sum) as max_credit, client.* 56 | from client 57 | join application a on client.idClient = a.Client_idClient 58 | group by idClient; 59 | # 11. Визначити кількість заявок на крдеит для кожного клієнта. 60 | select count(*), idClient, FirstName, LastName 61 | from client 62 | join application a on client.idClient = a.Client_idClient 63 | group by idClient; 64 | # 12. Визначити найбільший та найменший кредити. 65 | select min(Sum) as min, max(Sum) as max 66 | from application; 67 | # 13. Порахувати кількість кредитів для клієнтів,які мають вищу освіту. 68 | select count(*), idClient, FirstName, LastName, Education 69 | from client 70 | join application a on client.idClient = a.Client_idClient 71 | where Education = 'high' 72 | group by idClient; 73 | # 14. Вивести дані про клієнта, в якого середня сума кредитів найвища. 74 | select avg(Sum) as avg, client.* 75 | from client 76 | join application a on client.idClient = a.Client_idClient 77 | group by idClient 78 | order by avg desc 79 | limit 1; 80 | # 15. Вивести відділення, яке видало в кредити найбільше грошей 81 | select sum(Sum) as sum, idDepartment, DepartmentCity 82 | from department 83 | join client c on department.idDepartment = c.Department_idDepartment 84 | join application a on c.idClient = a.Client_idClient 85 | group by idDepartment 86 | order by sum desc 87 | limit 1; 88 | # 16. Вивести відділення, яке видало найбільший кредит. 89 | select max(Sum) as max_sum, department.* 90 | from department 91 | join client c on department.idDepartment = c.Department_idDepartment 92 | join application a on c.idClient = a.Client_idClient 93 | group by idDepartment 94 | order by max_sum desc 95 | limit 1; 96 | # 17. Усім клієнтам, які мають вищу освіту, встановити усі їхні кредити у розмірі 6000 грн. 97 | update application join client c on c.idClient = application.Client_idClient 98 | set Sum=6000 99 | where Education = 'high'; 100 | # 18. Усіх клієнтів київських відділень пересилити до Києва. 101 | update client join department d on d.idDepartment = client.Department_idDepartment 102 | set City='Kyiv' 103 | where DepartmentCity = 'kyiv'; 104 | 105 | # 19. Видалити усі кредити, які є повернені. 106 | delete application 107 | from application 108 | where CreditState = 'Returned'; 109 | # 20. Видалити кредити клієнтів, в яких друга літера прізвища є голосною. 110 | delete application 111 | from application 112 | join client c on c.idClient = application.Client_idClient 113 | where 114 | LastName like '_e%' or 115 | LastName like '_y%' or 116 | LastName like '_u%' or 117 | LastName like '_o%' or 118 | LastName like '_a%'; 119 | 120 | #or 121 | 122 | delete application 123 | from application 124 | join client c on c.idClient = application.Client_idClient 125 | where LastName regexp '^.[eyuoa].*'; 126 | # 21.Знайти львівські відділення, які видали кредитів на загальну суму більше ніж 5000 127 | select sum(Sum) as sum, DepartmentCity,idDepartment 128 | from department 129 | join client c on department.idDepartment = c.Department_idDepartment 130 | join application a on c.idClient = a.Client_idClient 131 | where DepartmentCity = 'lviv' 132 | group by idDepartment 133 | having sum(Sum) > 5000; 134 | # 22.Знайти клієнтів, які повністю погасили кредити на суму більше ніж 5000 135 | select idClient, FirstName, LastName, CreditState, Sum 136 | from client 137 | join application a on client.idClient = a.Client_idClient 138 | where CreditState = 'Returned' 139 | and Sum > 5000; 140 | # 23.Знайти максимальний неповернений кредит. 141 | select application.* 142 | from application 143 | where CreditState = 'Not returned' 144 | order by Sum desc 145 | limit 1; 146 | # 24.Знайти клієнта, сума кредиту якого найменша 147 | select client.*, Sum 148 | from client 149 | join application a on client.idClient = a.Client_idClient 150 | order by Sum 151 | limit 1; 152 | # 25.Знайти кредити, сума яких більша за середнє значення усіх кредитів 153 | select * 154 | from application 155 | where Sum > (select avg(Sum) from application); 156 | # 26. Знайти клієнтів, які є з того самого міста, що і клієнт, який взяв найбільшу кількість кредитів 157 | select * 158 | from client 159 | where City = ( 160 | select c.City 161 | from client c 162 | join application a on c.idclient = a.client_idclient 163 | group by idclient 164 | order by count(*) desc 165 | limit 1 166 | ); 167 | # 27. Місто клієнта з найбільшою кількістю кредитів 168 | select c.City 169 | from client c 170 | join application a on c.idclient = a.client_idclient 171 | group by idclient 172 | order by count(*) desc 173 | limit 1; 174 | --------------------------------------------------------------------------------