← Все курсы · Курс SQL · Все руководства
Как установить PostgreSQL для начинающих
К концу этой страницы у вас будет работающий PostgreSQL, собственная база данных и рабочее соединение с инструментом. Вы также поймете сдвиг, из-за которого это кажется сложнее, чем с SQLite: вы больше не открываете файл, вы подключаетесь к программе, которая всегда работает. Все незнакомое здесь, порт, пароль, сервис, вытекает из этого одного изменения.
Вот что на самом деле нужно сделать сегодня, и здесь есть одна оговорка. Если вы изучаете SQL для собеседований, возможно, тебе это пока не нужно, и в разделе 1 об этом прямо говорится. Если в объявлении о вакансии указано Постгрес или вам предоставлены настоящие учетные данные, загрузите интерактивный установщик из EDB, запишите пароль и оставьте порт 5432 по умолчанию.
Краткая версия: установите, задайте записываемый пароль, подключитесь. localhost:5432 как пользователь postgresи создайте свою собственную базу данных, а не работайте в базе данных по умолчанию.
Переход от файла к сервису — это единственная идея, из которой вытекает все остальное, поэтому картина понятна.
- Первый: тебе это нужно?
- Установите его
- Четыре вещи, которые нужны каждому соединению
- Создайте свою собственную базу данных
- Подключение с помощью инструмента
- Загрузите в него CSV-файл
- Полное до и после
- Что пошло не так и как это исправить
- Зачем вообще существует сервер
- Использование этого на вашей машине
- Все на одном экране
1. Первое: тебе это нужно?
Перед пояснением: вы изучали SQL на SQLite. Как вы думаете, какие части того, что вы узнали, перестанут работать в Постгрес?
Почти ничего из этого. SELECT, WHERE, JOIN, GROUP BY, HAVING, CTE и оконные функции ведут себя одинаково. Отличие заключается в арифметике дат, некоторых строковых функциях и более строгой типизации. Это действительно небольшая поверхность, и именно поэтому честный ответ на вопрос «стоит ли мне установить Постгрес для изучения SQL» обычно — нет.
Установите его, если одно из этих утверждений верно.
- В объявлении о вакансии или домашнем тесте PostgreSQL упоминается конкретно.
- Вам предоставлены учетные данные для реальной базы данных Постгрес, и вам нужен инструмент, который сможет получить к ней доступ.
- Вы создаете что-то, в котором несколько программ одновременно обрабатывают одни и те же данные.
- Вам особенно нужна практика с серверными вещами: пользователями, разрешениями, портами.
Если ни один из них не применим, пятнадцатиминутная установка SQLite учит вас большему количеству SQL в час, потому что ни одно из часов не уходит на настройку службы. Сравнение в какую базу данных SQL следует установить это более длинная версия этого решения.
2. Установите его
Перейдите на сайт postgresql.org, выберите «Загрузить» и выберите свою операционную систему. В Окна рекомендуемый маршрут — интерактивный установщик от EDB. О нем стоит знать две вещи: он размещается на серверах EDB, а не на серверах сообщества PostgreSQL, и включает в себя не только базу данных.
Что при этом приходит:
- Сервер PostgreSQL, которая представляет собой саму базу данных, установленную как службу, которая запускается на вашем компьютере.
- pgAdmin, графический инструмент для просмотра таблиц и выполнения запросов. Это ваш эквивалент браузера БД.
- psql, клиент командной строки, поставляемый вместе с сервером.
- StackBuilder, дополнительный установщик драйверов и дополнений. Вы можете пропустить это, и в конце установки вам следует это сделать.
Во время установки вас просят указать две важные вещи. Пароль для postgres пользователь. Запишите его где-нибудь, где он будет у вас еще через три месяца, потому что удобного сброса нет, а переустановка, чтобы избежать забытого пароля, — это действительно обычная трата вечера. И порт, предлагается как 5432. Оставьте себе. Каждое руководство, строка подключения по умолчанию для инструмента и пример строки подключения предполагают 5432, и ее изменение не принесет вам ничего, кроме несоответствий.
3. Четыре вещи, необходимые для любого соединения
Это тот раздел, который сэкономит вам больше всего времени в дальнейшем. Любой инструмент, подключающийся к Постгрес, pgAdmin, Excel, Tableau, Python, запрашивает одни и те же четыре факта. Это четыре ключа на картинке.
| Как это называется | Что это значит | Ваш, местный |
|---|---|---|
| Хозяин | На какой машине работает служба. | localhost |
| Порт | В какую дверь этой машины постучать. | 5432 |
| база данных | Какая база данных внутри сервиса. Одна услуга содержит множество. | postgres сначала |
| Пользователь и пароль | Кто вы? | postgres и пароль, который вы установили |
Те же самые четыре — это то, что строка подключения упаковывает в одну строку в следующем порядке:
postgresql://postgres:yourpassword@localhost:5432/postgres
Прочтите ее слева направо, и вы поймете, что это та же таблица, что и выше: какой тип базы данных, кто вы, ваш пароль, какая машина, какая дверь, какая база данных. Как только это предложение обретет смысл, соединение с Python, Excel или Tableau перестают быть четырьмя разными процедурами и превращаются в одну форму, заполняемую четыре раза.
Прежде чем читать дальше, скажите, почему файловой базе данных ничего из этого не нужно. Потому что дорвея нет: файл лежит тут же и инструмент читает его напрямую. Каждый из четырех существует только потому, что что-то еще хранит данные от вашего имени.
4. Создайте свою собственную базу данных
Новая установка включает в себя базу данных под названием postgres. Это собственная база данных службы, и размещение в ней вашей работы похоже на сохранение документов в папке установки программы. Это работает, и эту привычку не стоит формировать.
Откройте pgAdmin, подключитесь, используя установленный вами пароль, затем запустите:
CREATE DATABASE analytics;
Или из терминала:
psql -U postgres -c "CREATE DATABASE analytics;"
Отныне связывайтесь с analytics как база данных, а не postgres. Еще один словарный запас, с которым вы сразу же познакомитесь: внутри базы данных таблицы живут в схема, а тот, который используется по умолчанию, называется public. Вот почему имена таблиц иногда выглядят как public.customers. Это та же самая таблица, записанная с полным адресом.
5. Подключение с помощью инструмента
pgAdmin поставляется с установщиком и является естественным первым средством, но это более тяжелый инструмент, чем Браузер БД, и стоит знать, что вы не застряли с ним. Любой инструмент, который запрашивает эти четыре факта, сработает.
Из Python, используя шаблон из подключение Python к базе данных SQL:
python -m pip install sqlalchemy psycopg2-binary
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('postgresql+psycopg2://postgres:yourpassword@localhost:5432/analytics')
df = pd.read_sql("SELECT version()", engine)
print(df)
SELECT version() — хороший первый запрос именно потому, что ему не нужны таблицы. Если он возвращает строку, все четыре факта верны, и ваша проблема, если она у вас возникнет позже, связана с вашими данными, а не с вашим соединением.
Не оставляйте этот пароль в файле, который вы сохраните. Вместо этого прочитайте его из переменной среды, как Git для аналитиков описывает.
6. Загрузите в него CSV-файл.
В отличие от инструментов SQLite, Постгрес не будет создавать для вас таблицу из файла. Вы создаете таблицу, затем заполняете ее. Это два шага, а не один, и дополнительный шаг — вот где живет строгость.
CREATE TABLE sales (
order_id INTEGER,
order_date DATE,
region TEXT,
amount NUMERIC(10,2)
);
\copy sales FROM 'sales.csv' WITH (FORMAT csv, HEADER true);
Обратная косая черта имеет значение. \copy это команда psql, которая читает файл из Твой машина, пока обычная COPY это команда сервера, которая считывает данные с машины сервера. При локальной установке это один и тот же компьютер, что скрывает разницу до тех пор, пока вы не подключитесь к серверу в другом месте и не станете очевидным. COPY не могу найти ваш файл. Использовать \copy и привычка уже права.
Постгрес отклонит строку, значения которой не соответствуют типам столбцов, вместо того, чтобы спокойно сохранить ее. Это более строго, чем SQLite, и это особенность: ошибка называет строку и проблему, что гораздо лучше, чем обнаружить несколько месяцев спустя, что числовой столбец содержит текст «Н/Д».
Теперь представьте файл, который вы где-то загрузили раньше. Если бы инструмент прямо отказался от него, вместо того чтобы спокойно принять его, узнали бы вы об этом раньше или позже, чем на самом деле?
Полное до и после
Цель та же: работающий Постгрес, который вы можете запросить.
До
Installed, clicked through, chose a password
Changed the port because 5432 "looked taken"
Worked inside the default postgres database
Two weeks later: cannot remember the password, cannot remember the port
В то время ничего не вышло из строя, поэтому это и делает его дорогостоящим. Пользовательский порт означает, что каждый пример строки подключения вам не подходит, забытый пароль невозможно легко сбросить, а работа в базе данных по умолчанию смешивается с собственной службой.
после
Installed, kept port 5432, wrote the password in a password manager
CREATE DATABASE analytics;
Tested with SELECT version() before doing anything else
Connection facts noted: localhost / 5432 / analytics / postgres
Loaded data with \copy after CREATE TABLE
Четыре факта записаны, порт соответствует каждому руководству, которое вы прочитаете, а ваша работа находится в собственной базе данных. Тестирование с version() первый означает, что когда что-то сломается позже, вы уже знаете, что проблема не в соединении.
Что пошло не так и как это исправить
Шесть из них составляют большую часть первых дней.
"В соединении отказано." Служба не работает. В Окна откройте «Службы» и запустите службу PostgreSQL. Это ошибка, которой нет эквивалента в SQLite, потому что нечего запускать.
«Ошибка аутентификации пароля для пользователя Постгрес». Неправильный пароль или другой пользователь, чем вы думаете. Простого сброса не существует, поэтому его запись во время установки так важна.
«база данных не существует». Вы назвали базу данных, которая еще не была создана. Подключиться к postgres сначала беги CREATE DATABASE, затем повторно подключитесь.
«Отношение не существует» для только что созданной таблицы. Обычно неправильная база данных или проблема с корпусом. Постгрес преобразует имена, не заключенные в кавычки, в нижний регистр, поэтому таблица создается как "Sales" с кавычками, после этого всегда необходимо писать с кавычками. Придерживайтесь имен в нижнем регистре, и проблема никогда не возникнет.
psql не признается. Установщик bin папка не находится в вашем PATH. Добавьте его или используйте ярлык SQL-оболочка, созданный установщиком.
Порт 5432 уже используется. Более старая версия Постгрес все еще установлена. Удалите его, а не переходите на 5433, иначе вы будете годами объяснять каждому инструменту странный порт.
Зачем вообще существует сервер
SQLite читает и записывает файл напрямую, что прекрасно работает до тех пор, пока две программы не захотят писать одновременно. Некому решать, кто будет первым, поэтому вместо этого дизайн ограничивает то, что может безопасно произойти сразу. Это вполне разумная сделка для одного аналитика на одном ноутбуке.
Сервер существует для того, чтобы быть этим кем-то. Поскольку данные принадлежат одной программе, она может позволить множеству клиентов подключаться одновременно, определять порядок конфликтующих операций записи, приостанавливать незавершенную работу до тех пор, пока она не будет завершена или не отменена, а также определять, кому и что разрешено видеть. Порт, пользователь, пароль и сервис не церемонны; каждый из них представляет собой часть механизма, который имеет смысл только тогда, когда существует более одного клиента.
Это также истинная причина, по которой новичку это редко нужно. В одиночку пользуясь собственной машиной, вы платите полную стоимость техники, не получая никакой выгоды. В тот момент, когда появляется второй человек или вторая программа, тот же механизм оказывается именно тем, что вам нужно.
Одно замечание по поводу написания этой страницы. Он постоянно просил вас дать ответ, что перестанет работать, почему файлу не нужен ни один из четырех ключей, прежде чем дать его. Попытка дать ответ до того, как вы увидите правильный, достоверно повышает, насколько хорошо сохраняется правильный ответ, даже если попытка неверна (Бисра, Лю, Несбит, Салими и Винн, 2018, Обзор педагогической психологии, 30(3), 703–725).
Использование этого на вашей машине
Пять шагов по порядку.
- Решите, нужно ли вам это используя раздел 1. Установка сервера для изучения операторов SELECT требует часов, которые вы могли бы потратить на их написание.
- Оставьте порт 5432 и запишите пароль в момент его установки. И то, и другое дешево сейчас и дорого потом.
- Создайте свою собственную базу данных вместо того, чтобы работать по умолчанию.
- Запишите четыре факта связи где-то вы ведете записи. Каждый инструмент потребует одни и те же четыре.
- Тест с
SELECT version()перед загрузкой чего-либо, чтобы вы знали, что соединение подтверждено, прежде чем данные можно будет обвинить.
Если у вас под рукой есть бумага, один дополнительный рисунок стоит двух минут. Нарисуйте дверной проем вверху этой страницы и назовите четыре ключа своими значениями. К этому рисунку вы будете обращаться каждый раз, когда новый инструмент просит вас подключиться, и он превращает четыре отдельных процесса обучения в один.
Все на одном экране
Это лист поиска. Закройте правую колонку, проработайте левую и произнесите каждый ответ вслух, прежде чем проверять его.
| вещь | Что это такое или что оно делает |
|---|---|
| Основной сдвиг | Это не файл, который вы открываете. Сервис, к которому вы подключаетесь. |
| Тебе это нужно? | Только если задание называет его, у вас есть учетные данные или несколько программ совместно используют данные. |
| установщик Окна | Интерактивный инсталлятор от EDB. Хостинг ЕАБР, а не сообщества. |
| Что с этим связано | Сервер, pgAdmin, psql, СтекБилдер. Пропустите СтекБилдер. |
| Текущая версия | 18 стабильная по состоянию на август 2026 г. Не устанавливайте бета-версию для обучения. |
| Порт | 5432. Держи. Каждый пример предполагает это. |
| Четыре факта | Хост, порт, база данных, пользователь и пароль. |
| Строка подключения | postgresql://user:pass@host:port/database |
| База данных по умолчанию | postgres, собственный сервис. Вместо этого сделайте свой собственный. |
| схема | Группировка внутри базы данных. По умолчанию public, как в public.sales. |
\copy против COPY | Ваша машина против машины сервера. Использовать \copy. |
| Загрузка CSV-файла | Сначала СОЗДАЙТЕ ТАБЛИЦУ. Постгрес не будет его изобретать. |
| Чехол складной | Имена без кавычек становятся строчными. Придерживайтесь нижнего регистра. |
| "В соединении отказано" | Служба не работает. Начни это. |
| Забытый пароль | Нет простого сброса. Запишите его во время установки. |
| Первый тестовый запрос | SELECT version(). Таблицы не нужны. |
SELECT version() прежде всего. В таком случае каждая будущая проблема с подключением — это вопрос о том, какое из четырех известных значений неверно, а не открытая загадка. Если что-то сломалось так, как не описано на этой странице, существует общая шлейф диагностики на предмет застревания.Еще одна мысль, и мне бы искренне хотелось услышать ответы других людей. Больше всего я сожалею об установке, в которой я изменил порт без уважительной причины, а затем потратил два года, объясняя нечетное число каждому инструменту, который я подключил. Какие настройки по умолчанию вы изменили вначале и хотели бы, чтобы вас оставили в покое?
Ссылки
- Бисра К., Лю К., Несбит Дж. К., Салими Ф. и Винн П. Х. (2018). Побуждение к самообъяснению: метаанализ. Обзор педагогической психологии, 30(3), 703–725.
- Группа глобального развития PostgreSQL. Загрузки и установщики Окна. Получено 8 августа 2026 г. с сайта postgresql.org/download. Указано для содержимого версии и установщика, которое представляет собой подробную информацию о продукте, а не результаты исследований.
SQL для аналитиков состоит из 458 страниц, каждый запрос читается построчно простыми словами, с практическими вопросами, в которых печатается ответ и причина, по которой он правильный.
SQL для аналитиков, 19 $ →Почти все, что вы пишете для Постгрес, вы бы написали где угодно. Курс SQL охватывает соединения, группировку и оконные функции с активной базой данных на вкладке браузера, а также SQL-практикум передает вам один выполняемый запрос за раз, поэтому вы печатаете, а не читаете.
Откройте набор SQL →