Script-1.sql 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. insert into family (family_name) values (
  2. 'Синицевые'
  3. );
  4. insert into family (family_name, description) values (
  5. 'Врановые',
  6. 'Семейство птиц, включающее воронов, грачей, сорок и других'
  7. ), (
  8. 'Дроздовые',
  9. 'Семейство певчих птиц, включающее дроздов, дрозд-рябинников и других'
  10. );
  11. insert into genus (genus_name, family_id) values (
  12. 'Синица',
  13. 1
  14. ), (
  15. 'Гаичка',
  16. 1
  17. ), (
  18. 'Ворон',
  19. 2
  20. ), (
  21. 'Сорока',
  22. 2
  23. ), (
  24. 'Дрозд',
  25. 3
  26. );
  27. table genus;
  28. select genus_name from genus;
  29. select genus_name, genus_id from genus;
  30. select genus_name as bird_genus, genus_id from genus;
  31. select genus_name as bird_genus, genus_id from public.genus;
  32. select * from family where family_name='Дроздовые' or family_name='Синицевые';
  33. select * from family where family_name in ('Дроздовые', 'Синицевые');
  34. select * from family where family_name='Дроздовые' and family_name='Синицевые';
  35. select * from family where family_name like '%а%' or family_name like '%с%';
  36. select * from family;
  37. -- Используем функцию coalesce для полей со значением null
  38. select family_id, family_name, coalesce(description, 'не заполнено') description from family;
  39. select * from family where description is null or family_name like '%Д%';
  40. -- Временная таблица для сортировка
  41. create temp table author_tmp(
  42. author_id bigint generated always as identity primary key,
  43. first_name varchar(150) not null,
  44. last_name varchar(150) not null
  45. );
  46. insert into author_tmp (first_name, last_name) values
  47. ('Михаил', 'Шишкин'),
  48. ('Михаил', 'Веллер'),
  49. ('Михаил', 'Шолохов'),
  50. ('Михаил', 'Зощенко'),
  51. ('Михаил', 'Булгаков'),
  52. ('Александр', 'Беляев'),
  53. ('Александр', 'Пушкин'),
  54. ('Лусиану', 'Рамальо');
  55. select * from author_tmp;
  56. select * from author_tmp order by first_name;
  57. select * from family order by family_id desc;
  58. select * from family order by description nulls first;
  59. select * from family;
  60. select family_name from family where family_name like 'Д%' order by family_name;
  61. select * from (
  62. values (2, 3), (3, 20), (2, 4), (1, 20), (3, 4), (1, 19)
  63. ) as something(a, b)
  64. select * from (
  65. values (2, 3), (3, 20), (2, 4), (1, 20), (3, 4), (1, 19)
  66. ) as something(a, b)
  67. order by a, b;
  68. select * from (
  69. values (3, 20), (2, 4), (1, 20), (3, 4), (3, null), (1, 19), (2, 1), (2, null)
  70. ) as something(a, b)
  71. order by a, b desc nulls last;
  72. table genus;
  73. table species;
  74. select * from species
  75. order by species_name, description
  76. limit 10 offset 10;
  77. select species_id, species_name, primary_color from species where primary_color ilike '%бел%'
  78. order by species_name
  79. limit 5;
  80. select 'sadfs' || 'sadfasdf' || now() as message;
  81. drop schema if exists tests cascade;
  82. create schema tests;
  83. select format('Птичка: %s', species_name) as "птичка" from species
  84. order by species_name;
  85. update species
  86. set species_name='Древесный дрозд'
  87. where species_name='Дрозд лесной'
  88. update species
  89. set species_name='Дрозд лесной'
  90. where species_name='Древесный дрозд'
  91. -- Создание схемы
  92. drop schema if exists birds cascade;
  93. create schema birds;
  94. table genus;
  95. select genus_id as crows_id from genus where genus_name='Ворон';
  96. select * from species;
  97. create table crows as
  98. select * from species where genus_id=(select genus_id from genus where genus_name='Ворон');
  99. table crows;
  100. truncate table crows;
  101. drop table crows;
  102. create table smth (a int);
  103. insert into smth(a) values (1), (2), (3);
  104. table smth;
  105. update smth set a=a*2;
  106. select pg_column_size('привеееет');
  107. create temp table game_genre (
  108. genre_id bigint primary key,
  109. genre_name text
  110. );
  111. create temp table game (
  112. game_id int generated always as identity primary key,
  113. genre_id int not null references game_genre(genre_id)
  114. );
  115. insert into game_genre(genre_id, genre_name) values (1234567890123456789, 'шутер');
  116. insert into game(genre_id) values (1234567890123456789);
  117. comment on table family is 'Семейство птиц';
  118. comment on column family.family_id is 'Уникальный идентификатор семейства';
  119. comment on column family.family_name is 'Название семейства';
  120. comment on column family.description is 'Описание семейства';
  121. comment on table genus is 'Род птиц';
  122. comment on column genus.genus_id is 'Уникальный идентификатор рода';
  123. comment on column genus.genus_name is 'Название рода';
  124. comment on column genus.family_id is 'Ссылка на семейство';
  125. comment on column genus.description is 'Описание рода';
  126. comment on table species is 'Вид птиц';
  127. comment on column species.species_id is 'Уникальный идентификатор вида';
  128. comment on column species.species_name is 'Название вида';
  129. comment on column species.genus_id is 'Ссылка на род';
  130. comment on column species.description is 'Описание вида';
  131. comment on column species.average_length is 'Средняя длина в см';
  132. comment on column species.average_weight is 'Средний вес в г';
  133. comment on column species.primary_color is 'Цвет оперения';