Notice
Recent Posts
Recent Comments
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Link
관리 메뉴

개발블로그

DB - Table 본문

DB

DB - Table

춘식스 2022. 1. 18. 22:54

테이블 만드는 방법

CREATE TABLE develop_book (
	book_id INTEGER,
    date DATE,
    name VARCHAR(80)
);
  • 대문자들은 명령어이다
  • develop_book = 테이블명
  • book_id, date, name = 칼럼명
  • INTEGER, DATE, VARCHAR = 자료형
  • 80 = 크기
명령어는 대문자로 적거나 소문자로 적어도 가능하다.
구별을 좀 더 쉽게 하기 위해서는 대문자로 적는것이 좋다.

psql로 테이블 만드는 방법

테이블 변경하는 방법

ALTER TABLE develop_book_2
RENAME TO develop_book;

테이블 변경 예시

테이블 삭제하는 방법

DELETE FROM develop_book_3;

테이블 수정

칼럼추가

ALTER TABLE 테이블 이름
ADD COLUMN 데이터타입 제약조건;
ALTER TABLE order_info
ADD COLUMN test_1 VARCHAR(20) NOT NULL;

칼럼삭제

ALTER TABLE book_info
DROP COLUMN null_test;

삭제하려는 칼럼을 참조하는 칼럼이 있을 경우 CASCADE를 사용한다.

ALTER TABLE 부모테이블명 DROP COLUMN 칼럼명 CASCADE;
  • 삭제된 칼럼과 참조하고있는 칼럼이 같이 삭제된다.

칼럼명 변경

ALTER TABLE 테이블명
RENAME COLUMN 기존칼럼명 TO 새로운칼럼명;
  • COLUMN 명령어는 생략가능하다.
  • 존재하지않는 칼럼은 이름 수정이 불가하다.
  • 한번에 한 칼럼의 이름만 수정가능하다.

제약조건 삭제

ALTER TABLE 테이블명
ALTER COLUMN 칼럼명 DROP NOT NULL;

PK 추가

ALTER TABLE 테이블명
ADD PRIMARY KEY (칼럼명);

FK 추가

ALTER TABLE 테이블명
ADD FOREIGN KEY (칼럼명1) REFERENCES (칼럼명2);

데이터타입 변경

ALTER TABLE 테이블명
ALTER COLUMN 칼럼명 TYPE 데이터타입;
  • 같은 자료형으로 바꿀수 있다.
  • 숫자형 -> 숫자형
  • 문자형 -> 문자형

USING를 통해 자료형을 변경후, 바꿀수 있다.

ALTER TABLE water
ALTER COLUMN lacation_no TYPE INTEGER
USING location_no::INTEGER;

LIMIT

반환하는 로우 개수를 지정한다
SELECT * FROM develop_book
LIMIT 5;

LIMIT 사용법 예시

OFFSET

반환하는 로우의 시작점을 지정한다
  • 0부터 시작하기때문에 1번을 적으면 2번부터 시작한다.
    • 컴퓨터가 0부터 시작하기 때문이다.
  • postgerSQL의 순서이다.
    • 프로그램마다 순서가 다르다.

ORDER BY

반환하는 로우를 정렬한다
SELECT * FROM develop_book
ORDER BY book_id ASC;
  • ASC = 오름차순
  • ASC나 DESC를 적어주지 않으면 오름차순으로 인식한다

ORDER BY 오름차순 예시

SELECT  * FROM develop_book
ORDER BY bood_id DESC;
  • DESC = 내림차순

ORDER 내림차순 예시

  • book_id가 같아도 알아서 정렬해서 내려온다.
  • 옵션들을 같이 사용할때 ORDER BY 부터 입력해야한다.
  • ORDER BY -> OFFSET -> LIMIT
  • ORDER BY의 다른 예시
SELECT date, name FROM develop_book
ORDER BY 2, 1;
  • 2 = name
  • 1 = date
  • name부터 오름차순을 하겠다

ORDER BY 다른 사용예시

WHERE

비교연산자이다
  • <> = 서로 다르다.
  • 숫자열이 아닌 다른걸 넣으면 무조건 거짓이다.
  • '2020-01-03'이라는 date를 찾고싶으면 date = '2020-01-03'이라고 적어야한다.
    • 칼럼명을 적어줘야한다.
  • 서브쿼리를 이용한 예시
SELECT * FROM develop_book
WHERE '2020-01-03' = (
	SELECT date FROM develop_book
    WHERE book_id = 3
);
  • 모든 데이터가 나온다.
  • 잘 사용하지 않는 방식이다.

서브쿼리 예시

SELECT * FROM develop_book
WHERE '2020-01-03' = '2020-01-03';

서브쿼리에 다른 방법 예시

AS 명령어

SELECT name AS title FROM develop_book;

AS 사용예시 (name)

CREATE TABLE develop_book_2 AS
SELECT * FROM develop_book
ORDER BY book_id ASC;

AS를 다른 명령어와 같이 사용하는 예시

 

'DB' 카테고리의 다른 글

DB - 데이터  (0) 2022.01.19
DB - DATABASE  (0) 2022.01.18
PostgreSQL  (0) 2022.01.18
데이터베이스  (0) 2022.01.18
Linux  (0) 2022.01.18
Comments