- 콘솔 명령어 : PostgreSQL 프로그램을 실행시키기 위한 코드
- SQL문법 : 프로그램 내부에서 이해할 수 있는 데이터베이스 고유의 프로그래밍 언어
1. psql 알아보기
1) 콘솔이랑 무엇인가
-컴퓨터를 조작하기 위해 운영체제를 이용, 이를 '텍스트'로 접근하는 방식을 뜻함
-컴퓨터를 조작하기 위한 도구, 컴퓨터와 대화하는 채널
-컴퓨터를 조작하는 방법으로도 포괄적으로 사용되며 쉘(shell)리가도 부르기도 한다
2) 콘솔은 언제 쓰는가
-윈도우 계열은 '명령프롬프트'를 사용한다
-콘솔은 psql을 조작하거나 서버, 데디터베이스 관리 등에 사용된다
-psql -U postgres(사용자계정) -> 데이터베이스에 접속된다
-postgres=# -> 데이터베이스명
-SQL Shell 명령어
\q : psql을 종료한다
\ㅣ: 데이터베이스를 조회한다
\c : 입력한 데이터베이스로 이동한다
\e : 외부편집기로 SQL 쿼리를 입력할 수 있다
\dt : 현재 데이터베이스에서 테이블을 확할 수 있다
3) 콘솔에서 쿼리문 작성하기
-콘솔은 세미콜론 이전까지 입력된 코드를 한 줄로 인식하고 커리문이 입력된다
-줄바꿈과 들여쓰기를 잘 활용해서 보기 쉽게 작성한다
-\e(외부편집기)를 이용하면 수정이 편하다
postgres=# CREATE TABLE 테이블명(
postgres=# book_id INTEGER,
postgres=# date DATE,
postgres=# name VARCHAR(80)
postgres=# );
2. 테이블 생성하기
1) 데이터베이스 생성하기 (예시)
-CREATE DATABASE book_store => 데이터베이스 생성
-제대로 생성되었는지 확인하려면 \l 명령어를 입력
-만든 데이터에 접속하려면 \c book_store 을 입력한다
-데이터베이스명은 대문자로 작성하더라도 소문자로 저장된다
2) 데이터베이스 삭제하기
-DROP DATABASE 데이터베이스명;
3) 테이블 생성하기
-컬럼을 지정하기 위해서 소괄호를 사용해서 감싸주어야 한다
CREATE TABLE develop_book ( 데이터베이스 안에 테이블을 새로 생성하는 명령어 + 테이블명
book_id INTEGER, 컬럼명 + 자료형
date DATE, 컬럼명 + 자료형
name VARCHAR(80) 컬럼명 + 저료형
);
-테이블명 : 새로 생성하는 테이블의 이름을 지정
-컬럼명 : 데이터와의 관계를 표현하기 위한 컬럼이름을 지정
-자료형 : 컬럼의 자료 데이터 타입을 지정하기
4) 테이블 삭제하기
-DROP TABLE 테이블명;
3. 테이터 추가하기
1) 순서 지정 없이 데이터 자료 추가하기
-'book_id', 'date', 'name'순서임을 알고있다
-date와 name컬럼에 들어갈 데이터는 문자열 데이터이기 때문에 ''로 감싸주어야 한다
INSERT INTO develop_book VALUES(1, '2019-12-17', '프레임워크');
-INSERT INTO : 테이블안에 로우(행)를 생성하는 명령어, 항상함께 작성된다
-테이블명 : INSERT INTO의 명령어를 어느 테이블에 할 것인지 지정
-VALUES : INSERT INTO의 값을 지정한다
-INSERT 와 VALUES 사이에 테이블명을 지정해줘야 한다
-컬럼이 3개 있다면 항상 데이터도 3개를 작성해야 한다
-만약, 대화형 문구를 넣기 위해서 ""를 사용할 때는 ''로 감싸준다 => '" "'
-작은따옴표를 표시하고 싶을 때는 '' 작은따옴표를 2번 사용해야 한다 => '''자바'''
2) 순서 지정하고 데이터 자료 추가하기
-순서를 지정하려면 테이블명과 VALUES사이에 컬럼의 순서를 적엊ㄴ다
-지정한 컬럼의 순서대로 VALUES 다음 소괄호 안에 데이터 순서도 똑같이 해야한다
INSERT INTO develop_book (컬럼1, 컬럼2, 컬럼3) VALUES
(컬럼1에 데이터1, '컬럼2에 데이터2', '컬럼3에 데이터3');
3) 테이블에 자료 여러 개 추가하기
INSERT INTO develop_book VALUES
(자료1, '자료1', '자료1'),
(자료2, '자료2', '자료2'),
(자료3, '자료3', '자료3');
-코드 한줄이 끝났다는 의미로 마지막에 세미콜론을 붙여주면 여러개의 데이터자료가 테이블에 추가된다
4) 데이터 조회하기
1) 모든 자료 조회하기
SELECT : 컬럼을 지정한다
* : 모든 컬럼을 의미한다
FROM : 테이블을 지정한다
SELECT * FROM develop_book;
2) 선택한 자료 조회하기
SELECT book_id, name FROM develop_book;
-LIMIT : 반환하는 로우의 개수를 지정한다
-OFFSET : 반환하는 로우의 시작시점을 지정한다
-LIMIT 명령어는 항상 처음에 존재하는 로우부터 출력된다
OFFSET 명령어를 사용해 시작지점을 정한다
postgreSQL은 롱의 개수를 제일 위에서 0부터 시작한다
-ORDER BY : 반환하는 로우를 정렬할 때 사용한다
-ORDER BY 정렬할 컬럼지정 ASC;
-ASC : 오름차순 정렬 (디폴트)
-DESC : 내림차순 정렬
-여러 컬럼을 지정하고 싶다면 ,쉼표로 나열
-WHERE : 지정한 로우만 조회가 되도록 필터 기능을 한다
SELECT * FROM develop_book
WHERE book_id = 1;
-어떤 조건을 만족시키면 그 조건에 부합하는 데이터만 출력하도록 필터링 해준다
-UPDATE와 DELETE절과 함께 쓰이기도 한다
3) 서브쿼리
-쿼리문 안에 쿼리문이 반복되는 구조를 서브쿼리 라고 한다
-첫번째 퀴리문을 '메인 쿼리문' 이라하고, 바로 따르는 소괄호안에 쿼리문을 '서브쿼리문'이라 한다
-메인쿼리문과 서브쿼리문을 구분하는 것은 소괄호 이다
SELECT * FROM develop_book
WHERE '2020-01-03' = (
SELECT date FROM develop_book
WHERE book_id = 3
);
5. 데이터 수정하기
1) 선택한 컬럼 데이터 수정하기
UPDATE 테이블명
SET 컬럼명 = 바꿀 데이터 내용
WHERE 수정할 로우의 조건
RETURNING *; --수정한 내용 바로 조회하기
-UPDATE 키워드로 테이블을 지정한다
-WHERE 키워드로 수정할 컬럼의 범위를 지정한다
-SET 키워드로 데이터를 수정한다
-WHERE 키워드는 선택사항이다
-SET 명령어에서 수정할 컬럼을 지정하지 않았다면 모든 컬럼의 값을 변경한다
2) 테이블 복사와 정렬
-데이터베이스는 최근의 수정된 로우를 가장 마지막에 출력한다
-이를 원하는 순서대로 정렬하려면 ORDER BY쿼리문을 이용한다
-AS 명령어
-출력결과의 컬럼명를 원래 이름과 다르게 변경하여 출력하는 기능이다 (별칭)
-AS는 새로운 테이블에 어떤 데이터를 넣을지 매개하는 키워드 역할도한다
-복사와 정렬
CREATE TABLE develop_book_2 AS
SELECT * FROM develop_book
ORDER BY book_id ASC;
-새로운 테이블명을 develop_book_2로 지정하면서 기존 develop_book의 내용을 복붙했다
6. 데이터 삭제하기
1) 선택한 컬럼 데이터 삭제하기
-컬럼의 데이터를 삭제하는 쿼리문의 키워드는 DELETE 이다
DELETE FROM 테이블명 WHERE 컬럼명 = 삭제할 데이터;
2) 모든 데이터 삭제하기
DELETE FROM 테이블명;
'SQL > 모두를 위한 postgreSQL' 카테고리의 다른 글
[PostgreSQL] 5. 데이터의 집계_2 (0) | 2023.03.17 |
---|---|
[PostgreSQL] 5. 데이터의 집계 및 결합_1 (0) | 2023.03.16 |
[PostgreSQL] 4.쿼리에사용되는연산자와함수 (0) | 2023.03.14 |
[PostgreSQL] 3.데이터 타입에 알맞은 테이블 만들기 (2) | 2023.03.10 |
[PostgreSQL] 1.PostgreSQL이해하기 (0) | 2023.03.07 |