PostgreSQL | psql을 사용하여 PostgreSQL에 연결 | psql에서 SQL 명령 실행


psql에서 SELECT 문이나 CREATE 문 등 SQL 명령을 실행하는 방법에 대해 설명한다.

SQL 명령을 실행하기

데이터베이스와 테이블을 만들거나 테이블에 저장된 데이터를 검색하거나 하려면 psql에서 SQL 명령을 실행해야 한다 (실제로는 SQL 명령이 서버로 전송되어 처리된다). SQL 명령을 실행하려면 먼저 명령 프롬프트를 시작하고 psql을 사용하여 PostgreSQL에 연결한다.

C:\Users\kimkc>psql -U postgres
postgres 사용자의 암호:
psql (12.2)
도움말을 보려면 "help"를 입력하십시오.

postgres=#

다음과 같은 프롬프트가 표시된다.

postgres=#

SQL 명령을 실행하려면 다음과 같이 입력한다.

postgres=# SQL문;

SQL 명령을 입력 할 때는 마지막에 세미콜론 (;)을 입력한 후 [Enter] 키를 누르면 SQL 명령이 실행된다. 세미콜론을 입력하기 전에 그냥 [Enter] 키를 눌러도 분할하여 입력을 하는 것만으로 실행되지 않는다.

그러면 실제로 해보도록 하자. 새 데이터베이스를 만든다. 다음과 같이 입력 한 후에 [Enter] 키를 누른다.

postgres=# create database sample;
postgres=# create database sample;
CREATE DATABASE
postgres=#

SQL 명령이 서버로 전송되어 처리되었다.

SQL 명령을 분할하여 입력하기

SQL 명령이 긴 경우에는 분할하여 입력 할 수 있다. 그러면 실제로 해보도록 하자. 이번 예로 테이블을 만들 SQL 명령을 분할하여 입력 해 본다. 먼저 create 만 입력하고 [Enter] 키를 누른다.

postgres=# create
postgres-#

SQL 명령을 실행할 때 마지막에 세미콜론을 입력하고 Enter 키를 누른다. 세미콜론이 입력되기 전에 [Enter] 키를 누르면 입력이 분할 된 것으로 간주더;ㄴ다.

분할된 입력을 할 때 프롬프트 표시가 postgres=#에서 postgres-#으로 바껴서 구별 할 수 있게 되었다.

그럼 다음 table staff 입력하고 [Enter] 키를 누른다.

postgres=# create
postgres-# table staff
postgres-#

마지막으로 (id integer, name character varying (10)); 입력하고 [Enter] 키를 누른요. 세미콜론 (;)이 입력된 후 [Enter] 키를 눌렸기 때문에 SQL 명령의 입력이 완료되었다고 판단되는 SQL 명령이 실행된다.

postgres=# create
postgres-# table staff
postgres-# (id integer, name character varying(10));
CREATE TABLE
postgres=#

SQL 명령이 실행되어 새로운 테이블이 생성되었다.

이렇게 긴 SQL 명령은 입력 도중 [Enter] 키를 누르면 분할하여 입력 할 수 있다.

분할하여 입력하는 도중에 취소하기

SQL 명령을 분할하여 입력하고있을 때 중간에 SQL 명령의 입력을 취소하고자 하는 경우에는 psql 명령 \r을 입력하고 Enter 키를 누른다.

실제로 해보록 하자. create table까지 입력하고 [Enter] 키를 누른다.

postgres=# create table
postgres-#

여기에서 입력을 취소하기 위해 \r을 입력하고 Enter 키를 누른다.

postgres=# create table
postgres-# \r
쿼리 버퍼 초기화 (비웠음).
postgres=#

이것으로 SQL 명령의 입력이 취소된다.

psql에서 SQL 명령을 실행하는 방법에 대해 설명하였다.