답변:
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
검색어를 입력하십시오.
psql -U username -c your_database "SELECT * FROM my_table"
cmd.exe /c chcp 1252
.
psql: FATAL: database "SELECT * FROM tb_name" does not exist
응용 프로그램 (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의 psql 명령 프롬프트에 대해 아래와 같은 쿼리가 작성됩니다.
D : \ TOOLS \ Postgresql-9.4.1-3 \ bin> psql -U postgres -d DatabaseName -h localhost-t -c "사용자로부터 u. \"UserName \ "선택 u 여기서 u. \"UserId \ "= 1;
@Grant 답변에 의심의 여지가 없습니다. 그러나 열 이름이 자연 과 같은 postgresql의 예약 키워드와 유사한 경우와 같은 문제가 발생합니다 .이 경우 쿼리 필드에 "\ natural \"가 필요하므로 명령 줄에서 유사한 SQL을 실행하기가 어렵습니다. 그래서 내 접근 방식은 SQL을 별도의 파일로 작성하고 명령 줄에서 SQL 파일을 실행하는 것입니다. 이것은 또 다른 장점이 있습니다. 큰 스크립트에 대한 쿼리를 변경해야하는 경우 스크립트 파일이나 명령을 터치 할 필요가 없습니다. 이처럼 SQL 파일 만 변경하십시오.
psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql
특정 유형의 명령문의 경우 사용하기에 더 적합한 것을 찾을 수 있습니다 Azure Data Studio
. 스튜디오를 사용하면 타이핑 문장과 출력을보다 편안하게 읽을 수 있습니다.
아래 단계를 따르십시오.
로컬 또는 원격 서버에 연결하십시오.
SQL 작성 및 실행에만 집중하십시오.
를 통해 작업을 수행하는 것이 더 편한 경우 연결 저장, 서버 그룹 생성 및 내장 터미널 등의 유용한 기능 이 많이 있습니다 psql
.
--single-line
(또는-s
)이 있습니다.