반응형 SQL9 connect by Clause connect by Clause 출처 : http://cafe.naver.com/itea11.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=236 Oracle10g부터 CONNECT BY 절에서 제공하는 CONNECT_BY_ROOT, SYS_CONNECT_BY_PATH, CONNECT_BY_ISLEAF 기능에 대해서 알아보겠습니다. SQLPLUS scott/tiger SQL> SET LINESIZE 100 SQL> SET PAGESIZE 100 SQL> COL ename FORMAT A20 ◈ 상관관계 쿼리 예제 SQL> SELECT LPAD(' ', 4*(LEVEL-1)) || ename ename, empno FROM emp START WITH job='PRESIDE.. 2022. 6. 10. [SQL_오라클] 계층형 QUERY [SQL_오라클] 계층형 QUERY start with ~ connect by : 오라클에서만 지원 LEVEL -> 의사 칼럼, 트리 형식의 레벨 SELECT LEVEL, LPAD(' ', 4*(LEVEL-1)) || first_name || ' ' || last_name '성명' FROM EMPLOYEES START WITH manager_id IS NU CONNECT BY manager_id = PRIOR employee_id start with manager_id is null => manager_id 가 NULL인 것부터 찾는다. 이 말은 사장부터 시작한다는 말, 곧 하향식 접근 connect by manager_id = prior employee_id => employee_id를 먼저 보고 이것.. 2022. 6. 10. [SQL_오라클] SET 연산자 [SQL_오라클] SET 연산자 *SET 연산자를 사용할 경우에는 SET 연산자로 묶이는 SELECT 문장의 열의 개수가 반드시 같아야 한다. *집합 연산에는 SORT가 자동적으로 들어간다. *JOIN이라는 것이 가로 (COLUMN) 방향으로 데이터를 붙여나간다고 하면 SET은 세로 방향 (ROW)으로 데이터를 붙여나간다. *COLUMN 단위로 비교를 하기는 하지만 ROW를 하나의 SET이라고 본다. 만일 두 개의 튜플이 있는데 데이터의 값이 다 똑같고 단 하나의 데이터만 다르다고 한다면 UNION을 할 경우 두 개의 튜플이 그대로 찍힌다. *변수 타입도 영향을 미친다. 예) varchar와 char varchar(5), char(5)로 column 타입을 정했을 때 'AA' varchar 타입과 'AA.. 2022. 6. 10. [SQL_오라클] 서브쿼리 [SQL_오라클] 서브 쿼리 ******************************************************************** 서브 쿼리 ******************************************************************** 중복 query => query 문 안에 query가 오는 것 subquery 위치에 따른 분류 SELECT 절 안에 오는 것 : scalar subquery 제약사항 - 값이 하나만 나와야 한다. scalar subquery에서 나오는 데이터는 하나의 튜플 안, 하나의 칼럼 안에 저장되어야 한다. FROM 절 안에 오는 것 : inline view WHY - View와 같이 subquery로 나오는 데이터 셋이 FROM .. 2022. 6. 10. [SQL_오라클] JOIN [SQL_오라클] JOIN JOIN JOIN에는 Selection과 Production 연산이 있다. Selection 연산은 row, 즉, tuple에서의 연산 Production 연산은 column에서의 연산 nested loop는 튜플 하나를 맞춰보기 위해서 튜플 하나하나에 조인되는 테이블을 한 번씩 쭉 살펴보는 것이다. merge sort loop는 정렬을 시킨 다음 매칭 시키는 것이다. hash loop는 정렬이 아니라 유니크하게 나열한 다음 매칭 시키는 것이다. 안티 조인 안티 조인이란 조인 조건에서 NOT IN 연산자를 사용하는 조인 = 의 안티라고 해서!=, 가 아니다. 이것은 단지 cartesain product의 일부이다. 예 SELECT emp.employee_id, emp.first.. 2022. 6. 10. [SQL_오라클] GROUP QUERY [SQL_오라클] GROUP QUERY DISTINCT 만약 department_id는 유일한 값이 아니고, employee_id는 유일한 값이라고 한다면 SELECT DISTINCT department_id, employee_id라는 것은 department_id와 employee_id의 조합에 대한 값을 반환하게 된다. DISTINCT나 ALL은 바로 뒤의 하나에 대해서만 적용되는 것이 아니라 SELECT 절 전체에 적용이 된다. DISTINCT employee_id, DISTINCT first_name 이것은 오류를 발생시킨다. 결과로 나온 테이블에서 이미 employee_id로 DISTINCT를 시킨 결과에 다시 first_name으로 DISTINCT를 시킬 수 없다. DISTINCT는 중복 제거.. 2022. 6. 10. [SQL_오라클] 1일차 숙제 [SQL_오라클] 1일 차 숙제 SQL의 장점 배우고 사용하기 쉬운 언어 절차적인 개별 단위로 처리되기보다는 데이터의 집한 단위로 처리된다. 데이터가 어떻게 처리되는지에 대한 세부적인 과정은 SQL 문장을 작성하는 사람은 신경 쓰지 않아도 된다는 장점(절차적 언어가 아닌 선언적 언어) 공인된 기관의 표준 SQL 문법이 존재, 즉, DBMS의 종류에 얽매이지 않고 사용할 수 있는 장점이 있다. 트랜잭션이란? 트랜젝션이란 하나의 일일 작업 단위라고 볼 수 있다. 예를 들어 하나의 작업을 하는 데 사용되는 query가 두 개 있다고 하자. 두 개의 쿼리가 완전히 끝나야 하나의 작업이 완료된 것이다. 만일 두 개 중의 하나가 실패한다면 작업을 완전히 끝내지 못했으므로 데이터의 무결성을 위해 트랜젝션 처리를 하는.. 2022. 6. 10. [SQL_오라클] WHERE 절 [SQL_오라클] WHERE 절 함수 정수형 함수 ROUND(n, i) n을 소수점 이하 i 번째 자리까지 보여달라!! 곧 i+1번째에서 반올림을 한다 i가 0 이면 소수점 이하 0번째 자리, 곧 일의 자리까지 보여달라는 말 같은 의미로 -1이면 일의 자리에서 반올림 TRUNC(n1, n2) ROUND와 용법은 같고 내림 n2까지 보여달라!! 문자형 함수 CONCAT(char1, char2) '||'와 같은 기능 INITCAP(char) 첫 문자를 대문자로 나머지는 소문자로 보통은 공백이나 탭을 공백 문자로 사용하지만 알파벳이 아닌 문자 모두를 구분자로 인식하게 된다. 예 i am a boy => I Am A Boy i am a가 boy => I Am A Boy LPAD(expr1, n, expr2), .. 2022. 6. 8. 이전 1 2 다음 반응형