SQL
-
START WITH - 계층형 쿼리를 쓸때 가장 최상위 계층을 식별할 수 있도록 조건을 넣는 곳 예시) SELECT * FROM COMPANY START WITH RANK IS NULL -- RANK의 최상위 코드는 NULL로 표시하라는 예시 CONNECT BY - 계층형 구조가 어떤 식으로 연결 될 것인지 쓰이는 것으로 PRIOR가 없는 곳에서 있는 곳으로 전개가 된다. ORDER SIBLINGS BY - 계층형 쿼리를 사용할 때 원하는 컬럼의 순서에 맞게끔 ORDER BY를 적용해준다. - ORDER BY와 다르게 계층에 맞게끔 순서를 나열하여 1 > 2 > 2 > 3 > 3 > 4 가 아닌 1 > 2 > 3 > 2 > 3 > 4 이렇게 나열을 한다.
계층형 쿼리START WITH - 계층형 쿼리를 쓸때 가장 최상위 계층을 식별할 수 있도록 조건을 넣는 곳 예시) SELECT * FROM COMPANY START WITH RANK IS NULL -- RANK의 최상위 코드는 NULL로 표시하라는 예시 CONNECT BY - 계층형 구조가 어떤 식으로 연결 될 것인지 쓰이는 것으로 PRIOR가 없는 곳에서 있는 곳으로 전개가 된다. ORDER SIBLINGS BY - 계층형 쿼리를 사용할 때 원하는 컬럼의 순서에 맞게끔 ORDER BY를 적용해준다. - ORDER BY와 다르게 계층에 맞게끔 순서를 나열하여 1 > 2 > 2 > 3 > 3 > 4 가 아닌 1 > 2 > 3 > 2 > 3 > 4 이렇게 나열을 한다.
2023.05.03 -
엔티티(Entity)란? 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 어떤것으로 학교나 학생처럼 현실 세계에서 눈에 보이는 개념일 수도 있고 주문이나 결제처럼 눈에 보이지 않는 개념일 수도 있다. 참고 : https://coding-factory.tistory.com/870 엔터티(Entity) 엔터티는 데이터베이스 테이블이라고 생각하면 이해가 편하다. 인스턴스(Instance) 인스턴스는 데이터베이스에 저장된 데이터 내용의 전체 집합을 의미한다. 속성(Attribute) 속성은 인스턴스의 구성요소로서 더이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다. 엔티티의 특징 유일한 식별자를 갖고 있어야 한다. ex)주민번호, ID 등... 2개 이상의 인스턴스가 있어야 한다. 반드시..
Entity란?엔티티(Entity)란? 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 어떤것으로 학교나 학생처럼 현실 세계에서 눈에 보이는 개념일 수도 있고 주문이나 결제처럼 눈에 보이지 않는 개념일 수도 있다. 참고 : https://coding-factory.tistory.com/870 엔터티(Entity) 엔터티는 데이터베이스 테이블이라고 생각하면 이해가 편하다. 인스턴스(Instance) 인스턴스는 데이터베이스에 저장된 데이터 내용의 전체 집합을 의미한다. 속성(Attribute) 속성은 인스턴스의 구성요소로서 더이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다. 엔티티의 특징 유일한 식별자를 갖고 있어야 한다. ex)주민번호, ID 등... 2개 이상의 인스턴스가 있어야 한다. 반드시..
2023.04.14 -
기본키 기본키는 DB에서 Primary Key라고 부른다. 선정하는 이유 예시로 짱구라는 이름을 찾으려고 할때 동명이인이 무수히 많다면 찾는데 오랜 시간이 걸린다. 하지만 학번이나 주민번호로 찾게되면 쉽게 찾을 수 있는데 이런 학번이나 주민번호는 중복되면 안되고 쉽게 찾을 수 있도록 하기 위해 기본키로 선정한다. 기본키의특징 Null값을 가질 수 없다. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다. 값의 중복이 없어야 한다. 후보키 후보키란 테이블을 구성하다보면 기본키에 해당되는 컬럼들을 많이 만들 수 있는데 주민번호나 전화번호, ID가 이러한 것들이고 이런 주민번호나 전화번호, ID는 모두 기본키가 될 수 있다 즉, 후보키는 유일성과 최소성을 만족해야 한다. 여기서 모두 기본키가 될 수 ..
기본키, 후보키(대체키/보조키), 외래키, 복합키기본키 기본키는 DB에서 Primary Key라고 부른다. 선정하는 이유 예시로 짱구라는 이름을 찾으려고 할때 동명이인이 무수히 많다면 찾는데 오랜 시간이 걸린다. 하지만 학번이나 주민번호로 찾게되면 쉽게 찾을 수 있는데 이런 학번이나 주민번호는 중복되면 안되고 쉽게 찾을 수 있도록 하기 위해 기본키로 선정한다. 기본키의특징 Null값을 가질 수 없다. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다. 값의 중복이 없어야 한다. 후보키 후보키란 테이블을 구성하다보면 기본키에 해당되는 컬럼들을 많이 만들 수 있는데 주민번호나 전화번호, ID가 이러한 것들이고 이런 주민번호나 전화번호, ID는 모두 기본키가 될 수 있다 즉, 후보키는 유일성과 최소성을 만족해야 한다. 여기서 모두 기본키가 될 수 ..
2023.04.11 -
OVER() 집계함수(GROUP BY, ORDER BY)를 사용할때 서브쿼리와 GROUP BY를 개선하기 위한 함수로 GROUP BY와 서브쿼리를 사용하지 않는다. SELECT MAX(컬럼) OVER()-- 전체행 중에 최고값 , MAX(컬럼) OVER(PARTITION BY 컬럼)-- 그룹내 최고값 , MIN(컬럼)OVER()-- 전체행 중에 최소값 , MIN(컬럼)OVER(PARTITION BY 컬럼)-- 그룹내 최소값 , SUM(컬럼)OVER()-- 전체행 합 , SUM(컬럼)OVER(PARTITION BY 컬럼)-- 그룹내 합 , AVG(컬럼)OVER()-- 전체행 평균 , AVG(컬럼)OVER(PARTITION BY 컬럼)-- 그룹내 평균 , COUNT(*)OVER() -- 전체행 카운트 , C..
[ORACLE] OVER()OVER() 집계함수(GROUP BY, ORDER BY)를 사용할때 서브쿼리와 GROUP BY를 개선하기 위한 함수로 GROUP BY와 서브쿼리를 사용하지 않는다. SELECT MAX(컬럼) OVER()-- 전체행 중에 최고값 , MAX(컬럼) OVER(PARTITION BY 컬럼)-- 그룹내 최고값 , MIN(컬럼)OVER()-- 전체행 중에 최소값 , MIN(컬럼)OVER(PARTITION BY 컬럼)-- 그룹내 최소값 , SUM(컬럼)OVER()-- 전체행 합 , SUM(컬럼)OVER(PARTITION BY 컬럼)-- 그룹내 합 , AVG(컬럼)OVER()-- 전체행 평균 , AVG(컬럼)OVER(PARTITION BY 컬럼)-- 그룹내 평균 , COUNT(*)OVER() -- 전체행 카운트 , C..
2022.12.05 -
IN 값이 포함되는 데이터를 추출할 때 사용 SELECT * FROM TABLE WGERE COLUMN IN 'A'-- 'A'를 포함한 데이터 추출 ※ [서브쿼리도 사용가능] SELECT * FROM MAIN_TABLE WHERE COLUMN IN ( SELECT SUB_COLUMN FROM SUB_TABLE WHERE SUB_COLUMN IS NOT NULL -- 결과 값에 NULL이 포함되면 데이터가 출력되지 않는다. ) NOT IN 값이 포함되지 않은 데이터를 추출할 때 사용 SELECT * FROM TABLE WGERE COLUMN NOT IN 'A'-- 'A'를 포함하지 않은 데이터 추출 ※ [서브쿼리도 사용가능] SELECT * FROM MAIN_TABLE WHERE COLUMN NOT IN ..
[ORACLE] IN / NOT ININ 값이 포함되는 데이터를 추출할 때 사용 SELECT * FROM TABLE WGERE COLUMN IN 'A'-- 'A'를 포함한 데이터 추출 ※ [서브쿼리도 사용가능] SELECT * FROM MAIN_TABLE WHERE COLUMN IN ( SELECT SUB_COLUMN FROM SUB_TABLE WHERE SUB_COLUMN IS NOT NULL -- 결과 값에 NULL이 포함되면 데이터가 출력되지 않는다. ) NOT IN 값이 포함되지 않은 데이터를 추출할 때 사용 SELECT * FROM TABLE WGERE COLUMN NOT IN 'A'-- 'A'를 포함하지 않은 데이터 추출 ※ [서브쿼리도 사용가능] SELECT * FROM MAIN_TABLE WHERE COLUMN NOT IN ..
2022.12.05 -
SELECT A.TABLE_NAME, B.COMMENTS FROM ALL_TABLES A, ALL_TAB_COMMENTS B WHERE A.TABLE_NAME = B.TABLE_NAME AND B.COMMENTS LIKE '%%' -- 찾고자하는 테이블의 코멘트 입력 ORDER BY A.TABLE_NAME;
[ORACLE] COMMENT로 TABLE 찾기SELECT A.TABLE_NAME, B.COMMENTS FROM ALL_TABLES A, ALL_TAB_COMMENTS B WHERE A.TABLE_NAME = B.TABLE_NAME AND B.COMMENTS LIKE '%%' -- 찾고자하는 테이블의 코멘트 입력 ORDER BY A.TABLE_NAME;
2022.12.01 -
IN 연산자 IN연산자를 사용시 or 조건을 여러개 사용하지 않아도 된다. User_name IN (Jon, Jain, Ham) // User_name이 jon이거나 jain이거나 ham 중에 어느 하나만이라도 값이 있다면 출력
ININ 연산자 IN연산자를 사용시 or 조건을 여러개 사용하지 않아도 된다. User_name IN (Jon, Jain, Ham) // User_name이 jon이거나 jain이거나 ham 중에 어느 하나만이라도 값이 있다면 출력
2022.11.03 -
START WITH ~ CONNECT BY START WITH : 계층 구조의 데이터를 읽어나가는데 있어 시작점을 지정한다. CONNECT BY : 다음에 읽을 자식 데이터를 지정한다. CONNECT BY의 조건식에 'PRIOR 자식컬럼 = 부모컬럼' : 이 형태의 조건을 사용하면 계층 구조의 데이터를 부모 → 자식 방향으로 내려가는 순방향 조회를 한다. NOCYCLE : 데이터를 읽어가면서 이미 조회했던 동일한 데이터를 다시 읽게 될 겨우 사이클(CYCLE)이 형성되었다고 하는데 NOCYCLE을 명시할 경우 사이클이 발생한 이후의 데이터는 읽지 않는다. CONNECT BY에 작성한다. ORDER SIBLINGS BY : ORDER BY와 다르게 형제(SIBLINGS) 노드 즉, 동일한 LEVEL의 데이..
START WITH ~ CONNECT BYSTART WITH ~ CONNECT BY START WITH : 계층 구조의 데이터를 읽어나가는데 있어 시작점을 지정한다. CONNECT BY : 다음에 읽을 자식 데이터를 지정한다. CONNECT BY의 조건식에 'PRIOR 자식컬럼 = 부모컬럼' : 이 형태의 조건을 사용하면 계층 구조의 데이터를 부모 → 자식 방향으로 내려가는 순방향 조회를 한다. NOCYCLE : 데이터를 읽어가면서 이미 조회했던 동일한 데이터를 다시 읽게 될 겨우 사이클(CYCLE)이 형성되었다고 하는데 NOCYCLE을 명시할 경우 사이클이 발생한 이후의 데이터는 읽지 않는다. CONNECT BY에 작성한다. ORDER SIBLINGS BY : ORDER BY와 다르게 형제(SIBLINGS) 노드 즉, 동일한 LEVEL의 데이..
2022.10.18