Achievement Goal

  • SQL이 어떻게 이루어져 있는지 이해한다.
  • SQL 기본 query문을 사용할 줄 안다.
  • Schema 설계 방법과 나은 방향성을 고려한다.
  • 서버와 클라이언트 사이에서 주고 받는 데이터를 database에 저장하여 영속성있게 저장 할 수 있다.

SQL이란?

  • Structured Query Language -> 구조화된 Query 언어
  • 데이터베이스용 프로그래밍 언어
  • 데이터베이스에 query를 보내 원하는 데이터만을 뽑아올 수 있다.

Query란?

  • 질의문
  • 저장되어 있는 정보를 필터하기 위한 질문

Database가 필요한 이유

  • In-Memory
    • 끄면 데이터가 없어짐
  • File Input/Output
    • 원하는 데이터만 가져올 수 없고 항상 모든 데이터를 가져온 뒤 서버에서 필터링 필요
  • Database
    • 필터링 외에도 File I/O로 구현이 힘든 관리를 위한 여러 기능을 가지고 있는 데이터에 특화된 서버

SQL Query 예시

  • 요청

  • 응답

SELECT * FROM employ WHERE gender = 'M'
// 현재 데이터베이스의 / employ테이블에서 / 성별이 남자인 데이터만 / 가져와
// 필터링

SQL 자주 쓰이는 명령어

  • SELECT (*)
    • 데이터베이스의 특정 데이터만 원할 때 사용
    • 전체 데이터 선택시 SELECT *
    • 부분은 SELECT column (부분 데이터)
  • FROM
    • 데이터베이스를 의미
SELECT city FROM customers  
  => customers의 데이터에서 city 정보만 검색
SELECT * FROM customers
  => customers 데이터의 모든 정보를 검색
  • WHERE
    • 데이터를 필터링 할 때 사용
    • if와 같다고 생각하면 됨
    • 문자열일경우 ''스트링안에 대소문자, 글자 간격 띄어쓰기 정확해야 검색 가능
SELECT * FROM customers WHERE city='Seoul'
=> customers의 모든 데이터중 city가 Seoul인 데이터만 검색
  • AND, OR, NOT
    • WHERE 내부에서 사용되어지는 추가 조건문
    • AND
      • && 와 비슷하다
      • 모든 조건이 충족되는 경우만 필터링됨
SELECT * FROM customers WHERE city='Seoul' AND name='Dan'
=> customers의 모든 데이터중 city가 Seoul이고 name이 Dan인 데이터만 검색
- __OR__
  - || 와 비슷하다
  - 조건 중 __하나라도 충족되면__ 필터링됨
SELECT * FROM customers WHERE city='Seoul' OR age > 20
=> customers의 모든 데이터중 city가 Seoul이거나 나이가 20살을 초과하는 데이터를 검색
- __NOT__
  - !== 과 비슷하다
  - 조건과 __반대되는 경우__ 필터링됨
SELECT city FROM customers WHERE NOT city='Seoul'
=> customers의 city 데이터중 city가 Seoul이 아닌 모든 데이터를 검색
  • ORDER BY
    • 데이터를 정렬할 때 사용
    • default로는 오름차순으로 정렬 (A-Z, 1-9)
    • ASC (오름차순) (생략 가능)
    • DESC (내림차순)
SELECT * FROM customers ORDER BY city => city의 오름차순으로 모든 데이터를 정렬
SELECT * FROM customers ORDER BY city DESC => city의 내림차순으로 모든 데이터를 정렬
SELECT * FROm customers ORDER BY city ASC => city의 오름차순으로 모든 데이터를 정렬
  • INSERT INTO
    • 데이터를 추가할 때 사용
    • 테이블 키 순서를 정확하게 모르고, 일부 데이터가 누락되어 있을 경우
      • INSERT INTO 테이블네임 (key1, key2, key3 ... ) VALUES (value1, value2, value3 ...)
      • 입력하는 키 순서에 맞는 데이터를 입력
    • 테이블 키 순서를 정확하게 알고, 모든 데이터를 가지고 있는 경우
    • 키 생략 가능
    • INSERT INTO 테이블네임 (value1, value2, value3, ...)
profile
제가 겪은 이슈에 대해서 정리합니다. 기억보다는 기록이 더 낫다고 생각합니다.

0개의 댓글