Запускайте запросы PostgreSQL из командной строки

Я вставил данные в таблицу.... Я хочу увидеть теперь целую таблицу со строками и столбцами и данными. Как я могу отобразить его с помощью команды?

Ответ 1

psql -U username -d mydatabase -c 'SELECT * FROM mytable'

Если вы новичок в postgresql и не знакомы с использованием инструмента командной строки psql, тогда возникает какое-то запутанное поведение, о котором вам следует знать, когда вы вступили в интерактивный сеанс.

Например, инициируйте интерактивный сеанс:

psql -U username mydatabase 
mydatabase=#

В этот момент вы можете ввести запрос напрямую, но вы должны помнить о завершении запроса точкой с запятой ;

Например:

mydatabase=# SELECT * FROM mytable;

Если вы забудете точку с запятой, тогда, когда вы нажмете enter, вы ничего не получите в своей возвратной строке, потому что psql будет считать, что вы еще не закончили ввод своего запроса. Это может привести ко всем путаницам. Например, если вы повторно вводите тот же запрос, скорее всего, вы создадите синтаксическую ошибку.

В качестве эксперимента попробуйте ввести какой-либо искатель, который вы хотите в командной строке psql, затем нажмите enter. psql будет тихо предоставлять вам новую строку. Если вы вводите точку с запятой на этой новой строке и затем нажмите enter, вы получите сообщение ERROR:

mydatabase=# asdfs 
mydatabase=# ;  
ERROR:  syntax error at or near "asdfs"
LINE 1: asdfs
    ^

Эмпирическое правило: Если вы не получили ответа от psql, но вы ожидали хотя бы ЧТО-ТО, тогда вы забыли точку с запятой ;

Ответ 2

SELECT * FROM my_table;

где my_table - это имя вашей таблицы.

РЕДАКТИРОВАТЬ:

psql -c "SELECT * FROM my_table"

или просто psql а затем введите ваши запросы.

Ответ 3

Если ваша БД защищена паролем, то решение будет:

PGPASSWORD=password  psql -U username -d dbname -c "select * from my_table"

Ответ 4

Откройте "SQL Shell (psql)" из ваших приложений (Mac).

enter image description here

Нажмите ввод для настроек по умолчанию. Введите пароль при появлении запроса.

enter image description here

*) Тип \? за помощью

*) Введите \conninfo чтобы увидеть, к какому пользователю вы подключены.

*) Введите \l чтобы увидеть список баз данных.

enter image description here

*) Подключиться к базе данных с помощью \c <Name of DB>, например \c GeneDB1

enter image description here

Вы должны увидеть изменение подсказки ключа для новой БД, например, так: enter image description here

*) Теперь, когда вы находитесь в данной БД, вы хотите знать схемы для этой БД. Лучшая команда для этого - \dn.

enter image description here

Другие команды, которые также работают (но не так хорошо), select schema_name from information_schema.schemata; и select nspname from pg_catalog.pg_namespace; :

enter image description here

-) Теперь, когда у вас есть схемы, вы хотите знать таблицы в этих схемах. Для этого вы можете использовать команду dt. Например, \dt "GeneSchema1".*

enter image description here

*) Теперь вы можете делать ваши запросы. Например:

enter image description here

*) Вот как выглядят приведенные выше БД, Схема и Таблицы в pgAdmin:

enter image description here

Ответ 5

  1. Откройте командную строку и перейдите в каталог, где установлен Postgres. В моем случае мой путь к Postgres - "D:\TOOLS\Postgresql-9.4.1-3". После этого перемещение в каталог bin командной строки Postgres.So отображается как "D:\TOOLS\Postgresql-9.4.1-3".\Bin>"
  2. Теперь моя цель состоит в том, чтобы выбрать "UserName" из таблицы пользователей, используя значение "UserId". Так что запрос к базе данных " Выберите u." UserName "из пользователей u Где u." UserId "= 1 ".

Тот же запрос написан ниже для командной строки psql из postgres.

D:\TOOLS\Postgresql-9.4.1-3\bin> psql -U postgres -d DatabaseName -h localhost - t -c "Выберите u. \" UserName\"из пользователей u, где u. \" UserId\"= 1;

Ответ 6

У меня нет сомнений в ответе @Grant. Но иногда я сталкиваюсь с некоторыми проблемами, такими как, если имя столбца похоже на какое-либо зарезервированное ключевое слово postgresql, такое как natural, в этом случае подобный SQL трудно запустить из командной строки, так как в поле Query потребуется "\natural \". Поэтому мой подход заключается в том, чтобы написать SQL в отдельном файле и запустить файл SQL из командной строки. Это имеет еще одно преимущество. Если вам нужно изменить запрос для большого скрипта, вам не нужно трогать файл скрипта или команду. Измените только файл SQL, как это

psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql

Ответ 7

Зачем вообще запускать запросы через командную строку psql?

  1. Установить Azure Data Studio - кроссплатформенный современный редактор, ориентированный на разработку данных; это открытый исходный код и расширяемый - две вещи, на которых основан сам PostgreSQL;
  2. Установите расширение PostgreSQL
  3. Подключитесь к локальному или удаленному серверу:

    enter image description here

  4. Сосредоточьтесь на написании и выполнении только SQL:

    enter image description here

Существует множество приятных функций, таких как сохранение соединений, создание групп серверов и даже встроенный терминал, если вам удобнее выполнять какую-либо задачу через psql.