본문 바로가기
부트캠프

[TIL] 유데미X사람인 취업 부트캠프 15일차 / SQL 데이터베이스 생성, 관리

by 상똥 2024. 1. 4.

[1. 오늘 배운 것]

1. 데이터 유형

- Boolean : true or false

- Character : char, varchar, text

- Numeric : integer, floating-point number

- Temporal: date, time, timestamp, interval

- UUID : Universally Unique Identifiers

- Array : 숫자나 문자열 등을 저장

- JSON

 

2. 기본키 및 외래키

- 기본키(pk) : 모든 칸이 구별 가능하고 null값을 허용하지 않음

- 외래키(fk) : 다른 표와 얼마나 많은 관계를 맺고 있는지에 따라 다양한 키를 가지고 있을지 결정됨

- 외래키를 포함하고 있는 표를 차일드 표라고 부름

 

3. 제약조건

- 표에 있는 데이터의 열에 적용되는 규칙

- 표에 있는 모든 것에 제약을 걸 수 있은

- 유효하지 않은 데이터 방지

- 열에 거는 제약조건

    - NOT NULL 제약조건 : null값을 허용하지 않음

    - UNIQUE 제약조건 : 모두가 고유한 값을 가져야 함

    - CHECK 제약조건 : 모든 행의 값이 특정한 조건을 만족하도록 함

    - EXCLUSION 제약조건 : 특정 오퍼레이터를 사용한 특정 열이나 식에서 어던 두 열이 비교될 때 모든 비교값이 참으로 판명되지 않아야 함

- 테이블에 거는 제약조건

    - CHECK 제약조건 : 데이터를 삽입하거나 업데이트할 때의 제약조건

    - REFERENCES : 열이 다른 표에 존재해야함

    - UNIQUE : 어느 열이 다중열에서 독특한 값을 갖게됨 

    - PK : 기본키 설정

 

4. 테이블 생성하기

- 기본 구조

- 예시

 

5. INSERT

- 예시

- 결과

- 예시

-결과

- 예시

- 결과

- 예시

- 결과

 

6. UPDATE

- 기본 구조

- 예시

- 결과

- 예시

- 결과

- RETURNING 컬럼을 UPDATE구문 마지막에 입력하면 SELECT 호출 없이도 변화된 결과값을 볼 수 있다

 

7. DELETE

- 기본 구조

- 예시

- 결과

 

8. ALTER table

- 기본 구조

- 예시

 

9. DROP table

- 기본 구조

- 예시

- 결과

 

10. CASE

- 특정 조건이 충족되었을 때 시퀄 코드를 실행하기 위해 CASE를 사용

- IF/ELSE문과 비슷

- 기본 구조

- 연습문제 : 영화 테이블에서 등급 당 다양한 영화의 수 출력

- 답

 

11. COALESCE

- 무한한 수의 argument를 쓸 수 있는 기능,

- NULL이 아닌 첫 argument 도출

- 치환할 때 사용할 수 있는 기능

 

12. CAST

- 데이터의 유형을 바꿔주는 함수

- '5'를 5로 바꾸는 경우,,

- 예시 : SELECT CAST(col AS VARCHAR) FROM table

 

13. NULLIF

- 괄호 안에 두 개의 값을 넣어서, 두 값이 같으면 NULL을, 아니면 첫 번째 값을 반환

 

14. VIEWS

- 프로그램에서 시각화한 표

- 간단한 명령으로 빠르게 쿼리를 보여줌

- JOIN을 매번 하지 않고 view로 변환시킬 수 있음

 

15. python으로 postgre 동작하기

- import psycopg2 as pg

- conn = pg2.connect(database='database_name', user='postgres', password=secret)

- cur = conn.cursor()

- cur.execute('SELECT * FROM table')

- cur.fetchone or cur.fetchmany(n) or fetchall()

- data = cur.fetchmany(n)

- data[i][j] (i행의 j열 반환)

- conn.close()

 

[2. 오늘 잘한 점]

데이터베이스는 이해도가 어느정도 높아서 강의를 빠르게 듣고 개인 공부 시간을 가졌다. 앞으로도 개인 공부 시간을 많이 가졌으면 좋겠다.

 

[3. 개선해야할 점]

팀스터디 과제 중 하나가 면접질문 준비해오기였는데, 면접질문이라 당연히 1분 안에 설명하려고 짧게 준비를 해갔다. 다른 팀원들은 옵시디언에 꽉채워서 설명해주셔서 너무 민망했다 ㅋㅋ  ㅋㅋ ㅋ ㅋ 좀 더 성실히 임해야겠다,,^^