{"id":21839877,"url":"https://github.com/rustkas/howto-work-with-postgresql","last_synced_at":"2026-05-18T09:35:12.131Z","repository":{"id":92075877,"uuid":"470849507","full_name":"rustkas/Howto-work-with-Postgresql","owner":"rustkas","description":"Notes","archived":false,"fork":false,"pushed_at":"2022-03-17T11:18:42.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-19T19:43:52.993Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rustkas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-17T04:37:59.000Z","updated_at":"2022-03-17T04:37:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"b9bba7e9-42bf-4c3d-8332-7c2225f29f4b","html_url":"https://github.com/rustkas/Howto-work-with-Postgresql","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rustkas/Howto-work-with-Postgresql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2FHowto-work-with-Postgresql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2FHowto-work-with-Postgresql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2FHowto-work-with-Postgresql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2FHowto-work-with-Postgresql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rustkas","download_url":"https://codeload.github.com/rustkas/Howto-work-with-Postgresql/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustkas%2FHowto-work-with-Postgresql/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33172671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"ssl_error","status_checked_at":"2026-05-18T09:27:28.300Z","response_time":71,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-27T21:21:05.327Z","updated_at":"2026-05-18T09:35:12.116Z","avatar_url":"https://github.com/rustkas.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Howto work with Postgresql\n\nNotes\n-----\n\n```\nsudo apt-get install postgresql\nsudo apt-get install postgresql-client\nsudo apt-get install postgresql-contrib\n\nservice postgresql status\n```\n\n### Команды сервиса\nservice postgresql\n\nsudo -i -u postgres\n\n\nЕсли необходимо произвести сразу несколько действий от имени другого пользователя, то для этого можно запустить новую оболочку внутри текущей (говорят что мы стартуем новую сессию):\n\nsudo -i\nid\n\nuid=0(root) gid=0(root) groups=0(root)\nГлавное — не забыть переключиться обратно после завершения необходимых манипуляций. Для этого наберите exit.\n\nЗапускаем консоль Postgresql:\npsql\n\n\nВывод списка баз данных:\npsql=# \\l\nвыйти из режима просмотра: q\nВыйти из консоли: \\q\n\n\nСоздание базы данных:\ncreatedb bot_users\nВывод списка баз данных:\npsql=# \\l\n\nУдаление базы:\ndropdb bot_users\n\nИзменим параль суперпользователя Postgresql\npsql\n# просмотр списка пользователей\npsql=# \\du\npsql=# ALTER USER postgres WITH PASSWORD 'qwerty';\n\n# Создание пользователя\npsql=# CREATE USER username WITH PASSWORD 'password';\n\nПредоставление прав новому пользователю:\npsql=# ALTER USER username WITH SUPERUSER;\n\nУдаление пользователя:\npsql=# DROP USER usernameж\n\n# выйти из учетной записи\nexit\n\n#Вызов справки\nman psql\n\n\nУстановка pgAdmin\n\nhttps://www.pgadmin.org/download/pgadmin-4-apt/\n\nПосле установки вводим параметры нового сервера\nServer name: localhost\nHost name/address: 127.0.0.1\n\nРабота с серью. Открытые порты\n$ ss -ltnp\nvim /etc/postgresql/12/main/postgresql.conf\n\n\ndata_directory # хранение всех файлов баз данных\nhba_file # определяет параметры подключения к базе данных\n#listen_addresses = 'localhost' # выбор способа работы в сети \n(localhost - локальная сеть)\n(* - любая сеть)\n\n# RESOURCE USAGE\n#-------------\nshared_pages = 128MB\n\n\n# Перезагрузка файла конфигурации\nsystemctl reload postgresql\n\n# Проверка состояния сервисам СУБД\nsystemctl status postgresql\n\n# Лог системы\nvim /var/log/syslog\nps aux | grep postgres\n\n# Узнать размер директории (папки)\ndu -hs /var/lib/postgresql/12/main/\n\n# Поменять пользователя\nsu postgres\n# Запустить psql\n\n\nsudo -i -u postgres\npsql\n\n\nВывод списка баз данных:\npsql=# \\l\n\n# создать раздел\nCREATE DATABASE unixway1;\nCREATE DATABASE unixway1;\n\n# создать пользователей\nCREATE USER unixway1user WITH ENCRYPTED PASSWORD 'password1';\nGRANT ALL PRIVILEGES ON DATABASE unixway1 TO unixway1user;\n\n# Поменять владельца раздела\nALTER DATABASE unixway1 OWNER TO unixway1user;\n\n\n# создать пользователей\nCREATE USER unixway2user WITH ENCRYPTED PASSWORD 'password2';\nGRANT ALL PRIVILEGES ON DATABASE unixway2 TO unixway2user;\n# Поменять владельца раздела\nALTER DATABASE unixway2 OWNER TO unixway2user;\n\n# убрать доступ к базам данных извне сервера\nREVOKE CONNECT ON DATABASE unixway1 FROM PUBLIC;\nREVOKE CONNECT ON DATABASE unixway2 FROM PUBLIC;\n\n#Подключиться к базе данных с помощью локального пользователя\npsql -h 127.0.0.1 -p 5432 -U unixway1user unixway1\n\nДобавить строку в файл pg_hba.conf\nhost replication all 192.168.0.103/24 md5\n\nОбновить конфигурацию postgres:\nsystemctl reload postgresql\n\nПереподключиться с помощью другой базе данных\nunixway2=\u003e \\c unixway1\n\n\n# Создание таблицы\nCREATE TABLE users(user_pid SERIAL PRIMARY KEY, user_name TEXT NOT NULL, user_email TEXT NOT NULL, user_balance INTEGER NOT NULL);\nunixway2=\u003e \\d\n\nПросмотр списка талиц:\nunixway1=\u003e \\d users\nunixway1=\u003e \\c unixway1\n\n#Добавим данные:\nINSERT INTO users(user_name, user_email,user_balance) VALUES ('Jerry Kinn','jkinn@gmail.com',1000);\nINSERT INTO users(user_name, user_email,user_balance) VALUES ('Adam Smith','asmith@gmail.com',1000);\nINSERT INTO users(user_name, user_email,user_balance) VALUES ('Billy Jonnes','bjonnes@gmail.com',1000);\n\n# Печать содержимого таблицы:\nSELECT * FROM users;\n\nunixway1=\u003e \\d \n\n# Удалить талицу\nunixway1=\u003e DROP TABLE users;\n\n# Активировать дополнение - использование типа данных uuid\nunixway1=\u003e CREATE EXTENSION IF NOT EXITS \"uuid-ossp\";\n# Активировать расширение нужно только один раз для каждого раздела, где он будет использоваться\n\n# Создадим таблицу, используя UUID\nCREATE TABLE users(user_pid SERIAL PRIMARY KEY, user_id UUID NOT NULL DEFAULT uuid_generate_v4(), user_name TEXT NOT NULL, user_email TEXT NOT NULL, user_balance INTEGER NOT NULL, user_registration TIMESTAMP NOT NULL DEFAULT now());\n\n# Демонстрация работы функции uuid_generate_v4()\nSELECT uuid_generate_v4();\n\n#Добавим данные:\nINSERT INTO users(user_name, user_email,user_balance) VALUES ('Jerry Kinn','jkinn@gmail.com',1000);\nINSERT INTO users(user_name, user_email,user_balance) VALUES ('Adam Smith','asmith@gmail.com',1000);\nINSERT INTO users(user_name, user_email,user_balance) VALUES ('Billy Jonnes','bjonnes@gmail.com',1000);\n\n# Печать содержимого таблицы:\nSELECT * FROM users;\n\n# Попытка добавить неполные данные:\nINSERT INTO users(user_name,user_email) VALUES ('Martha Longdale','mlngdale@gmail.com');\n\n# Модификация базы данных\nALTER TABLE users ALTER COLUMN user_balance SET DEFAULT 0;\n\n\n# Модификация базы данных\nALTER TABLE users ADD CHECK(user_balance \u003e= 0);\n\n# Модификация базы данных\nALTER TABLE users ADD CHECK(length(user_name) \u003c= 100);\nALTER TABLE users ADD CHECK(length(user_email) \u003c= 100);\n\n# Попытка добавить неполные данные:\nINSERT INTO users(user_name,user_email) VALUES ('Niels Bourre','nbourre@gmail.com', -100);\n\n# Модификация базы данных\nALTER TABLE users ADD COLUMN user_enabled BOOLEAN NOT NULL DEFAULT true;\n\n\n# Модификация базы данных. Удалим колонку user_enabled\nALTER TABLE users DROP COLUMN user_enabled;\n\n# Обновить данные пользователя\nUPDATE users SET user_balance = user_balance + 100 WHERE user_pid = 2;\nUPDATE users SET user_balance = user_balance + 100 WHERE user_id = '691967ea-5648-4529-8d70-1a0843683c3d';\nUPDATE users SET user_balance = user_balance + 10;\nUPDATE users SET user_balance = user_balance - 100;\nUPDATE users SET user_balance = user_balance + 100 WHERE user_balance \u003c 100;\nUPDATE users SET user_balance = 0;\n\n# Удалить все строки таблицы users\nDELETE FROM users;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustkas%2Fhowto-work-with-postgresql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frustkas%2Fhowto-work-with-postgresql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustkas%2Fhowto-work-with-postgresql/lists"}