본문 바로가기

오라클

(13)
[ORACLE] 서브쿼리 Subquery _ 오라클 [ORACLE] 서브쿼리 Subquery _ 오라클 서브쿼리 정의 | 쿼리안에 쿼리가 들어가 있는 쿼리문. 즉, 서브쿼리란 쿼리안에 또 다른 쿼리가 들어있는 쿼리를 말한다. 서브쿼리 종류 | 인라인 뷰, 스칼라 서브쿼리, 기타 서브쿼리 예제 | --1. 기본형식 SELECT EMPNO AS 사번 FROM EMP WHERE DEPTNO IN ( SELECT DEPTNO FROM DEPT WHERE DNAME = 'SALES' ); 하나의 예시이다. SELECT절에 작성이 되면 스칼라 서브쿼리라 부르고, FROM절에 작성되면 인라인 뷰 서브쿼리라 부른다. 위와 같이 WHERE절에 작성이 될 수도 있다. 문제를 직접 풀면서 이해하자. 서브쿼리 문제 | 부서별로 평균 급여보다 높은 급여를 받는 사원은? --1)..
[ORACLE] UNION 과 UNION ALL 차이 _ 오라클 [ORACLE] UNION 과 UNION ALL 차이 _ 오라클PART.1결론 || 저는 한국사람이지만, 결론부터 말해보겠습니다. UNION은 중복제거가 된 결과가 나타나고, UNION ALL은 중복을 포함한 결과가 나타나게 됩니다. 학생별 평균 마일리지 값을 구하는 쿼리분석중에 있었습니다. 근데, 기존 쿼리를 분석해보니 각 쿼리를 실행해서 더한 값과 그 쿼리들를 UNION ALL로 합쳐서 실행한 결과값이 달랐습니다. 자세히 보니 여러 쿼리중 두 쿼리만 UNION로 작성되었고, 해당 파트를 UNION ALL로 수정해주니 정상적인 결과가 나왔습니다. 일련의 과정을 간단한 예제로 정확한 차이를 다시 한 번 정리해보자 합니다. UNION || 두 테이블의 결과를 중복을 제거해서 보여준다. UNION ALL |..
[ORACLE] Natural Join _ 네추럴 조인 _ 오라클 [ORACLE] Natural Join _ 네추럴 조인 _ 오라클 NATURAL JOIN 두 테이블의 동일한 이름(컬럼명)을 갖는 컬럼은 모두 조인이 된다. EMP1 과 EMP2 테이블 EMP1 테이블 EMP2 테이블 위와 같이 하나의 테이블을 복사해서 동일한 테이블을 만들었다. 먼저, INNER JOIN 한 결과를 살펴보자. 1. INNER JOIN SELECT A.EMPNO, A.SAL FROM EMP A INNER JOIN EMP2 B ON A.EMPNO = B.EMPNO INNER JOIN INNER 조인은 ON절에 하나의 조건만을 걸었다. 그래서 EMPNO만 같다면 그에 해당하는 결과물 모두를 가져오는 것을 볼 수 있다. 반면에, NATURAL JOIN은 2. NATURAL JOIN SELECT..
[ORACLE] 오라클 날짜 함수 [ORACLE] 오라클 날짜 함수 1. 날짜 포맷 CC: 세기(Century) YEAR: 년도 YYYY, YYY, YY, Y : 년도 자릿수 표기 BC, AD : 서기 등으로 표시 Q: 분기 표시 MM : 두자리로 월표시 MONTH: 영어로 표시 MON: 영어로 3자리로 월표시 RM: 로마자로 표시 i, ii. xi WW, WI : 1년기준 몇째주 표시 W :한달기준 몇째주 표시 DDD: 365(1년기준 ) 의 몇째 일 DD: 날짜를 두자리로 표시 D: 요일을 숫자로 표시 DY: 요일 한자리로 표시 DAY: 요일 표시 AM, PM, A.M. , P.M. : 오전오후 표시 HH, HH12 : 12시 기준으로 표시 HH24 : 24시 기준으로 표시 /, "of" : 날짜의 중간에 문자 표시 -> SPTH: ..
[ORACLE] 오라클 SQL 문자형 함수 [ORACLE] 오라클 SQL 문자형 함수 문자형 함수 함수의 종류 단일행 함수 _ 한 번에 한 건씩 처리하는 함수 복수행 함수 _ 그룹 함수 혹은 집계 함수 단일행 함수 1) 문자 함수 2) 숫자 함수 3) 날짜 함수 4) 변환 함수 (묵시적 데이터 변환, 명시적 데이터 변환) 5) 일반 함수 문자형 함수의 종류와 사용법 그럼 문자형 함수를 실제로 사용해보자! 문자형 함수 연습 1. trim select length(trim(' 아메리카노')) from dual; 2. || select 'a' || 'bcde' from dual; 3. concat : CONCAT( 컬럼, 컬럼) => 두 개의 문자열을 결합select concat('my name is' , ' inchul') from dual; 4. ..
[ORACLE] 오라클 공백제거 실패 _ trim & replace 오라클 공백제거 실패 ORACLE _ trim & replace TRIM & REPLACE trim _ 왜 인지... 먹히지 않는다!! WHY!!?!! : 엑셀로 작성한 쿼리를 들고왔는데,공백을 공백으로 인식하지 못하는데, 쿼리에는 공백이 있다. tab 도 안 먹힌다. 씨알도 안 먹인다. 왜 trim이 안 될까... 이때, 그 공백자체를 DB에서 복사해 붙여넣어준다. 된다!! replace를 활용해 공백을 '' 공백없음으로 제거해줬다. 아래는 해당 쿼리이다. --trim _ 공백이 제거되지 않는다... UPDATE ic_coffee SET coffee_name = trim(coffee_name); --replace UPDATE ic_coffee SET coffee_name = replace(coffee_..
[ORACLE] View 오라클 뷰 객체 사용법 [ORACLE] ORACLE View || 오라클 뷰 객체 사용법 View Table || 가상의 테이블 창을 통해 테이블을 본다고 생각하자. 창을 어디에 내느냐에 따라 볼 수 있는 테이블이 다른 것이다. 1) 가상의 뷰 검색 - 단발에 그치는 검색이다. 2) 가상의 뷰 생성 - 원하는 자료들만 모아, 뷰 테이블을 생성해서 사용할 수 있다. (!뷰 테이블 내 검색가능) 예제1. 기존의 테이블의 컬럼을 그대로 가져와 사용하는 것. 하지만 VIEW_PROD1은 실제 뷰테이블이 아니다. => 뷰테이블은 실제하는 테이블과 같이 사용할 수 있다. 예제2. 뷰테이블 생성하기 예제2-1. 생성한 뷰테이블로 조회하기. 예제 3. VIEW_MEMBER 뷰테이블 생성- 뷰테이블은 생성할 당시의 조건에 맞지않게 수정이 불가..
[ORACLE] 오라클 설정 listener.ora tnsnames.ora sqlnet.ora [ORACLE] 오라클 설정 listener.ora tnsnames.ora sqlnet.ora oracle에서 net을 구성하기 위해 꼭 필요한 파일이 3가지 있다. listener.ora, tnsnames.ora, sqlnet.ora server쪽에서 필요한 파일로는 listener.ora, sqlnet.ora이 있고 client쪽에서는 tnsnames.ora파일이 필요하다 1. listener.ora 설정방법LISTENER = //사용할 listener의 이름 꼭 listener라는 이름이 아니어되 됨 (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 아이피주소/도메인이름)(PORT = 1521))..
[ORACLE] 오라클 업데이트 ORACLE UPDATE [ORACLE] 오라클 업데이트 ORACLE UPDATE 데이터 업데이트 데이터 업데이트에 대해서 배워보자. How to Update? UPDATE 테이블명SET 테이블컬럼 = '원하는 변경 값'WHERE 원하는 조건 Exam 01 1) 조회 2) 업데이트 검색이 바르게 되는 것을 확인 한 후에 업데이트 3) 업데이트 결과 확인!! Exam 02 1)조회 2) 업데이트 Exam 03 1) 조회 2) 업데이트! 10% 인상된 것 확인 할 수 있다. Exam 04 1) 조회 null 인 조건을 걸때는 'IS NULL' 로 확인한다. 2) 업데이트 Exam 05 Exam 06 1) 선조회 후처리! 항상 원하는 데이터를 바르게 선택했는지 확인해라. Exam 07 1) 조회 일반방법으로 조회하는 방법과 EXIST..
[ORACLE] 오라클 EXISTS [ORACLE] 오라클 EXISTS 문제로 풀어보는 EXISTS 사용법 EXISTS 01 4월에 판매된 상품과 6월에 판매된 상품 교집합처리! 1) 먼저 4월에 판매된 상품 검색 2) 6월에 판매된 상품 검색 3) 교집합 처리한다. 그럼 아래와 같은 결과를 얻을 수 있다. 이걸 EXISTS문으로 바꿔서 검색해보자. 4)EXISTS문으로 처리 - 조건을 달아줘야 한다!! 잊지 말자!! 5) NOT EXISTS 처리 - EXISTS : 교집합 == INTERSECT - NOT EXISTS : 차집합 == MINUS 위와 같은 결과가 출력되는 것을 알 수 있다. 즉, 교집합에 해당하는 부분만 제외한 A(바깥쪽 쿼리문)테이블의 데이터를 출력해주는 것이다. EXISTS 02 1) 2005년도 구매금액이 2천만 이..