| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 파이썬 #python #class #클래스 #상속
- 파이썬 #python #함수 #function
- 약수 수하기
- 파이썬 #python #file #i/o #input #output
- redis
- 사용자정의예외
- 파이썬기본문법 #파이썬 #python
- 파이썬 #python #모듈 #module #import #random #time #calendar #sys
- 배포
- aws
- 파이썬 #python #전역변수 #지역변수 #eval
- 연산자메서드
- 파이썬 #python #lambda #람다
- 프로그래머스
- 파이썬 #python #os #os.path #glob
- 파이썬 #python #Comprehension
- 파이썬 #python #enumerate
- PostgreSQL
- 파이썬 #python #docstring
- 파이썬 #python #지역함수
- 파이썬 #python #예외처리 #exception
- jsonb
- 민감 정보 관리
- docker
- aw3
- 파이썬 #python #가변매개변수 #키워드가변매개변수 #args #kwargs
- EC2
- spring boot
- Git
- 파이썬 #python #filter #map #reduce
- Today
- Total
목록SQLD (26)
Yeonnnnny
■ 정규 표현식 문자열의 공통된 규칙을 보다 일반화하여 표현하는 방법 정규 표현식 사용 가능한 문자함수 제공(regexp_replace, regexp_substr, regexp_instr, ...) ex) 숫자를 포함하는, 숫자로 시작하는 4자리, 두 번째 자리가 A인 5글자 ■ 정규표현식 종류 ex) 전화번호의 일반화 ▷ 전화번호는 숫자와 -으로 구성 -> [0-9-]+ 로 표현 가능([] 안에 들어가는 패턴이 한자리의 문자열을 구성할 수 있는 값들) ▷ 두 번호가 tel값은 동시에 있지만, )가 있는 경우와 없는 경우를 모두 표현 -> ?사용 (?는 값이 없거나 1개 있음을 의미) ■ REGEXP_REPLACE : 정규표현식을 사용한 문자열 치환 가능 ** 문법 (대상, 찾을 문자열, [바꿀 문자열]..
■ 데이터의 구조 1) LONG DATA (Tidy Data) 하나의 속성이 하나의 컬럼으로 정의되어 값들이 여러 행으로 쌓이는 구조 RDBMS의 테이블 설계 방식 다른 테이블과의 조인 연산이 가능한 구조 2) WIDE DATA (Cross table) 행과 컬럼에 유의미한 정보 전달을 목적으로 작성하는 교차표 하나의 속성값이 여러 컬럼으로 분리되어 표현 RDBMS에서 WIDE 형식으로 테이블 설계시 값이 추가될 때마다 컬럼이 추가되어야 하므로 비효율적임 다른 테이블과의 조인 연산이 불가함 주로 데이터를 요약할 목적으로 사용 ※ 컬럼의 정보는 부서번호로 하나의 관찰대상(속성)을 한 컬럼으로 정의하지 않고 값의 종류별로 컬럼을 분리하였음 ■ 데이터 구조 변경 1) PIVOT : LONG → WIDE 교차표..
■ 계층형 질의 하나의 테이블 내 각 행끼리 관계를 가질 때, 연결고리를 통해 행과 행 사이의 계층(depth)를 표현하는 기법 ex) dept2에서의 부서별 상하관계 PRIOR의 위치에 따라 연결하는 데이터가 달라짐 select from 테이블명 start with 시작조건 -- 시작점을 지정하는 조건 전달 connect by prior 연결조건 ; -- 시작점 기준으로 하위 계급을 찾아가는 조건 START WITH : 데이터를 출력할 시작 지정하는 조건 CONNECT BY PRIOR : 행을 이어나갈 조건 ex) dept2 테이블에 대해 각 부서의 레벨을 출력 (최상위 부서가 1 레벨) select D.*, level from dept2 D start with pdept is null connect ..
■ TOP N QUERY 페이징 처리를 효과적으로 수행하기 위해 사용 전체 결과에서 특정 N개 추출 ex) 성적 상위자 3명 ■ TOP-N 행 추출 방법 ROWNUM RANK FETCH ■ ROWNUM 출력된 데이터 기준으로 행 번호 부여 절대적인 행 번호가 아닌 가상의 번호이므로 특정 행을 지정할 수 없음 (=연산 불가) 첫 번째 행이 증가한 이후 할당되므로 '>'연산 사용 불가 (0은 가능) ex) ROWNUM 의 출력 형태 select rownum, emp.* from emp where sal>=1500; ex) ROWNUM의 잘못된 사용 select * from emp where rownum>1; ※ 크다 조건 혹은 '=' 연산자 단독 전달 불가능함 ex) ROWNUM의 올바른 사용 select ..
■ Window Function 서로 다른 행의 비교나 연산을 위해 만든 함수 GROUP BY 를 쓰지 않고 그룹 연산 가능 LAG, LEAD, SUM, AVG, MIN, MAX, COUNT, RANK select 윈도우 함수([대상]) over ([partition by 컬럼] [order by 컬럼 asc|desc] [rows|range between A and B]); partition by : 출력할 총 데이터 수 변화 없이 그룹연산 수행할 GROUP BY 컬럼 order by RANK의 경우 필수 (정렬 컬럼 및 정렬 순서에 따라 순위 변화) SUM, AVG, MIN, MAX, COUNT 등은 누적값 출력 시 사용 rows | range between A and B 연산 범위 설정 order b..
■ 그룹함수 숫자함수 중 여러 값을 전달하여 하나의 요약값을 출력하는 다중행 함수 수학/통계 함수들 (기술통계 함수) GROUP BY 절에 의해 그룹별 연산 결과를 리턴함 반드시 한 컬럼만 전달 NULL은 무시하고 연산 ■ COUNT 행의 수를 세는 함수 대상 컬럼은 * 또는 단 하나의 컬럼만 전달 가능 (* 사용 시 모든 컬럼의 값이 널일 때만 COUNT 제외) 문자, 숫자, 날짜 컬럼 모두 전달 가능 행의 수를 세는 경우 NOT NULL컬럼을 찾아 세는 것이 좋음 (PK 컬럼) ex) emp테이블의 전체 행의 수 select count(*) from emp; ■ SUM 총 합 출력 숫자 컬럼만 전달 가능 ex) 급여의 전체 총 합 select sum(sal) from emp; ■ AVG 평균 출력 숫..
■ 집합 연산자 select문 결과를 하나의 집합으로 간주, 그 집합에 대한 합집합, 교집합, 차집합 연산 select문과 select문 사이에 집합 연산자 정의 두 집합의 컬럼이 동일하게 구성되어야 함(각 컬럼의 데이터 타입과 순서 일치 필요) 전체 집합의 데이터타입과 컬럼명은 첫번째 집합에 의해 결정됨 ■ 합집합 두 집합의 총 합(전체 출력) UNION과 UNION ALL UNION 중복된 데이터는 한 번만 출력 중복된 데이터를 제거하기 위해 내부적으로 정렬 수행 중복된 데이터가 없을 경우는 UNION 사용 대신 UNION ALL사용(불필요한 정렬 발생할 수 있으므로) UNION ALL 중복된 데이터도 전체 출력 ■ 교집합 두 집합 사이에 INTERSECT 두 집합의 교집합(공통으로 있는 행) 출력 ..
■ 서브쿼리 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말함 반드시 괄호로 묶어야 함 ex) SELECT 안에 SELECT문, INSERT, UPDATE, DELETE 안의 SELECT문 ■ 서브쿼리 사용 가능한 곳 SELECT 절 FROM 절 WHERE 절 HAVING 절 ORDER BY 절 기타 DML (INSERT, DELETE, UPDATE) 절 ** GROUP BY 절 사용 불가 ■ 서브쿼리 종류 1. 동작하는 방식에 따라 UN-CORRELATED(비연관) 서브쿼리 서브쿼리가 메인 쿼리 컬럼을 가지고 있지 않은 형태의 서브쿼리 메인쿼리에 서브쿼리가 실행된 결과 값을 제공하기 위한 목적으로 사용 CORRELATED(연관) 서브쿼리 서브쿼리가 메인쿼리 컬럼을 가지고 있는 형태의 서브 쿼..