다양한 작업 수행을 위해 '콘솔'에 코드를 입력해서 DB를 관리하고 조작할 것
* 콘솔 명령어 : PostgreSQL 프로그램을 실행시키기 위한 코드
* SQL 문법 : 프로그램 내부에서 이해가능한 DB 고유의 프로그래밍 언어
콘솔
콘솔 : 컴퓨터를 조작하기 위한 도구, 컴퓨터와 대화하는 '채널'
컴퓨터를 조작하는 방법으로도 포괄적으로 사용되며 '쉘(Shell)'이라고도 부름
윈도우 계열 - 명령 프롬프트 사용
psql -U postgres
SQL Shell 명령어
명령어 | 설명 | 예시코드 |
\q | psql 종료 | |
\l | DB 조회 | |
\c | 입력한 DB로 이동 | \c 데이터베이스명 |
\e | 외부편집기(메모장 또는 텍스트편집기)로 SQL 쿼리 입력 | |
\dt | 현재 DB에서 테이블 확인 가능 |
콘솔에서 쿼리문 작성
한 줄이 길어지면 적당히 끊고 엔터
줄바꿈이 된 상태에서도 쿼리문 계속 작성 가능하고, 모든 코드 입력 완료 후 ; 붙여줌
들여쓰기는 Tab 키 사용
테이블 생성
DB 생성
CREATE DATABASE skirt_store;
'skirt_stroe'라는 DB 생성
postgres=# \c skirt_store
DB 삭제
DROP DATABASE 데이터베이스명;
테이블 생성
CREATE TABLE skirt_index(skirt_in INTEGER, date DATE, name VARCHAR(80));
테이블명 컬럼명 자료형 컬럼명 자료형 컬럼명 자료형
명령어 | 설명 |
CREATE TABLE | DB 안에 테이블을 새로 생성하는 명령어 |
테이블명 | 새로 생성하는 테이블의 이름 지정 |
컬럼명 | 데이터와의 관계 표현하기위해 컬럼이름 지정 |
자료형 | 컬럼 자료 데이터 타입 지적 |
테이블 삭제
DROP TABLE 테이블명;
데이터 추가
순서 고려 없이 데이터 자료 추가
테이블 컬럼의 순서에 맞춰서 넣어줄 데이터의 순서도 맞춤
INSERT INTO skirt_index VALUES( 1, '2021-01-04', 'stripe skirt');
테이블명 skirt_id date name
명령어 | 설명 |
INSERT INTO | 테이블 안에 로우를 생성 |
테이블명 | INSERT INTO의 명령어를 어느 테이블에 할 것인지 지정 |
VALUES | INSERT INTO의 값을 지정 |
INSERT INTO와 VALUES 사이에 테이블 명을 지정해줘야함
순서 고려해서 데이터 자료 추가
컬럼 순서를 미리 지정하고 순서에 맞추어 입력
INSERT INTO skirt_index (컬럼1, 컬럼2, 컬럼3) VALUES
( 컬럼1에 데이터1, '컬럼2에 데이터2', '컬럼3에 데이터3');
순서를 지정하기 위해서는 테이블명과 VALUES 사이에 컬럼의 순서를 적음
VALUES 다음에 나오는 컬럼에 들어갈 값을 소괄호로 감싸줌
테이블에 자료 여러 개 추가
순서 고려 X
INSERT INTO skirt_index VALUES
(자료1, '자료1', '자료1'),
(자료2, '자료2', '자료2'),
(자료3, '자료3', '자료3'),
.
.
.
(자료n, '자료n', '자료n');
소괄호 하나가 로우 한 줄을 의미함
순서 고려
INSERT INTO skirt_index (skirt_id, date, name) VALUES
(자료1, '자료1', '자료1'),
.
.
.
(자료n, '자료n', '자료n');
데이터 조회
자료 조회
명령어 | 설명 |
SELECT | 컬럼 지정 |
* | 모든 컬럼 |
FROM | 테이블 지정 |
SELECT * FROM skirt_index;
* 대신 원하는 컬럼을 쓰면 해당 컬럼만 조회 가능
명령어 | 설명 |
LIMIT | 반환하는 로우의 개수 지정 |
OFFSET | 반환하는 로우의 시작시점 지정 |
ORDER BY | 반환하는 로우 정렬 시 사용 |
WHERE | 지정한 로우만 조회 되도록 필터 기능 |
LIMIT
테이블로부터 가져오는 로우의 개수 제한
LIMIT 명령어를 사용하면 처음에 존재하는 로우부터 출력됨
OFFSET 명령어를 사용하면 로우의 시작지점 지정 가능
ORDER BY
조회할 데이터를 오름차순 또는 내림차순으로 정렬
* 반드시 정렬할 칼럼을 지정해야함
ASC는 반환 데이터를 오름차순으로 정렬, DESC는 내림차순으로 정렬.
순서를 따로 정하지 않으면 기본적으로 오름차순으로 정렬됨
WHERE
컬럼 안에 특정한 내용을 필터링하며 조회
WHERE절은 조건을 만족시키면 그 조건에 부합하는 데이터만 출력하도록 필터링함
연산자 | 설명 |
= | 서로 같다 |
<> | 서로 다르다 |
> | 오른쪽 값보다 왼쪽 값이 더 크다 |
< | 왼쪽 값보다 오른쪽 값이 더 크다 |
>= | 오른쪽 값보다 왼쪽 값이 더 크거나 같다 |
<= | 왼쪽 값보다 오른쪽 값이 더 크거나 같다 |
서브쿼리
쿼리문 안에 쿼리문이 반복되는 구조
첫 번째 쿼리문이 '메인 쿼리문'
바로 따르는 소괄호 안에 쿼리문이 '서브쿼리문'
name='green'이고 skirt_index=2인 행은 없기 때문에 아래와 같은 결과화면이 나온다.
데이터 수정
선택한 컬럼 데이터 수정
UPDATE 테이블명
SET 컬럼명 = 바꿀 데이터 내용
WHERE 수정할 로우의 조건
RETURNING * ; --수정한 내용 바로 조회
UPDATE 으로 테이블을 지정하고
(WHERE 으로 수정 컬럼 범위 지정, -- 선택사항)
SET 으로 데이터 수정
SET으로 수정 컬럼 지정하지 않으면 모든 컬럼의 값을 변경하게 됨
4에 있던 name=green을 horizon으로 바꿔보았다
테이블 복사
1. AS 명령어
출력 결과의 컬럼명을 원래 이름과 다르게 변경하여 출력
name 컬럼을 AS 명령어를 사용해서 출력 시 pattern으로 바꿈
2. 복사와 정렬
기존 테이블 테이터를 정렬해서 복사 후 새로운 테이블에 붙여넣음
CREATE TABLE skirt_class AS
SELECT * FROM skirt_index
ORDER BY skirt_id DESC;
DROP TABLE skirt_index;
기존 테이블 삭제
ALTER TABLE skirt_class RENAME TO skirt_index;
새로운 테이블 이름 변경
데이터 삭제
선택한 컬럼 데이터 삭제
DELETE FROM 테이블명 WHERE 컬럼명 = 삭제할 데이터;
모든 데이터 삭제
DELETE FROM 테이블명;
cmd로만 작성하니 파이썬을 cmd로 하나하나 치고 있는 느낌이 난다.
다음 게시글에서는 pgAdmin4를 사용하여 cmd에서 했던 작업을 동일하게 해볼 예정이다.
'PostgreSQL' 카테고리의 다른 글
3.1. 데이터 타입에 맞는 알맞는 테이블 (1) | 2022.01.06 |
---|---|
2.2. pgAdmin4 (1) | 2022.01.06 |
PostgreSQL (0) | 2022.01.03 |
1.3. PostgreSQL 구조 (0) | 2022.01.03 |
1.2. PostgreSQL 개발환경 구축 (0) | 2022.01.03 |