일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- hadoop
- kaggle
- matplot
- 시각화
- 하둡
- 빅분기
- ggplot2
- KT 에이블스쿨
- 머신러닝
- 시계열
- 다변량분석
- ML
- httr
- cnn
- 프로그래머스
- r
- 딥러닝
- 지도학습
- 하계인턴
- 웹크롤링
- 서평
- 에이블스쿨
- python
- 빅데이터분석기사
- Eda
- 에트리 인턴
- SQLD
- 한국전자통신연구원
- 기계학습
- ETRI
- 가나다영
- dx
- arima
- 한국전자통신연구원 인턴
- Ai
- 에이블러
- kt aivle school
- KT AIVLE
- 소셜네트워크분석
- SQL
- Today
- Total
목록SQL (20)
소품집
관계형 데이터베이스란? 관계형 데이터베이스는 1970년대 E.F. Codd박사의 논문에서 처음 소개된 데이터베이스이다. 관계형 데이터베이스는 릴레이션(relation)과 릴레이션의 조인 연산을 통해서 합집합, 교집합, 차집합 등을 만들 수 있다. 현재 기업에서 가장 많이 사용하는 데이터베이스로 Oracle, Ms-SQL, Sysbase 등의 다양한 데이터베이스 관리 시스템이 있다. 데이터베이스와 데이터베이스 관리 시스템의 차이점 데이터베이스는 데이터를 어떠한 자료 구조(Data Structure)를 사용하느냐에 따라 나눠진다. 데이터베이스의 종류로는 계층형, 네트워크형 데이터베이스, 관계형 데이터베이스 등이 있다. 계층형 데이터베이스는 트리(Tree) 형태의 자료구조로 데이터를 저장하고 관리하며, 네트워..
ROWNUM ROWNUM은 Oracle 데이터베이스의 select문 결과에 대해서 논리적인 일렬번호를 부여한다. 조회되는 행 수를 제한할 때 많이 사용된다. 화면에 데이터를 출력할 때 부여되는 논리적인 순번이다. 만약 ROWNUM을 사용해서 페이지 단위 출력을 하기 위해서는 **인라인 뷰(Inline View)**를 사용해야 한다. select * from employee where rownum ≤ 3 3행 이전까지만 조회한다. [Inline View?] 인라인 뷰란 select 문에서 from절에 사용되는 서브쿼리(Sub Query)를 의미한다. [ROWNUM, TOP, LIMIT] Oracle: ROWNUM SQL Server : TOP select top(3) from employee; MySQL ..
DECODE DECODE문으로 IF문을 구현할 수 있다. 특정 구문이 참이면 A, 거짓이면 B로 응답한다. decode(empno, 1000, TRUE, FALSE) if (empno==1000) {return 'true';} else {return 'false';} 와 같다고 보면 된다. CASE case 문은 if~then~else~end의 프로그래밍 언어처럼 조건문을 사용할 수 있다. 조건을 when구에 사용하고 then은 해당 조건이 참이면 실행되고 거짓이면 else구가 실행된다. 구조 CASE [expression] WHEN condition_1 THEN result_1 WHEN condition_2 THEN result_2 ... WHEN condition_n THEN result_n ELSE..
윈도우 함수란? 윈도우 함수는 행과 행 간의 관계를 정의 하기 위해서 제공되는 함수 윈도우 함수를 사용해서 순위, 합계, 평균, 행 위치 등을 조작할 수 있다. 윈도우 함수는 GROUP BY 구문과 병행하여 사용할 수 없다. 윈도우 함수로 인해 결과 건수가 줄어들지 않는다. 윈도우 함수의 PARTITION 구문과 GROUP BY 구문은 둘 다 파티션을 분할한다는 의미에서는 유사하다. SUM, MAX, MIN 등과 같은 집계 윈도우 함수를 사용할 때 윈도우 절과 함께 사용하면 집계 대상이 되는 레코드 범위를 지정할 수 있다. 윈도우 함수 구조 select window_function(arguments) over (partition by 칼럼 order by windowing 절) from 테이블명; WIN..
Main Query와 Subquery Subquery는 select 문 내에 다시 select문을 사용하는 이중 SQL 문이다. Subquery의 형태는 **FROM 구에 SELECT문을 사용하는 인라인 뷰(VIEW)**와 **select 문에 subquery를 사용하는 스칼라 서브쿼리(Scala subquery)**등이 있다. select * from (select rownum num, name from student) a where num (select min(sal) from emp e2 where e2.deptno = e1.deptno) order by deptno, sal select * from emp e1 where sal > (select min(sal) from emp e2 where e..
계층형 조회 (Connect by) 계층형 조회는 Oracle 데이터 베이스에서 지원하는 것으로 계층형으로 데이터를 조회할 수 있다. 예를 들어, 부장 → 차장, 차장→ 과장, 과장→ 대리, 대리→사원 순으로 트리 형태의 구조를 위에서부터 아래로 탐색하면서 조회하는 것이다. 역방향 조회도 가능하다. Tree 형태의 구조로 질의를 수행하는 것으로, START WITH는 시작 조건을 의미하고, CONNECT BY PRIOR는 조인 조건이다. 루트 노드로부터 하위 노드 질의를 실행한다. 키워드
1. EQUI JOIN (교집합) EQUI JOIN (교집합) 조인은 여러 개의 릴레이션을 사용해서 새로운 릴레이션을 만드는 과정이다. 조인의 가장 기본은 교집합을 만드는 것이다. select * from student, major where student.majorno = major.majorno; student table과 major table에서 majorno 칼럼을 사용하여 같은 것을 조인한다. EQUI JOIN에서만 HASH JOIN이 가능하다. 해시 조인은 먼저 선행 테이블을 결정하고, 선행 테이블에서 주어진 조건(where)에 해당하는 행을 선택한다. 해당 행이 선택되면 조인 키를 기준으로, 해시 함수를 사용해서 해시 테이블을 메인 메모리(Main memory)에 생성하고, 후행 테이블에서 ..
비교 연산자의 양쪽이 모두 char type인 경우길이가 서로 다른 char형 타입이라면, 작은 쪽에 space(공백)을 추가하여 길이를 같게 한 후에 비교서로 다른 문자가 나올 때 까지 비교달라진 첫 번째 문자의 값에 따라 크기를 결정blank의 수만 다르면 서로 같은 값으로 결정 비교 연산자의 어느 한 쪽이 varchar type인 경우서로 다른 문자가 나올 때 까지 비교길이가 다르다면 짧은 것이 끝날 때 까지만 비교한 후 길이가 긴 것이 크다고 판단길이가 같고 다른 것이 없다면 같다고 판단varchar은 not null 까지의 길이를 말함 상수 값과 비교할 경우상수 쪽을 변수 타입과 동일하게 바꾸고 비교변수 쪽이 char type이면 위의 char type의 경우를 적용변수 쪽이 varchar ty..
반정규화란? 정규화된 엔티티 속성, 관계에 대해 시스템 성능향상과 개발, 운영의 단순화를 위해 중복, 통합, 분리등을 수행하는 데이터 모델링 기법 언제 반정규화를 사용하는게 좋을까? 자주 사용되는 테이블에 접근하는 프로세스의 수가 많고 항상 일정한 범위만을 조회하는 경우 테이블에 대량 데이터가 있고 대량의 데이터 범위를 자주 처리하는 경우, 처리 범위를 줄이지 않으며 성능을 보장할 수 없는 경우 테이블에 지나친 조인이 걸려있는 경우 → 데이터를 중복하여 성능을 향상시키기 위한 기법! 반정규화를 사용하는 이유 데이터 무결성이 깨질 수 있는 위험을 무릅쓰고 데이터를 중복하여 반정규화를 적용하는 이유는,데이터를 조회할 때 디스크 I/O 양이 많아서 성능이 저하 경로가 너무 멀어 조인으로 인한 성능 저하 칼럼을..
Nested Loop 조인 Nested Loop 조인은 하나의 테이블에서 데이터를 먼저 찾고 그 다음 테이블은 조인하는 방식으로 실행된다. Nested Loop 조인에서 먼저 조회되는 테이블을 외부 테이블(Outer Table)이라고 하고 그 다음 조회되는 테이블을 내부 테이블(Inner Table)이라고 한다. Nested Loop 조인에서는 외부 테이블(선행 테이블)의 크기가 작은 것을 먼저 찾는 것이 중요하다. 그래야 데이터가 스캔되는 범위를 줄일 수 있기 때문! Nested Loop 조인은 RANDOM ACCESS가 발생하는데 RANDOM ACCESS가 많이 발생하면 성능 지연이 발생된다. 그러므로 Nested Loop 조인은 RANDOM ACCESS의 양을 줄여야 성능이 향상된다. 위의 예는 N..