Script-1.sql 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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;