From e5abc1fe99340b979b18864d978179f71fe8f5c5 Mon Sep 17 00:00:00 2001 From: vlapa Date: Sat, 13 Jun 2026 20:33:26 +0300 Subject: First --- MacOS/Postgresql.md | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 MacOS/Postgresql.md (limited to 'MacOS/Postgresql.md') diff --git a/MacOS/Postgresql.md b/MacOS/Postgresql.md new file mode 100644 index 0000000..57b6bda --- /dev/null +++ b/MacOS/Postgresql.md @@ -0,0 +1,113 @@ +`brew install postgresql` + +_В автозагрузку:_ +`brew services start postgresql` + +_Запуск вручную:_ +`pg_ctl -D /usr/local/var/postgresql start` + +_Перезагрузка:_ +`brew services restart postgresql` + +_Проверка версии:_ +`brew info postgresql` + +_Инициализация по умолчанию:_ +`initdb --locale=C -E UTF-8 /opt/homebrew/var/postgresql@14` + +_Экспортировать переменную:_ +`export PATH=/opt/homebrew/bin:$PATH` + +_Если автозагрузка не сработает, директория здесь:_ +`~/Library/LaunchAgents` + +_Создаем симлинк:_ +`ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents` + +_Добавляем в автозагрузку:_ +`launchctl load ~/Library?LaunchAgents/homebrew.mxcl.postgresql.plist` + +_Подключение к БД на MacOS (отличается от Linux). Проверяем пользователей:_ +`psql -l` + +![[Pasted image 20240312221215.png]] + +_Для подключения указываем Owner из таблицы выше:_ +`sudo psql -U vlapa -d postgres` + +_Создаем пользователя с паролем (сначала подключаемся как описано выше):_ +`CREATE USER ploshadka WITH PASSWORD '123456';` + +_Назначаем ему кодировку:_ +`ALTER ROLE ploshadka SET client_encoding TO 'utf8';` + +_Создаем БД для русской локали, чтобы была возможность поиска:_ +`CREATE DATABASE dbname TEMPLATE=template0 ENCODING 'UTF-8' LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8';` + +_Назначаем этому пользователю новую БД:_ +`GRANT ALL PRIVILEGES ON DATABASE dbname TO ploshadka;` + +_проверим по таблице все-ли верно:_ +`\list` + +_Как подключиться (на localhost достаточно создать БД и подключиться к ней указав только имя):_ +`dbname='stocks'` +_Остальное подхватится по умолчанию._ + +### Узнаем размер БД: + +_Заходим на сервер в оболочку Postgres:_ +`sudo psql -U vlapa -d postgres` + +_Проверяем размер:_ +`SELECT pg_size_pretty(pg_database_size('vlapa_db'));` + +### Узнаем размеры таблиц: + +_Находясь в оболочке Postgres входим в нужную БД:_ +`\c vlapa_db` + +_Вводим команду отсортировать таблицы по большему размеру:_ +```bash +SELECT nspname || '.' || relname AS "relation", +    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size" +  FROM pg_class C +  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) +  WHERE nspname NOT IN ('pg_catalog', 'information_schema') +    AND C.relkind <> 'i' +    AND nspname !~ '^pg_toast' +  ORDER BY pg_total_relation_size(C.oid) DESC +  LIMIT 20; +``` + +################################################## + +_PostgreSQL - SQL команды:_ + +Как добавить колонку в правильное место: +```bash +alter table tablename rename to oldtable; +create table tablename (column defs go here); +insert into tablename (col1, col2, col3) select col1, col2, col3 from oldtable; +``` + +_Как добавить колонку в конец:_ +```sh +ALTER TABLE portfolio ADD COLUMN price_diff_open_current FLOAT NULL; +``` + +_Переименовать таблицу:_ +```sh +alter table portfolio rename column lots to quantity; +``` + +_Обновить всю колонку одним значением:_ +```sh +UPDATE operations SET user_id='1' +``` + +_Переименовать базу данных:_ +```sh +alter database "stocks" rename to "captures"; +``` + -- cgit v1.2.3