SQL Server에서 순차적 누적 합계를 구하기 위해서는 SUM 함수와 OVER 절을 사용하면 된다. 누적 합산 기준은 OVER 절 내부의 ORDER BY 절 정렬 기준으로 데이터를 정렬하고 순차적으로 합산을 한다. OVER 절의 내부의 ORDER BY 절 기준으로 데이터가 정렬되어서 조회되므로 WHERE 절 하단에 ORDER BY 절을 추가로 기술할 필요가 없다. 목차 순차적 누적 합계 구하기 그룹별 순차적 누적 합계 구하기 순차적 누적 합계 구하기 SELECT empno , ename , job , sal , SUM(sal) OVER(ORDER BY empno) AS sum_sal FROM emp WHERE job IN ('MANAGER', 'SALESMAN') OVER 절과 SUM 함수를 사용하여..
SQL Server에서 합계를 구하기 위해서는 SUM 함수를 사용하면 됩니다. SUM 함수를 사용하여 합계를 구하면 조회된 각 행에 합계를 표시할 수 있으며, 별도의 새로운 행으로 합계를 표시하고 싶을 때는 ROLLUP 구문을 사용할 수 있으며 조회된 데이터 외에 새로운 합계 행이 추가됩니다. ROLLUP 사용법은 하단 링크를 참고하면 됩니다. 목차 전체 데이터 합계 구하기 그룹별 합계 구하기 (GROUP BY 절) 분석함수를 사용하여 합계 구하기 (OVER 절) 전체 데이터 합계 구하기 합계 구하기 SELECT SUM(sal) FROM emp WHERE job = 'SALESMAN' 직업(job)이 "SALESMAN"인 직원의 급여(sal) 총합계 조회한다. SUM() 함수는 수치 값만 합산할 수 있다..
SQL Server에서 최솟값과 최댓값을 구하기 위해선는 MIN, MAX 함수를 사용하면 됩니다. MIN, MAX 함수는 집계 함수이며 GROUP BY 절과 함께 많이 사용됩니다. OVER 절과 함께 사용하면 분석 함수의 역할을 하며, 조금 더 다양한 쿼리문을 작성할 수 있습니다. 아래의 예제를 참고하여 첨부된 파일을 다운로드하여서 직접 연습해 보세요. 목차 전체 데이터 최솟값, 최댓값 구하기 그룹별 최솟값, 최댓값 구하기 (GROUP BY 절) 분석함수를 사용하여 최솟값, 최댓값 구하기 (OVER 절) 전체 데이터 최솟값, 최댓값 구하기 최솟값 구하기 (MIN) SELECT MIN(sal) FROM emp WHERE job = 'SALESMAN' 직업(job)이 "SALESMAN"인 직원의 최저급여(s..
SQL Server에서 EXISTS 연산자는 서브쿼리에 데이터가 존재하는지 체크하고 존재할 경우 TRUE를 반환하며, 대표적으로 EXISTS 구문과 NOT EXISTS 구문이 있다. EXISTS 연산자는 IN 연산자와 비슷한 용도로 사용할 수 있으며, IN 연산자는 비교할 값을 직접 대입할 수 있지만 EXISTS 연산자는 서브쿼리만 사용할 수 있다. 서브쿼리를 사용할 경우 상황에 따라서 IN 연산자 보다 EXISTS 연산자의 성능이 좋을 수 있다. 목차 기본적인 EXISTS, NOT EXISTS 사용법 CASE 표현식에서 EXISTS 사용법 IN 연산자와 비교 및 EXISTS 연산자의 성능 기본적인 EXISTS, NOT EXISTS 사용법 EXISTS SELECT * FROM dept a WHERE a...
SQL Server에서 GROUP BY 절은 특정 칼럼을 기준으로 집계 함수를 사용하여 건수(COUNT), 합계(SUM), 평균(AVG) 등 집 계성 데이터를 추출할 때 사용한다. GROUP BY 절에서 기준 칼럼을 여러 개 지정할 수 있으며, HAVING 절을 함께 사용하면 집계 함수를 사용하여 WHERE 절의 조건절처럼 조건을 부여할 수 있다. GROUP BY 절은 중복제거를 할 때도 사용 가능하다. SQL Server에서는 GROUP BY 절을 사용할 경우 그룹 칼럼을 기준으로 자동으로 ORDER BY가 되지만 명시적으로 ORDER BY를 사용하여 쿼리문을 작성하는 것이 좋다. 목차 기본적인 GROUP BY 절 사용법 GROUP BY 절에서 조건절(HAVING) 사용법 GROUP BY 절에서 자주 ..
SQL Server에서 SELECT 된 데이터를 정렬하기 위해서는 ORDER BY 절을 사용하면 된다. 정렬할 칼럼을 오름차순(ASC), 내림차순(DESC)으로 조회 순서를 지정할 수 있다. MySQL에서 LIMIT를 사용하듯 SQL Server에서는 TOP을 사용하여 정렬된 데이터에서 특정 개수만큼만 조회할 수 있으며, CASE WHEN 연산자나 함수 등을 사용하여 조금 더 다양한 정렬 순서를 지정할 수 있다. ORDER BY 칼럼은 2개 이상 지정하여 복합 정렬이 가능하다. ORDER BY의 기본 정렬은 오름차순이며 칼럼명만 명시하면 오름차순으로 정렬되고, 칼럼명 뒤에 DESC를 붙이면 내림차순으로 정렬된다. 칼럼명 뒤에 ASC를 붙여도 오름차순으로 정렬되지만 대부분 오름차순은 ASC를 붙이지 않는다..
SQL Server에서 테이블의 데이터를 삭제하기 위해서는 DELETE 문을 사용하면 된다. SQL Server에서는 DELETE 문에서 조인을 하여 데이터를 삭제할 수 있으며, 서브쿼리를 사용하여 삭제할 데이터 범위를 조회하여 데이터를 삭제할 수도 있다. MERGE 문을 사용하면 INSERT, UPDATE, DELETE를 동시에 수행할 수 있다. 목차 기본적인 DELETE 방법 다른 테이블과 조인하여 DELETE 방법 서브쿼리를 사용하여 DELETE 방법 기본적인 DELETE 방법 DELETE FROM dbo.dept WHERE deptno = 40 부서(dept) 테이블에서 부서코드(deptno) "40"에 해당하는 행을 삭제하는 예제이다. DELETE dbo.dept WHERE deptno = 40..
SQL Server에서 테이블이 데이터를 수정하기 위해서는 UPDATE 문을 사용하면 된다. SQL Server에서는 UPDATE 문에서 FROM 절을 사용할 수 있어서 다른 테이블과 조인을 하여 업데이트를 할 수 있다. 조인을 사용하지 않을 경우 서브쿼리를 사용하여 여러 개의 데이터를 업데이트하면 된다. SELECT 해서 UPDATE 하는 방법은 조인 또는 서브쿼리를 사용하면 된다. 목차 기본적인 UPDATE 방법 다른 테이블과 조인하여 UPDATE 방법 서브쿼리를 사용하여 UPDATE 방법 기본적인 UPDATE 방법 UPDATE dbo.dept SET dname = 'SALES TEAM' , loc = 'TEXAS' WHERE deptno = 30 부서명(dname)과 지역명(loc)을 업데이트하는 ..
SQL Server에서 데이터를 입력하기 위해서는 INSERT 문을 사용한다. SQL Server 2008부터 여러 행을 입력할 수 있는 기능이 추가되었으며, SELECT 해서 INSERT 하는 방법으로도 여러 건의 데이터를 입력할 수 있다. INSERT와 UPDATE를 동시에 수행하기 위해서는 MERGE 문을 사용하거나 프로시저를 생성하여 사용하면 된다. 목차 기본적인 INSERT 방법 동시에 여러 행 INSERT 방법 SELECT 결과 INSERT 방법 기본적인 INSERT 방법 INSERT INTO dbo.dept (deptno, dname, loc) VALUES (50, 'IT TEAM', 'SEOUL') INSERT INTO [테이블명] ([칼럼1], [칼럼2], [칼럼3] ...) VALUES..
오라클에서 시퀀스(Sequence)의 세부 정보 및 시퀀스 리스트를 조회하기 위해서는 시스템 테이블을 사용하면 쉽게 조회할 수 있다. 시퀀스 최댓값, 캐시 사용 여부, 마지막 채번 값 등을 확인할 수 있으며 아래의 3가지 시스템 테이블을 사용할 수 있다. all_sequences 사용자 계정이 접근 가능한 모든 시퀀스 조회 user_sequences 사용자 계정에 생성된 모든 시퀀스 조회 dba_sequences 관리자(DBA) 권한으로 모든 시퀀스 조회 시퀀스 조회 방법 시퀀스명으로 조회 (세부 정보) SELECT * FROM all_sequences WHERE sequence_name = 'EMP_SEQ' 시퀀스명으로 시퀀스의 세부 생성 정보 및 현재 마지막 채번 값을 확인할 수 있다. 유저명으로 조..