반응형
SMALL

SQL 23

INT와 INTEGER 무엇이 다를까?

데이터 타입에서의 차이가 있다고 하여 찾아 보았다. 이 두 개념은 사실 100% 이해가 가지 않았기 때문에 개념을 정리하고, 실제로 사용 후 예시를 만들어서 정리할 예정이다. 따라서 두 개념의 차이만 인지하고 각 세부 설명 및 예시 장단점 등은 다루지 않았다. INT INTEGER 데이터 타입 자료형(primitive) 래퍼 클래스(wrapper class) 산술 연산 가능 언박싱(unboxing) 후 가능 null 값 처리 불가 (기본값이 존재하기 때문에) 가능 (따라서 SQL 연동 시 편리) 제네릭(generic) 여부 불가 가능 저장 영역 스택(stack) 영역 힙(heap) 영역 자료형(primitive type)이란? boolean(true/false), char(문자형), int(숫자형).....

DB/SQL 기초 2022.09.06

테이블 참조- PRIMARY KEY, FOREIGN KEY (*무결성 제약조건 해결방법)

[생성1] ‘PARENT’ 부모 테이블 생성 - pk 컬럼 지정, 값 삽입 CREATE TABLE PARENT (P_ID VARCHAR2(3) NOT NULL); ALTER TABLE PARENT ADD CONSTRAINT P_PK PRIMARY KEY (P_ID); -- P_PK는 인덱스명 이다. INSERT INTO PARENT VALUES ('A') [ [생성2] ‘CHILD’ 자식 테이블 생성 - pk/fk 컬럼 지정, 값 삽입 CREATE TABLE CHILD (C_ID VARCHAR2(3) NOT NULL, P_ID VARCHAR2(3)); ALTER TABLE CHILD ADD CONSTRAINT C_PK PRIMARY KEY (C_ID); -- C_PK는 인덱스명 이다. ALTER TABL..

DB/SQL 기초 2022.08.18

WINDOW 함수 - CUME_DIST, NTILE, RATIO_TO_REPORT, PERCENT_RANK (*비율 함수 정리)

주요개념 → 모든 윈도우 함수의 ‘전제조건은 윈도우 함수 내에서’ 이다. 함수형태 비교 → CUME_DIST() → NTILE(숫자) → RATIO_TO_REPORT(컬럼명) → PERCENT_RANK() CUME_DIST 함수 CUMULATIVE는 누적이라는 뜻이다. CUME_DIST 함수는 현재행보다 같거나 작은 건수들에 대하여 ‘누적 백분율’을 구한다. SELECT TEAM, ENAME, GOAL, ROUND(CUME_DIST() OVER (PARTITION BY TEAM ORDER BY GOAL),2) AS CD FROM TABLE1; TEAM ENAME GOAL CD ------- --------- ------- --------- A SON 30 0.33 A KAKA 30 0.67 A MESSY..

DB/SQL 기초 2022.08.16

WINDOW 함수 - WHERE절 역할을 하는 ROWS, RANGE

ROWS & RANGE 개념 ROWS - 행을 기준으로 선택하고 RANGE - 컬럼값 기준으로 범위를 선택한다. ROWS 예시 ROWS UNBOUNDED PRECEDING → 맨 위 행부터 현재 행까지 ⇣ ROWS UNBOUNDED FOLLOWING → 현재 행 부터 맨 아래 행까지 ⇣ ROWS 10 PRECEDING → 1행 ~ X(현재행) ROWS 10 FOLLOWING → X(현재행) ~ + 10행 RANGE 예시 RANGE 50 PRECEDING → Y-50 ~ Y(현재값) RANGE UNBOUNDED PRECEDING → 최저값 ~ Y(현재값) RANGE BETWEEN 50 PRCENDING AND 50 FOLLOWING → Y-50 ~ Y(현재값) ~ Y+50 RANGE BETWEEN UNBO..

DB/SQL 기초 2022.08.15

WINDOW 함수 한눈에 알아보기

행 간 연산을 위한 것. WINDOW_FUNCTION OVER ( ) PARTITON BY == GROUP BY ← 행 분할 ORDER BY == ORDER BY ← 행 정렬 ROWS/RANGE == WHERE ← 행 지정 (ROWS/RANGE 는 WINDOWING 절의 행 조건) 예시 쿼리 SELECT EMPNO, ENAME, DEPTNO, SLARY , SUM(SALARY) OVER (PARTITION BY DEPTNO ORDER BY SALARY DESC ROWS UNBOUNDED PRECEDING) AS TOT_SAL; -- TOT_SAL 컬럼에 파티션 별 누적합 -- 'ROWS UNBOUNDED PRECEDING'은 파티션 별 맨 위쪽부터라는 의미

DB/SQL 기초 2022.08.15

SELECT 문 - selection, projection, join 기본원리

SELECT문은 다양한 조건과 명령어와 함께 DB에서 데이터를 검색하는 기능이다. 그 기능의 몇가지 원리에 대해서 알아보자. SELECTION 테이블에서 출력하고자 하는 행을 제한적으로 출력 할 수 있다. PROJECTION 테이블에서 출력하고자 하는 열을 제한적으로 출력 할 수 있다. JOIN 여러 테이블을 연결하여 한번에 데이터를 함께 출력 할 수 있다.

DB/SQL 기초 2022.08.15

WHERE 절 - IN 같은 EXIST, NOT EXIST 함수

EXIST 는 IN 과 유사한 개념이다. → 둘다 where 절에 쓰인다. → IN () 에는 서브쿼리, 특정값 모두 올수 있지만, → EXIST () 에는 서브쿼리만 올 수 있다. → 그럼에도 exist를 사용하는 이유는 성능이 더 좋기 때문이다. 예문. exist / not exist /* SELECT 1 FROM DUAL; = SELECT * FROM emp; */ SELECT * FROM EMP WHERE EXIST (SELECT 1 FROM DUAL); -- 조건절이 항상 참이다. SELECT * FROM EMP WHERE EXIST (SELECT 1 FROM DUAL WHERE 1 = 2); -- 조건절이 항상 거짓이다. SELECT * FROM EMP WHERE NOT EXIST (SELEC..

DB/SQL 기초 2022.08.14

그룹함수 - rollup, cube, grouping sets + grouping (group by 절)

1. ROLLUP 함수 GROUP BY ROLLUP(A): 전체합계, A소계 GROUP BY ROLLUP(A,B,C): 전체합계, A소계, AB소계, ABC소계 → A가 기준 → 증가되는 형태이기 때문에 AC소계 x 2. CUBE 함수 GROUP BY CUBE(A): 전체합계, A소계 GROUP BY CUBE(A,B,C): 전체합계, A소계, B소계, C소계, AB소계, AC소계, BC소계, ABC소계 → 2^n 만큼 결과 수 → 모든 조합의 합계를 생성하기 때문에 시스템에 무리를 줄 수 있다. 3. GROUPING SETS 함수 GROUP BY GROUPING SETS(A): A소계 GROUP BY GROUPING SETS(A,B,C): A소계, B소계, C소계 *GROUPING SETS ((A,B),..

DB/SQL 기초 2022.08.14

Merge 문 - insert, update, delete 한번에 해결할 때

테이블 병합이다. 해당하는 데이터가 있으면 update(delete), 없으면 insert merge가 없다면, select 문 → 데이터 존재 유무 체크 → if (있으면) UPDATE; → else INSERT; MERGE INTO football_team T1 USING football_team_new T2 ON (T1.player = T2.player AND T1.number = T2.number) WHEN MATCHED THEN UPDATE SET T1.entry = T2.entry, T2.remark, T1.remark = ‘continue’ -- update 된 데이터면 col(remark)에 ‘continue’ 표시 WHEN NOT MACHED THEN INSERT VALUES (T2.en..

DB/SQL 기초 2022.08.13
반응형
LIST