데이터를 테이블에 삽입했습니다. … 행과 열 및 데이터가있는 전체 테이블을보고 싶습니다. 명령을 통해 어떻게 표시 할 수 있습니까?
답변
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 “입니다.
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
답변
나는 또한 쿼리가
SELECT * FROM 테이블 이름;
psql 명령 프롬프트에서 오류를 제공하고
SELECT * FROM “tablename”;
훌륭하고 이상하게 실행되므로 큰 따옴표를 잊지 마십시오. 나는 항상 데이터베이스를 좋아했다 🙁