본문 바로가기

select3

[SQL] 서브쿼리는 언제 쓰는걸까? 처음 서브쿼리가 들어간 쿼리를 봤을 때 "왜 이렇게 잘난척 하면서 쿼리를 짠거지?"라고 생각했다. 당시 SQL 문법을 갓 떼고 나름 SELECT FROM WHERE 등을 조합해 쿼리를 짤 줄만 알던 시기였다. 서브쿼리가 뭔지는 알았고, 어떻게 짜는지는 알고는 있었지만, 언제, 왜 짜는지는 몰랐기 때문에 괜히 잘난척 하는 것처럼 보였던 것 같다.... SQL 서브쿼리 정의 하나의 SQL 문 안에 또다른 SQL 문이 포함되어 있는 경우 서브쿼리 사용 가능한 곳 1. SELECT 절 스칼라 서브쿼리라고도 하며 한 행, 한 컬럼만을 반환하는 서브쿼리를 말함 SELECT T1.C1 ,(SELECT AVG(T2.C1) FROM TEMP2 T2) FROM TEMP1 T1; 2. FROM 절 인라인 뷰 라고 하며 동적.. 2021. 4. 7.
DISTINCT와 GROUP BY의 차이 먼저 개념적인 차이는 다음과 같다. DISTINCT = 컬럼 내 데이터를 중복을 제거해 조회한다. GROUP BY = 컬럼 내 데이터를 Unique한 값을 기준으로 그 결과를 가져온다. 두 작업은 기능적으로는 약간의 차이가 있지만, 동일한 형태의 작업이다. 쉽게 생각해서, DISTICNT는 그룹핑만, GROUP BY는 그룹핑 + 정렬의 과정이다. 때문에 연산 속도도 DISTINCT가 더 빠르며 같은 그룹핑 작업을 진행하므로 두 연산을 동시에 할 수 없기도 하다. SELECT DISTINCT C1 FROM TEMP; SELECT DISTINCT C1, C2 FROM TEMP; SELECT C1 FROM TEMP GROUP BY C1; SELECT C1, C2 FROM TEMP GROUP BY C1, C2;.. 2021. 3. 9.
DML, DDL, DCL, TCL에 대해 아주 외우기 귀찮지만, 이것 또한 큰 개념으로 이해해보자 SQL 언어의 특징 - 비절차적 언어이기 때문에 파이썬처럼 어떻게 처리할 것인지가 아닌 무엇을 원하는지를 명시해야 한다. - 일정한 형식에 의해 수행된다. - 관계형 데이터 베이스(RDBMS)의 테이블 내 데이터를 다룬다. 때문에, 데이터베이스를 다루고(DCL) 그 데이터베이스 내의 테이블을 다루고(DDL) 그 테이블 내의 데이터를 다루며(DML) 그 작업을 수행하는 명령어(TCL)를 다룬다. 2021. 3. 3.