본문 바로가기

Programming/DB14

[Oracle] JOIN 테이블에 중복되는 값이 있음에도 나눠 놓는 이유 바이트 단위로 생각했을 때 더 적게 쓰임 중복값을 배제해서 데이터 이상현상 낮추는 효과 DAY_4 -- SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY FROM EMPLOYEE WHERE DEPT_CODE = 'D5' UNION SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY FROM EMPLOYEE WHERE SALARY > 3000000; -- UNION ALL : 여러 개의 쿼리 결과를 하나로 합치는 연산자 -- UNION과의 차이점은 중복 영역을 모두 포함시킨다. SELECT EMP_ID , EMP_NAME , DEPT_CODE , SALARY FROM EMPLOYEE WHERE D.. 2022. 3. 7.
[Oracle] GROUP BY & HAVING -- NVL(컬럼명, 바꿀값1, 바꿀값2) -- 해당 컬럼에 값이 있으면 바꿀값1로 변경, -- 해당 컬럼이 NULL이면 바꿀값2로 변경 -- 직원 정보에서 보너스 포인트가 NULL인 경우 직원은0.5로 -- 보너스 포인트가 NULL이 아닌 경우 0.7로 변경하여 조회 SELECT EMP_NAME , BONUSa , NVL2(BONUS, 0.7, 0.5) FROM EMPLOYEE; -- 선택함수 -- 여러 가지 경우에 선택할 수 있는 기능을 제공한다 -- DECODE(계산식 | 컬럼명, 조건값1, 선택값1, 조건값2, 선택값2, ...) SELECT EMP_ID , EMP_NAME , EMP_NO , DECODE(SUBSTR(EMP_NO, 8, 1), '1', '남', '2', '여') FROM EMPL.. 2022. 3. 7.
[Oracle] 함수 함수(FUNCTION) : 컬럼 값을 읽어서 계산 결과를 리턴함 단일행(SINGLE ROW) 함수 : 컬럼에 기록된 N개의 값을 읽어서 N개의 결과를 리턴 그룹(GROUP) 함수 : 컬럼에 기록된 N개의 값을 읽어서 그룹별 1 개의 값을 리턴 SELECT 절에서 단일행 함수와 그룹함수를 함께 사용하지 못한다. 결과 행의 갯수가 다르기 때문에. 함수를 사용할 수 있는 위치(FROM 제외) SELECT절, WHERE절, GROUP BY절, HAVING절, ORDER BY절 -- 그룹함수 : SUM, AVG, MAX, MIN, COUNT -- SUM(숫자가 기록된 컬럼명) : 합계를 구하여 리턴 SELECT SUM(SALARY) FROM EMPLOYEE; -- AVG(숫자가 기록된 컬럼명) : 평균을 구하여 .. 2022. 3. 7.
[Oracle] 기본 조회 방법 및 연산자 -- 한 줄 주석 /* 여러 줄 주석 */ -- EMPLOYEE 테이블에서 모든 정보 조회 SELECT * FROM EMPLOYEE; -- EMPLOYEE 테이블에서 모든 사원의 사번, 이름 조회 SELECT EMP_ID, EMP_NAME FROM EMPLOYEE; -- EMPLOYEE 테이블에서 부서코드가 D9인 사원 조회 SELECT * FROM EMPLOYEE WHERE DEPT_CODE = 'D9'; -- EMPLOYEE 테이블에서 직급코드가 J1인 사원 조회 SELECT * FROM EMPLOYEE WHERE JOB_CODE = 'J1'; -- EMPLOYEE 테이블에서 급여가 300만원 이상인 사원의 -- 사번, 이름, 부서코드, 급여를 조회하세요 SELECT EMP_ID, EMP_NAME, .. 2022. 3. 7.
[DB] ORACLE 중복 값 확인 쿼리 1. group by를 이용한 중복 데이터 확인 방법 중복값이 들어있는지 확인하고 싶은 컬럼을 group by 문을 사용해 확인할 수 있다. 해당 컬럼을 group by 에 명시해준 후 select에서 뽑아서 확인한다. 중복값이 없는 것은 제외하고 확인하기 위해 중복 갯수가 1보다 초과되는 것만 보는 조건을 달아준다 이 때 column, count(*) 해주면 중복값이 있는 컬럼과 중복 갯수를 확인할 수 있어서 훨씬 직관적이다. SELECT [column], COUNT(*) cnt FROM [TABLE] GROUP BY [column] HAVING COUNT(*) > 1 2021. 12. 17.
728x90
반응형
LIST