코딩기록 저장소 🐕/이론공부

이론) 데이터베이스

kimkongmom 2024. 2. 10. 12:35

 

 

 

 

 

 

 

① 데이터베이스 언어에 대해 설명하시오.

  • DDL(정의어 : Data Definition Language) : 데이터베이스 구조를 정의, 수정, 삭제하는 언어이다.(alter, create, drop)
  • DML(조작어 : Data Manipulation Language) : 데이터베이스내의 자료 검색, 삽입, 갱신, 삭제를 위한 언어(select, insert, update, delete)
  • DCL(제어어 : Data Control Language) : 데이터의 무결성 유지, 병행 수행 제어, 보호 관리를 위한 언어(commit, rollback, grant, revoke)

 

 

② select 쿼리 실행순서

 

   FROM, ON, JOIN > WHERE, GROUP BY, HAVING > SELECT > DISTINCT > ORDER BY > LIMIT

  1. FROM : 각 테이블을 확인한다.
  2. ON : JOIN 조건을 확인한다.
  3. JOIN : JOIN이 실행되어 데이터가 SET으로 모아지게 된다. 서브쿼리도 함께 포함되어 임시 테이블을 만들 수 있게 도와준다.
  4. WHERE : 데이터셋을 형성하게 되면 WHERE의 조건이 개별 행에 적용된다. WHERE절의 제약 조건은 FROM절로 가져온 데이블에 적용될 수 있다.
  5. GROUP BY : WHERE의 조건 적용 후 나머지 행은 GROUP BY절에 지정된 열의 공통 값을 기준으로 그룹화한다. 쿼리에 집계 기능이 있는 경우에만 이기능을 사용한다.
  6.  HAVING : GROUP BY절이 쿼리에 있을 경우 HAVING절의 제약조건이 그룹화된 행에 적용된다.
  7. SELECT : SELECT에 표현된 식이 마지막으로 적용된다.
  8. DISTINCT : 표현된 행에서 중복된 행은 삭제
  9. ORDER BY : 지정된 데이터를 기준으로 오름차순, 내림차순 지정
  10. LIMIT : LIMIT에서 벗아나는 행들은 제외되어 출력된다.

 

③ 트랜잭션이란 무엇인가?

 

트랜잭션은 작업의 완전성을 보장해준다.

작업들이 모두 처리되거나 처리하지 못할 경우 이전 상태로 복구하여 작업의 일부만 적용되는 현상을 막아줍니다.

하나의 트랜잭션은 Rollback되거나 Commit됩니다.

 

특징

  1. 독립성 : 둘 이상의 트랜잭션이 동시에 실행될 경우 서로의 연산에 끼어들 수 없다.
  2. 일관성 : 실행이 완료되면 언제나 일관성 있는 상태를 유지해야 한다.
  3. 영속성 : 완료된 결과는 영구적으로 반영되어야 한다.
  4. 원자성 : 작업이 모두 반영되던지 전혀 반영되지 않아야 한다.

 

 

④ inner join과 outer join의 차이를 설명하시오.

 

inner join은 서로 연관된 내용만 검색하는 조인 방법이다.(교집합)

outer join은 한쪽에는 데이터가 있고 한쪽에는 데이터가 없는 경우, 데이터가 있는 쪽에 내용을 전부 출력하는 방법이다.

 

 

⑤ DELETE, TRUNCATE, DROP의 차이를 설명하시오.

 

DELECT : 데이터만 지우고 테이블 용량은 사라지지 않는다. 원하는 데이터를 골라 지우고 다시 되돌릴 수 있다.

TRUNCATE : 전체 데이터를 한번에 삭제하는 방법이다. 테이블 용량도 줄어들고 인덱스도 삭제되지만 테이블은 삭제할 수 없고 되돌릴 수 도 없다.

DROP : 테이블 자체를 삭제하는 방식 되돌릴 수 없다.

 

 

⑥ HAVING과 WHERE의 차이

 

having은 그룹을 필터링하는데 사용되고, where은 각 행을 필터를 할때 사용딘다.

집계함수(COUNT, SUM, AVG, MAX, MIN)를 사용할 수 있는건 having절만 가능하다.

 

HAVING은 그룹화 또는 집계가 발생한 후에 필터링하는데 사용되고

WHERE은 그룹화 또는 집계가 발생하기 전에 필터링한다.

 

 

⑦ JOIN에서 ON과 WHERE에 차이

 

ON이 WHERE 보다 먼저 실행되어 JOIN을 하기 전에 필터링을 하고 (=ON 조건으로 필터링이 된 레코들간 JOIN이 이루어진다.)

WHERE은 JOIN을 한 후에 필터링을 한다.(=JOIN을 한 결과에서 WHERE조건절로 필터링이 이뤄진다.)

 

'코딩기록 저장소 🐕 > 이론공부' 카테고리의 다른 글

이론) 자료구조  (0) 2024.02.18
REST API  (0) 2024.02.15
이론) Java  (0) 2024.02.01
이론) 백엔드  (0) 2024.01.26
이론) 네트워크  (0) 2024.01.25