Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.00 KB | None | 0 0
  1. 2.  Добавить «Can't Stop The Feeling» исполнителя Jonas Blue продолжительностью 253 секунды, трек записан 5 августа 2016 в среднем качестве
  2. */
  3. use mybase;
  4. begin;
  5. insert into songs(name , quality, duration) values("can not stop the feeling","medium",253);
  6. select last_insert_id() into @sonvar;
  7. select sin_id from singers where name = "jonas blue" into @sinvar;
  8. insert into albums(debut) values("2016-08-05");
  9. select last_insert_id() into @albvar;
  10. insert into id_s values(@sinvar,@sonvar,@albvar);
  11. commit;
  12. /*
  13. 3.  Переименовать песню «Thinking About It  - Nathan Goshen» в «Let It Go»
  14. */
  15. begin;
  16. update (id_s inner join songs on id_s.song_id = songs.son_id) inner join singers on id_s.singer_id = singers.sin_id
  17. set songs.name = "let it go"
  18. where singers.name = "nathan goshen";
  19. rollback;
  20. /*
  21. 4.  Удалить колонку «e-mail», создать колонку «Сайт» задав по умолчанию значение «нет»
  22. */
  23. begin;
  24. alter table singers drop column email;
  25. alter table singers add web_page varchar(30) default "none";
  26. rollback;
  27. /*
  28. 5.  Вывести все песни и если есть информация, то и  исполнителя и альбом
  29. */
  30. begin;
  31. select songs.name , singers.name as singer , albums.name as album
  32. from ((id_s inner join songs on id_s.song_id = songs.son_id) left join singers on id_s.singer_id = singers.sin_id) left join albums on id_s.album_id = albums.al_id;
  33. rollback;
  34. /*
  35. 6.  Вывести все песни, у которых в названии альбома есть «way»
  36. */
  37. select songs.name
  38. from (id_s inner join songs on id_s.song_id = songs.son_id) left join albums on id_s.album_id = albums.al_id
  39. where  albums.name regexp "way";
  40. /*
  41. 7.  Вывести название и стоимость альбома при условии, что альбом не старше 10 месяцев.
  42. */
  43. select name , price from albums
  44. where (to_days(NOW()) - to_days(debut)) < 300;
  45. /*
  46. 8.  Вывести название и стоимость альбома и его исполнителя при условии, что он будет самым дорогим для каждого исполнителя.
  47. */
  48. create temporary table tt as
  49. select singers.name , max(albums.price) as price
  50. from (albums inner join id_s on albums.al_id = id_s.album_id) inner join singers on id_s.singer_id = singers.sin_id
  51. group by singers.name;
  52. select * from tt;
  53. select tt.name as singer ,tt.price ,albums.name as album from tt inner join albums on tt.price = albums.price;
  54. /*
  55. 9.  Удалить песню «Can't Stop The Feeling» исполнителя Jonas Blue.
  56. */
  57. use mybase;
  58. begin;
  59. select son_id from (id_s inner join singers on id_s.singer_id = singers.sin_id) inner join songs on id_s.song_id = songs.son_id
  60. where songs.name = "can not stop the feeling" and singers.name = "jonas blue"
  61. into @kek;
  62. delete from songs
  63. where son_id = @kek;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement