명령 행에서 PostgreSQL 쿼리 실행
데이터를 테이블에 삽입했습니다. ... 행과 열 및 데이터가있는 전체 테이블을 보려고합니다. 명령을 통해 어떻게 표시 할 수 있습니까?
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 키를 누르면 오류가 발생합니다.
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
경험의 규칙은 다음과 같습니다. 응답을받지 psql
못했지만 최소한 무언가를 기대하고 있다면 세미콜론을 잊어 버렸습니다.;
SELECT * FROM my_table;
어디에 my_table
당신의 테이블의 이름입니다.
편집하다:
psql -c "SELECT * FROM my_table"
또는 그냥 psql
검색어를 입력하십시오.
DB가 비밀번호로 보호 된 경우 솔루션은 다음과 같습니다.
PGPASSWORD=password psql -U username -d dbname -c "select * from my_table"
응용 프로그램 (Mac)에서 "SQL Shell (psql)"을 엽니 다.
기본 설정으로 Enter를 클릭하십시오. 프롬프트가 표시되면 비밀번호를 입력하십시오.
*) \?
도움말 유형
*) \conninfo
연결 한 사용자를 보려면 입력 하십시오.
*) \l
데이터베이스 목록을 보려면 입력 하십시오.
*) \c <Name of DB>
예를 들어으로 데이터베이스에 연결\c GeneDB1
다음과 같이 키 프롬프트가 새 DB로 변경되는 것을 볼 수 있습니다.
*) 이제 지정된 DB에 있으므로 해당 DB의 스키마를 알고 싶습니다. 가장 좋은 명령은 \dn
입니다.
잘 작동하는 다른 명령은 다음 select schema_name from information_schema.schemata;
과 select nspname from pg_catalog.pg_namespace;
같습니다.
-) 이제 스키마가 있으므로 해당 스키마의 테이블을 알고 싶습니다. 이를 위해 dt
명령을 사용할 수 있습니다 . 예를 들어\dt "GeneSchema1".*
*) 이제 쿼리를 수행 할 수 있습니다. 예를 들면 다음과 같습니다.
*) 다음은 pgAdmin에서 위의 DB, Schema 및 Tables 모양입니다.
- 명령 프롬프트를 열고 Postgres가 설치된 디렉토리로 이동하십시오. 필자의 경우 Postgres 경로 는 "D : \ TOOLS \ Postgresql-9.4.1-3"입니다. 그런 다음 Postgres의 bin 디렉토리로 이동하면 명령 프롬프트가 "D : \ TOOLS \ Postgresql-9.4.1-3으로 표시됩니다. \ bin> "
- 이제 내 목표는 "UserId"값을 사용하여 users 테이블에서 "UserName"을 선택하는 것입니다. 따라서 데이터베이스 쿼리는 사용자의 " Select u."UserName "입니다. 여기서 u."UserId "= 1 "입니다.
The same query is written as below for psql command prompt of postgres.
D:\TOOLS\Postgresql-9.4.1-3\bin>psql -U postgres -d DatabaseName -h localhost - t -c "Select u.\"UserName\" from users u Where u.\"UserId\"=1;
I have no doubt on @Grant answer. But I face few issues sometimes such as if the column name is similar to any reserved keyword of postgresql such as natural in this case similar SQL is difficult to run from the command line as "\natural\" will be needed in Query field. So my approach is to write the SQL in separate file and run the SQL file from command line. This has another advantage too. If you have to change the query for a large script you do not need to touch the script file or command. Only change the SQL file like this
psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql
psql
명령 줄을 통해 쿼리를 실행해야하는 이유는 무엇 입니까?
- Azure Data Studio 설치 -데이터 개발에 중점을 둔 최신 크로스 플랫폼 편집기입니다. PostgreSQL 자체가 기반으로하는 두 가지 사항은 오픈 소스이며 확장 가능합니다.
- PostgreSQL 확장 설치
로컬 또는 원격 서버에 연결하십시오.
SQL 작성 및 실행에만 집중하십시오.
를 통해 작업을 수행하는 것이 더 편한 경우 연결 저장, 서버 그룹 생성 및 내장 터미널 기능과 같은 유용한 기능 이 많이 있습니다 psql
.
참고 URL : https://stackoverflow.com/questions/19674456/run-postgresql-queries-from-the-command-line
'Programing' 카테고리의 다른 글
Swift에서 객체의 유형을 어떻게 알 수 있습니까? (0) | 2020.04.10 |
---|---|
도메인 기반 디자인 : 도메인 서비스, 응용 프로그램 서비스 (0) | 2020.04.10 |
PHP OPCache를 사용하는 방법? (0) | 2020.04.10 |
자바 스크립트 : 파일 생성 및 저장 (0) | 2020.04.10 |
실행중인 MySQL 쿼리를 중지하려면 어떻게해야합니까? (0) | 2020.04.10 |