본문 바로가기

전체 글112

[Oracle SQL] 조인(join) - ANSI 조인 ANSI 조인은 오라클이 아닌 환경에서도 사용 가능한 표준화된 조인입니다. 1. Natural 조인 (동등 조인) 오라클 조인의 equi 조인과 동일한 기능입니다. 단, 조인하는 테이블들에 반드시 한 개의 공통 컬럼이 있어야 되며, 두 개 이상의 공통 컬럼이 존재할 경우 엉뚱한 실행 결과가 출력될 수 있습니다. SELECT 테이블1.컬럼, 테이블2.컬럼 FROM 테이블1 NATURAL JOIN 테이블2 [WHERE 검색조건]; 어떤 컬럼을 조인시킬 것인지 지정하지 않아도 자동으로 공통 컬럼을 찾아서 조인하게 됩니다. SELECT * FROM emp NATURAL JOIN dept; 오라클 조인에서 동등 조인을 할 때는 컬럼이 총 11개(emp 테이블 8개 + dept 테이블 3개)였습니다. 반면 Natu.. 2022. 5. 12.
[Oracle SQL] 조인(join) - 오라클 조인 지금까지는 하나의 테이블에 대해서만 SELECT문을 사용했습니다. 만일 검색하고자 하는 데이터가 여러 테이블에 분산되어 있는 경우에는 어떻게 해야 할까요? 이때 필요한 것이 조인(join) 기능입니다. 예를 들어 SMITH의 부서명을 알고 싶을 때, 기존에는 emp 테이블과 dept 테이블 두 가지를 모두 확인하는 것이 필요했습니다. 하지만 emp 테이블과 dept 테이블이 공통적으로 가지는 컬럼인 deptno를 이용해서 두 테이블을 연결시켜주면 원하는 정보를 한번에 확인할 수 있게 됩니다. 즉 조인을 통해 여러 테이블들을 하나의 테이블로 합쳐서 사용할 수 있습니다. 이번 글에서는 먼저 오라클에서만 사용되는 오라클 조인을 알아보겠습니다. 1. equi 조인 (동등 조인) 조인 대상이 되는 두 테이블에서 .. 2022. 5. 11.
[Oracle SQL] SQL 함수 - 그룹 함수 GROUP BY, HAVING 그룹 함수를 사용할 때 주의해야 할 사항이 있습니다. SELECT 뒤에 일반 컬럼과 그룹 함수를 동시에 사용할 수 없다는 것입니다. 30번 부서에 속하는 사원들의 이름과 30번 부서의 인원수를 검색하고자 다음의 SQL문을 실행했을 때 오류가 발생하는 것을 확인할 수 있습니다. SELECT ename, COUNT(*) FROM emp WHERE deptno=30; 30번 부서에 속하는 사원은 6명입니다. 이들의 이름을 출력하면 행이 6개인데, COUNT 함수를 통해 출력하는 인원수는 1개의 행입니다. 즉 서로 출력해야 되는 결과의 개수가 달라집니다. 이때 필요한 것이 GROUP BY 절입니다. 1. GROUP BY 절 특정 컬럼값을 기준으로 그룹으로 묶을 때 사용합니다. 기본 문법은 다음과 같습니다. SE.. 2022. 5. 11.
[Oracle SQL] SQL 함수 - 그룹 함수 (SUM, AVG, MAX, MIN, COUNT) 함수는 크게 단일행 함수와 다중행 함수(그룹 함수)로 나뉩니다. 앞서 살펴본 단일행 함수와 달리 그룹 함수는 여러 행 또는 테이블 전체에 함수가 적용되어 하나의 결과를 반환합니다. 1. SUM 함수 null값을 제외한 해당 컬럼 값들의 총합을 구합니다. SUM( DISTINCT | ALL | 컬럼명 ) DISTINCT 키워드는 중복된 값을 제외한다는 것으로, 생략하면 ALL이 기본적으로 적용됩니다. 사원들의 월급의 총합을 구하는 SQL문입니다. SELECT SUM(DISTINCT sal), SUM(ALL sal), SUM(sal) FROM emp; --> 23675 --> 24925 --> 24925 2. AVG 함수 null값을 제외한 해당 컬럼 값들의 평균을 구합니다. AVG( DISTINCT | A.. 2022. 5. 11.
[Oracle SQL] SQL 함수 - 단일행 함수 (5) 조건 함수 오라클에는 자바에서 사용하는 if문, case문과 같이, 조건에 따라 SQL문을 다르게 처리할 수 있는 DECODE 함수와 CASE 함수가 있습니다. DECODE 함수는 조건이 반드시 일치하는 경우에 사용하는 함수이며, CASE 함수는 조건이 반드시 일치하지 않아도 범위 비교가 가능한 경우에 사용하는 함수입니다. 1. DECODE 함수 조건이 반드시 일치해야 하는 경우에 사용합니다. 따라서 동등 연산자(=)에 대해서만 사용될 수 있습니다. DECODE(컬럼, 비교값1, 결과값1, 비교값2, 결과값2, ... 비교값n, 결과값n, 기본결과값) 다음은 월급이 3000이면 30%를, 월급이 5000이면 20%를 보너스로 지급하고, 나머지 사원은 100%를 지급하는 SQL문입니다. SELECT ename,sal.. 2022. 5. 11.
[Oracle SQL] SQL 함수 - 단일행 함수 (4) 변환 함수 오라클의 데이터 타입은 숫자, 문자, 날짜 세 가지입니다. 변환 함수를 통해 데이터 형을 명시적으로 변환시킬 수 있습니다. 함수 설명 TO_NUMBER 문자 데이터를 숫자 데이터로 변환 TO_DATE 문자 데이터를 날짜 데이터로 변환 TO_CHAR 숫자나 날짜 데이터를 문자 데이터로 변환 1. TO_CHAR 함수 숫자나 날짜 데이터를 문자 데이터로 변환합니다. 데이터 형 변환시 어떤 형식으로 출력할지 지정할 수 있습니다. 문자 데이터로 반환되므로 출력 형식은 반드시 작은따옴표로 기술해야 합니다. TO_CHAR(number|date, 'format') 중간에 쉼표가 들어간 형식의 문자 형태로 변환하는 SQL문입니다. 숫자 데이터가 문자 데이터로 변환되었습니다. SELECT TO_CHAR(123456,'99.. 2022. 5. 10.