반응형

JOIN을 할 때 조건으로 어떤 컬럼과 일치시켜 줄 것인가에 대해 ON이나 USING을 사용하는데 두 키워드의 차이점을 설명드리겠습니다.

 

EMPLOYEE 테이블과 SALARY 테이블이 있고 이 두 테이블에 모두 DEPT_ID라는 컬럼이 있어서 이 컬럼을 기준으로 조인을 해주게 되면 아래와 같이 작성하면 됩니다.

 

SELECT *
FROM EMPLOYEE e
JOIN SARALY s
ON e.DEPT_NO = s.DEPT_NO

 

그런데 이처럼 조인할 두 컬럼의 이름이 같은 경우에는 ON 대신에 USING을 사용할 수 있고 USING 사용 시 다음과 같이 작성하시면 됩니다.

 

SELECT *
FROM EMPLOYEE e
JOIN SALARY s
USING(DEPT_NO)

 

* 주의할 점은 두 컬럼의 이름이 같을 때만 동작한다는 것입니다.

 

반응형
반응형

GROUP BY

GROUP BY는 특정 컬럼을 기준으로 그룹화 하는 명령어로 그룹화를 통해 통계 데이터를 추출할 수 있습니다.

 

SELECT 컬럼
FROM 테이블명
WHERE 조건
GROUP BY 그룹화할 컬럼
HAVING 그룹화할 조건

부서에서 연봉이 5000 이상인 정보를 추출

SELECT
DEPT.NAME,
COUNT(EMP.ID),
SUM(EMP.SALARY),
AVG(EMP.SALARY),
MIN(EMP.SALARY),
MAX(EMP.SALARY)
FROM EMPLOYEE EMP
JOIN DEPARTMENT DEPT ON (DEPT.ID = EMP.DEPT_ID)
GROUP BY DEPT.ID
HAVING AVG(EMP.SALARY) >= 5000
반응형
반응형

중복된 데이터를 제거하고 싶을 때는 DISTINCT를 사용합니다.

 

아래는 학생 테이블에서 학과를 하나씩만 출력하는 쿼리입니다.

 

SELECT DISTINCT(DEPARTMENT) FROM STUDENT;

 

반응형
반응형

전개 연산자는 ES6(ECMAScript6)에서 새로 추가되었습니다. 객체나 배열의 값을 하나 하나 넘기는 용도로 사용할 수 있으며 사용 방법은 점 세 개( ... )를 붙이면 됩니다.

 

전개 연산자 등장 전 배열 내용 조합

ES6 이전까지는 배열을 합칠 때 concat 함수를 사용했고 다음 예시처럼 사용합니다.

 

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [7, 8, 9];

const arr4 = arr1.concat(arr2, arr3);

console.long(arr4); // 출력 : [1, 2, 3, 4, 5, 6, 7, 8, 9]

 

ES6에서 전개 연산자를 이용하여 배열을 합칠 수 있고 다음처럼 사용합니다.

 

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [7, 8, 9];

const arr4 = [...arr1, ...arr2, ...arr3];

console.long(arr4); // 출력 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
반응형

+ Recent posts