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

테이블 변경하는 방법
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;

OFFSET
반환하는 로우의 시작점을 지정한다
- 0부터 시작하기때문에 1번을 적으면 2번부터 시작한다.
- 컴퓨터가 0부터 시작하기 때문이다.
- postgerSQL의 순서이다.
- 프로그램마다 순서가 다르다.
ORDER BY
반환하는 로우를 정렬한다
SELECT * FROM develop_book
ORDER BY book_id ASC;
- ASC = 오름차순
- ASC나 DESC를 적어주지 않으면 오름차순으로 인식한다

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

- 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부터 오름차순을 하겠다

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;

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

'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