어떻게 설치하고 우분투 18.04에 PostgreSQL을 사용하기

 

어떻게 설치하고 우분투 18.04에 PostgreSQL을 사용하기

관계형 데이터베이스 관리 시스템은 많은 웹 사이트와 응용 프로그램의 핵심 구성 요소입니다. 그들은 정보를 저장, 구성 및 액세스 할 수있는 구조화 된 방법을 제공합니다.

PostgreSQL의 또는 포스트 그레스는 관계형 데이터베이스 관리 시스템입니다 SQL 쿼리 언어의 구현을 제공합니다. 그것은 많은 크고 작은 프로젝트를위한 인기있는 선택이며, 표준을 준수하는 장점을 가지고 있으며,의 (예 : 신뢰할 수있는 거래와 동시 읽기 잠금 등) 다양한 고급 기능을 가지고 있습니다.

이 가이드는 18.04 VPS 인스턴스 우분투에 포스트 그레스를 설치하는 방법을 보여줍니다, 기본 데이터베이스 관리를위한 지침을 제공합니다.

전제 조건

이 튜토리얼을 따라하기 위해, 당신은 우리의 초기 우분투 18.04 서버 설치 가이드에 따라 구성되어 우분투 18.04 서버가 필요합니다. 이 전제 조건 튜토리얼을 완료 한 후, 서버가 sudo는 권한 및 기본 방화벽 루트가 아닌 사용자가 있어야합니다.

PostgreSQL 설치

당신이 사용할 수 있도록 기본 우분투 소프트웨어 패키지 저장소, 포스트 그레스를 포함 apt이러한 패키지를 설치하는 패키지 시스템을.

이 처음이기 때문에 apt이 세션에서이 로컬 패키지 인덱스를 새로 고치십시오. 그런 다음, 포스트 그레스 패키지를 설치하고 -contrib소프트웨어 패키지의 추가적인 유틸리티 및 기능을 추가 :

sudo apt update
sudo apt install postgresql postgresql-contrib

이제 소프트웨어를 설치, 우리는 작동의 차이를 이해 할 수 있고, 유사한 데이터베이스 관리 시스템은 사무실로 사용하는 것이 가능하다.

역할과 PostgreSQL 데이터베이스를 사용하여

기본적으로 포스트 그레스는 인증 및 권한 부여를 처리하는 "역할"이라는 개념을 사용. 다음은 몇 가지 측면에서 일반적인 유닉스 스타일의 계정과 비슷하지만 포스트 그레스는 사용자 및 그룹을 구분하지만, 더 유연한 용어 경향하지 않습니다 "역할."

설치 후, 포스트 그레스가 사용하도록 설정되어 답하라 신원 는 포스트 그레스 역할과 유닉스 / 리눅스 시스템 계정과 일치 의미 검증을. 유닉스 / 리눅스 그 역할 로그인과 같은 이름, 역할 포스트 그레스가있는 경우 사용자 이름을 입력합니다.

설치 프로세스는 역할과 관련된 기본 포스트 그레스입니다 포스트 그레스라는 이름의 사용자 계정을 만듭니다. 포스트 그레스를 사용하려면 해당 계정에 로그인 할 수 있습니다.

당신이 포스트 그레스에 액세스하기 위해이 계정을 사용할 수있는 여러 가지 방법이 있습니다.

포스트그레스 계정으로 전환

서버에 계정 포스트 그레스에 다음 스위치를 입력 :

sudo -i -u postgres

이제 포스트 그레스 즉시 다음 명령을 입력하여 프롬프트에 액세스 할 수 있습니다 :

psql

즉시 데이터베이스 관리 시스템과 상호 작용할 수있는 이곳에서이, 당신은 PostgreSQL의 프롬프트에 로그온 소요됩니다.

PostgreSQL의 프롬프트를 종료하려면 다음 명령을 입력 :

\q

이것은 다시로 이동 postgres리눅스 명령 프롬프트.

전환 계정없이 신속한 액세스를 POSTGRES

또한 직접이 포스트 그레스 계정을 사용하려는 명령을 실행할 수 있습니다 sudo.

예를 들어, 마지막 예를 들어, 당신은 다음 실행 포스트 그레스 사용자에게 제 1 스위칭으로 표시됩니다 psqlPostgres의 포스트 그레스에게 프롬프트 프롬프트를 엽니 다. 당신은 할 수 있습니다 psql포스트 그레스의 사용자로 sudo다음과 같은 단일 작업의 명령으로이 작업을 완료합니다 :

sudo -u postgres psql

이것은 당신이 중간 필요없이 포스트 그레스에 로그온 할 때 지시합니다 bash쉘.

마찬가지로, 대화 형 포스트 그레스 세션을 종료하려면 다음 명령을 입력 할 수 있습니다 :

\q

많은 사용 사례는 여러 포스트 그레스 역할이 필요합니다. 이를 구성하는 방법은 다음과 같습니다.

새 역할을 만듭니다

현재, 당신은 단지 데이터베이스에 포스트 그레스 역할을 구성해야합니다. 새 역할을 만들 명령 줄 명령을 사용할 수 있습니다 createrole. --interactive플래그는 새 역할의 이름을 입력하라는 메시지를 표시하고, 수퍼 유저 권한이 있어야할지 여부를 묻는 것입니다.

당신이 포스트 그레스 계정을 로그인 한 경우 다음을 입력하여 새 사용자를 생성 할 수 있습니다 :

createuser --interactive

반대로, 당신이 사용하는 것을 선호하는 경우 sudo일반 계정으로 전환하지 않고 각 명령을 입력합니다 :

sudo -u postgres createuser --interactive

이 스크립트는 몇 가지 옵션을하라는 메시지를 표시하고 올바른 포스트 그레스는 사용자의 응답에 따라 사양에 따라 사용자를 생성하는 명령을 수행합니다.

산출

Enter name of role to add: sammyShall the new role be a superuser? (y/n) y 

당신은 몇 가지 추가 표시를 전달하여 더 많은 제어를 얻을. 보고 man페이지보기 옵션 :

man createuser

이제 포스트 그레스 사용자를 새로 설치해야하지만 당신은 어떤 데이터베이스를 추가하지 않았습니다. 다음 섹션에서는이 과정을 설명합니다.

새 데이터베이스를 만듭니다

기본적으로 포스트 그레스 인증 시스템의 경우 또 다른 가정은 로그인에 어떤 역할을 위해,이 역할은 액세스 할 수있는 데이터베이스와 같은 이름을 갖게됩니다.

이것은 당신이 명명 된 새미의 사용자를 만들 경우, 역할도의 "새미"로 알려진, 기본적으로 데이터베이스에 연결을 시도합니다 것을 의미한다. 당신은이를 사용할 수있는 createdb적절한 데이터베이스 명령을 만들 수 있습니다.

당신이 포스트 그레스 계정을 로그온 한 경우, 다음과 같이 입력 할 수 있습니다 :

createdb sammy

당신이 사용하는 것을 선호 반대로, sudo일반 회계에서 각 명령을 전환 할 필요없이, 당신은 입력 할 수 있습니다 :

sudo -u postgres createdb sammy

필요에 따라 이러한 유연성은 데이터베이스를 생성 할 경로의 다양한 제공

새로운 역할 팁을 공개 포스트 그레스

용도에 ident로그인 기반 인증을 사용하면 같은 이름과 리눅스 사용자의 포스트 그레스 역할 데이터베이스가 필요합니다.

당신이 사용할 수있는 리눅스 사용자와 일치하지 않는 경우, 당신은 그것을 사용할 수있는 adduser명령을 만들 수 있습니다. 당신은 당신의 루트가 아닌 사용자 계정에서이 있어야 sudo이 작업을 수행합니다 (포스트 그레스의 사용자로 로그인하지 의미) 권한 :

sudo adduser sammy

새 계정을 사용할 수있게되면, 당신은 전환하고 다음 명령을 입력하여 데이터베이스에 연결할 수 있습니다 :

sudo -i -u sammy
psql

또는, 당신이 인라인을 수행 할 수 있습니다 :

sudo -u sammy psql

모든 구성 요소가 제대로 구성되어 있다고 가정하면,이 명령은 자동으로 기록합니다.

당신이 당신의 사용자가 서로 다른 데이터베이스에 연결하려면이 같은 데이터베이스를 지정함으로써 달성 될 수있다 :

psql -d postgres</span

로그인 한 후, 당신은 현재의 연결 정보를 확인하려면 다음을 입력 할 수 있습니다 :

\conninfo

산출

You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432". 

당신은 유용이 아닌 기본 또는 기본이 아닌 사용자 데이터베이스에 연결합니다.

만들고 테이블을 삭제

이제 PostgreSQL 데이터베이스 시스템에 연결하는 방법을 알고, 당신은 몇 가지 기본적인 포스트 그레스 관리 작업을 배울 수 있습니다.

첫째, 일부 데이터를 저장하는 테이블을 만듭니다. 예를 들어, 테이블의 일부는 놀이기구를 설명했다.

다음과 같이 명령의 기본 구문은 다음과 같습니다

CREATE TABLE table_name (    column_name1 col_type (field_length) column_constraints,    column_name2 col_type (field_length),    column_name3 col_type (field_length));

당신이 볼 수 있듯이,이 명령은 테이블의 이름을 입력 한 다음 컬럼과 컬럼 데이터 유형 및 필드의 최대 길이를 정의합니다. 또한 각 열의 테이블의 제약 조건을 추가 할 수 있습니다.

당신은 할 수 에서 여기에 대해 자세히 배울 만들기 및 포스트 그레스의 테이블을 관리하는 방법에 정보를 표시합니다.

데모 용으로 다음과 같습니다 간단한 테이블을 만들 :

CREATE TABLE playground (    equip_id serial PRIMARY KEY,    type varchar (50) NOT NULL,    color varchar (25) NOT NULL,    location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),    install_date date);

이 명령은 놀이터 장비 재고 양식을 만듭니다. 이 장치 ID와 함께 시작한다 serial. 이 데이터 유형은 자동으로 증가하는 정수입니다. 또한이 칼럼의 제약 준 primary key이 값은 독특하고 비어 있지해야한다는 것을 의미한다.

이 (들어 equip_idinstall_date),이 명령은 필드 길이를 지정하지 마십시오. 필요한 열이 어떤 종류의 길이를 제공하기 때문이다 암시 적 유형의 길이 있기 때문이다.

장비 다음 두 명령은 열을 생성 type하고 color그 각각이 비어하지 않을 수 있습니다, 각각. 이 명령어는 이후 생성 된 location열이 값에 대해 8 개 개의 가능한 값 중 하나를 요구되는 제약 조건을 만든다. 마지막 명령은 날짜 열, 장치에 기록 된 날짜를 만듭니다.

당신은 새 테이블을 보려면 다음을 입력 할 수 있습니다 :

\d

산출

                  List of relations Schema |          Name           | Type | Owner --------+-------------------------+----------+------- public | playground | table | sammy public | playground_equip_id_seq | sequence | sammy(2 rows) 

귀하의 여기 테이블에 놀이터 있지만, 일부 알려져있다 playground_equip_id_seq이러한 유형의 뭔가 sequence. 이다 serial위해를 equip_id컬럼에 의해 제공되는 종류의 표현입니다. 이 시퀀스의 다음 번호를 추적, 자동 열이 유형의 생성.

당신이 순서뿐만 아니라 양식을보고 싶다면, 당신은 입력 할 수 있습니다 :

\dt

산출

          List of relations Schema |    Name    | Type | Owner --------+------------+-------+------- public | playground | table | sammy(1 row) 

표에서 추가, 삭제 및 쿼리 데이터를

이제 양식을 가지고, 당신은 그것에서 일부 데이터를 삽입 할 수 있습니다.

예를 들어, 테이블을 호출함으로써 다음과 같이, 각 열에 대한 데이터를 슬라이드 스윙, 컬럼 이름을 추가하고, 제공하기 위해 추가된다 :

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2017-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-08-16');

입력 데이터는 몇 가지 일반적인가 중지되지 않도록주의해야합니다. 예를 들어, 인용 부호 열 이름을 대체하지만, 입력 열 값 따옴표를 요구하지 않는다.

또한 사용자가 입력하지 않는 것이 기억하는 equip_id값 열을. 표에 새 행을 만들 때마다 자동으로 데이터를 생성하기 때문입니다.

다음을 입력하여 추가 정보 검색 :

SELECT * FROM playground;

산출

 equip_id | type  | color  | location  | install_date ----------+-------+--------+-----------+-------------- 1 | slide | blue | south | 2017-04-28 2 | swing | yellow | northwest | 2018-08-16(2 rows) 

여기에서, 당신은 볼 수 있습니다 equip_id성공 및 기타 데이터가 올바른지 모든 조직에 입력합니다.

놀이터에서 슬라이드가 깨진 당신이 그것을 제거해야하는 경우, 당신은 또한 테이블에서 행을 삭제하려면 다음을 입력 할 수 있습니다 :

DELETE FROM playground WHERE type = 'slide';

문의 양식 다시 :

SELECT * FROM playground;

산출

 equip_id | type  | color  | location  | install_date ----------+-------+--------+-----------+-------------- 2 | swing | yellow | northwest | 2018-08-16(1 row) 

당신은 슬라이드 테이블의 더 이상 일부가 없음을 알 수 있습니다.

추가하고 테이블에서 열을 제거

당신이 양식을 작성한 후, 비교적 쉽게 열을 추가 또는 삭제하도록 수정 될 수 있습니다. 마지막으로 장비 유지 보수 액세스의 각 부분을 표시하려면 다음 명령을 실행하여 하나를 추가 :

ALTER TABLE playground ADD last_maint date;

다시 테이블 정보를 보면, 새로운 열이 추가되었습니다 볼 수 있습니다 (그러나 데이터를 입력하지 않은) :

SELECT * FROM playground;

산출

 equip_id | type  | color  | location  | install_date | last_maint ----------+-------+--------+-----------+--------------+------------ 2 | swing | yellow | northwest | 2018-08-16 | (1 row) 

열이 동등하게 단순 삭제합니다. 당신은 직원이 유지 보수 기록을 추적하기 위해 별도의 도구를 사용하여 찾을 경우 다음을 입력하여 열을 삭제할 수 있습니다 :

ALTER TABLE playground DROP last_maint;

이것은 제거 last_maint열과 발견 된 값을하지만, 그대로 다른 모든 데이터를 둡니다.

테이블의 데이터 업데이트

지금까지, 당신은이 튜토리얼은 기존 항목을 수정하는 방법에 대해 설명에 아직 있지만, 테이블 및 방법을 제거하는 방법에 레코드를 추가하는 방법을 배웠다.

당신은 값을 설정할 수 있습니다 당신은 당신이 기존 항목을 열 값을 업데이트 할 레코드를 쿼리하여 사용하고 싶습니다. 당신은 (테이블과 일치하는 것 "동요"기록을 조회 할 수 있습니다 스윙)과 색상이 변경 "빨간색." 당신이 페인트 작업을 설정하는 경우 유용 할 수있는, 스윙 :

UPDATE playground SET color = 'red' WHERE type = 'swing';

당신은 작업의 성공을 다시 여부 데이터를 쿼리하여 확인할 수 있습니다 :

SELECT * FROM playground;

산출

 equip_id | type  | color | location  | install_date ----------+-------+-------+-----------+-------------- 2 | swing | red | northwest | 2010-08-16(1 row) 

당신이 볼 수 있듯이, 슬라이드는 이제 빨간색으로 등록되어 있습니다.

추천

출처www.cnblogs.com/wwh/p/11610945.html