room_1.sql 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. -- -----------------------------------------------------------------
  2. -- Создание таблиц
  3. -- Таблица авторов
  4. create table author (
  5. author_id bigint generated always as identity primary key,
  6. name varchar(150) no null check (length(name) >= 3),
  7. description text check (length(description) >= 30)
  8. );
  9. -- Таблица категорий книг
  10. create table book_category (
  11. category_id int generated always as identity primary key,
  12. name varchar(150) not null check (length(name) >= 2)
  13. );
  14. -- Таблица книг
  15. create table book (
  16. book_id bigint generated always as identity primary key,
  17. name varchar(255) not null check (length(name) >= 2),
  18. author_id bigint not null references author(author_id),
  19. description text check (length(description) >= 30),
  20. cover varchar(255),
  21. category_id int not null references book_catefory(category_id)
  22. );
  23. -- -----------------------------------------------------------------
  24. -- Создание временных таблиц и вставка данных
  25. create temp table something (id serial, name text);
  26. insert into something (name) values('hello');
  27. insert into something (name) values('dratuti');
  28. -- -----------------------------------------------------------------
  29. -- Редактирование таблиц
  30. alter table
  31. -- -----------------------------------------------------------------
  32. -- Удаление таблиц
  33. drop table if exists author, book_category, book;
  34. -- -----------------------------------------------------------------
  35. -- Вставка данных
  36. insert into author (name, description) values (
  37. 'Михаил Шолохов',
  38. 'Великий русский советский писатель, журналист и киносценарист.'
  39. ), (
  40. 'Лусиану Рамальо',
  41. 'Автор замечательных книг по языку программирования Python'
  42. );
  43. -- -----------------------------------------------------------------
  44. -- Выборка данных
  45. -- Выбрать все данные из таблицы. Так нельзя делать в prodaction коде.
  46. select * from author;
  47. table author order by name desc limit 1;
  48. select name as Имя, description as Описание from book;
  49. -- Преобразование к верхнему регистру
  50. select upper(name) as Имя, lower(description) as Описание from book;
  51. -- Можно сослаться на конретную таблицу через .
  52. -- Последовательность: база данных -> схема -> таблица
  53. select book.name as Имя from rroom_db.public.book;
  54. show search_path;
  55. -- -----------------------------------------------------------------
  56. -- Заметки
  57. -- Остановился на 16 главе
  58. -- -----------------------------------------------------------------
  59. -- Мусор
  60. select |/25;