[Database] TIL 6(211201)ㅣPostgreSQL실습: 테이블(pgAdmin이용)

Choi Song Yi·2021년 12월 1일
0
  • PostgreSQL: 데이터베이스 관리시스템(DBMS)

psql 쉘 실행

위와 같이 'psql -U postgres를 입력하고, 미리 설정한 암호를 입력하면 psql쉘을 실행할 수 있다.

데이터베이스 생성

데이터베이스 내 테이블을 생성하고 싶으면 먼저 데이터베이스를 만들어야한다.

CREATE DATABASE 원하는 DB 이름;
CREATE DATABASE shop

데이터베이스가 만들어졌다.(GUI툴을 직접 이용하는 방법도 있지만 최대한 직접 입력하면서 익히는 것부터 하겠다.)

만들어진 데이터베이스를 조회하는 명령어 \l

테이블

테이블 생성

CREATE TABLE 새 테이블 이름(칼럼명1 데이터타입, 칼럼명2 데이터타입, 칼럼명3 데이터타입...);
CREATE TABLE prod_info(id NUMERIC(5), name VARCHAR(40), prod_date DATE, price INTEGER, fac_num NUMERIC(7));

테이블이 생성되었다.

만들어진 테이블을 조회하는 명령어 \dt

테이블 조회

SELECT칼럼명FROM 테이블명
SELECT*FROM prod_info;

*을 입력하면 테이블 전체를 조회할 수 있다.

일부 조회

SELECT*FROM prod_info LIMIT 2 OFFSET 1;

LIMIT n개만 보여줘
OFFSET은 1번째부터 보여줘(언급없으면 0번째부터이다)이다.
(PostgreSQL index 0부터 시작하지만, 다른 언어는 아닐 수 있음.)

테이블 변경

테이블 삭제

DROP TABLE prod_info;

테이블 수정

ALTER TABLE prod_info RENAME TO ord_info;
prod_info에서 ord_info로 수정하겠다.

테이블내 데이터

데이터 타입

다양하지만 주로 쓰이는 것 위주로 정리하였다.

1. 숫자형: INTEGER, NUMERIC(n), SERIAL

2. 문자형: VARCHAR(n)

  • 참고로 GUI에선 VARCHAR 대신 character varying으로 데이터타입을 선택하면 된다.
  • n(데이터의 길이)을 지정하지 않으면 알아서 해준다.

3. 날짜 및 시간: DATE, TIME, TIMESTAMP

4. 불리언형: BOOLION

  • TRUE, FALSE, Null이 있다.
  • 1은 TRUE이며, 0은 FALSE이다. PostgreSQL에선 0과 1이외엔 취급하지 않는다.

5. Json형: JSON, JSONB(<- 빠르게 읽을 수 있기 때문에 더 많이 씀.)

  • 구조 : 키 값에 대응하는 밸류값에 제이슨을 또 넣을 수 있다.

데이터 삽입

INSERT INTO prod_info VALUES(1, 'Sojung', '2021-12-01', 20000, 1334552),
(2, 'Minju', '2021-12-02', 15000, 1435235),
(3, 'Eungi', '2021-12-05', 29000, 1423344);

3줄의 데이터를 삽입했다.(제대로 되면 cmd에선 INSERT 0 3 라고 뜬다.)

INSERT INTO prod_info (id, name, prod_date, price, fac_num) VALUES
(1, 'Sojung', '2021-12-01', 20000, 1334552),
(2, 'Minju', '2021-12-02', 15000, 1435235),
(3, 'Eungi', '2021-12-05', 29000, 1423344);

  • 위와 같이 원하는 칼럼명을 쓰고, 쓴 칼럼명 순서대로 형식을 맞춰 데이터를 삽입해도 된다.

  • 위와 같이 데이터 삽입 후 select를 활용해 gui로 볼 수 있다.

데이터 정렬

SELECT*FROM prod_info ORDER BY prod_date ASC;

  • ASC: 오름차순, DESC: 내림차순 (언급없으면 오른차순이 디폴트값)

데이터 조회

SELECT*FROM shop WHERE id>=3;

  • id값이 >=3이 참인 데이터들이 조회된다.
    (<> : 서로 다르다)

데이터 수정

UPDATE 테이블명 SET 컬럼명=바꿀 데이터값 WHERE 바꿀위치 RETURNING
UPDATE prod_info
SET name='Sinji'
WHERE id=2
RETURNING
;

  • RETURNING은 앞에 수행한 내용을 바로 보고싶을 때 쓰는 명령어이다.

SELECT prod_date AS ord_date FROM prod_info;

prod_date를 ord_date로 바꾼다.

데이터 삭제

DELETE FROM 테이블명 WHERE 컬럼명=삭제할 데이터의 컬럼값;
DELETE FROM prod_info WHERE id=3;

  • id=3인 행의 데이터를 prod_info에서 삭제한다는 뜻.

데이터 무결성

  • DB 내에 정확하고 유효한 데이터만을 유지시키는 속성을 말한다.
  • CRUD 수행 시 데이터 값을 일관되고 정확하게 유지하고자 함이다.

- 무결성 제약조건

  • 개체 무결성
    : 모든 테이블이 프라이머리 키(PK)를 가져야 하며 PK로 선택된 칼럼은 고유하고 NULL값을 허용하지 않아야 한다. 데이터를 구분하는 고유한 정보이다.
  • 참조 무결성
    : 외래 키(FK)값이 빈(null)값이거나, 참조된 테이블의 기본 키 값과 동일해야 한다.
  • 범위 무결정
    : 예시를 들어 설명하자면, 사용자 화면에서 제약조건을 거는 경우가 있다.
    ex)휴대폰 번호 입력시 숫자만, 비밀번호 입력시 특수문자 제외.

- 참고: CRUD란?

이름조작SQL
Create생성INSERT
Read(or Retrieve)읽기(or 인출)SELECT
Update갱신UPDATE
Delete(or Destroy)삭제(또는 파괴)DELETE
profile
2021.11.22 ~ 국비지원과정 수강ing

0개의 댓글