REGEXP_SUBSTR 함수REGEXP_SUBSTR 함수는 문자열에서 특정 패턴에 맞는 부분을 추출하는 함수이다. 정규표현식의 기본 연산자연산자의미예시.임의의 한 문자'a.b' 는 "aab", "acb"와 일치하지만 "bca"와는 일치하지 않음|or 의 의미를 가짐'a|b'는 "a", "b"와 일치하지만 "c"d와는 일치하지 않음\뒤에 오는 문자를 일반 문자로 취급연산자로 쓰이는 기호 앞에 붙으면 해당 문자는 연산자가 아닌 문자 그대로 취급^문자열의 시작을 나타냄'^a'는 "apple"과 일치하지만 "banana"와는 일치하지 않음$문자열의 끝을 나타냄'n$'는 "melon"과 일치하지만 "banana"와는 일치하지 않음?선행 문자 0개 또는 1개'ba?'는 "b" 또는 "ba" 와 일치(? 앞에 있는..
그룹함수데이터를 GROUP BY 하여 데이터를 구하는 함수이다. 집계함수와 총계함수로 나눌 수 있다. 집계 함수COUNT, SUM, AVG, MAX, MIN 등소계(총계) 함수ROLLUP, CUBE, GROUPING SETS 등 ROLLUP 소그룹 간의 소계 및 총계를 계산하는 함수ROLLUP소그룹 간의 소계 및 총계를 계산하는 함수ROLLUP (A)A 로 그룹핑총합계ROLLUP (A, B)A, B로 그룹핑A 로 그룹핑총합계ROLLUP (A, B, C)A, B, C로 그룹핑A, B로 그룹핑A 로 그룹핑총합계 ROLLUP은 그룹핑 순서에 따라 소계와 총계를 계산하며 중간 단계의 조합은 포함하지 않는다 CUBE소그룹 간의 소계 및 총계를 다차원적으로 계산할 수 있는 함수 조합할 수 있는 모든 그룹에 대한..
서브쿼리란하나의 쿼리 안에 존재하는 또 다른 쿼리를 말한다. 서브쿼리는 위치에 따라 3가지로 나눌수 있다.위치이름설명SELECT 절스칼라 서브쿼리(Scalar Subquery)컬럼이 올수 있는 대부분의 위치에 사용할수 있다.컬럼 대신 사용하므로 반드시 하나의 값만을 반환해야 한다.FROM 절인라인 뷰(Inline View)테이블 명이 올수 있는 위치에 사용 가능하다.WHERE 절, HAVING 절중첩 서브쿼리(Nested Subquery)WHERE 설과 HAVING 절에 사용할 수 있다.비연관 서브쿼리와 연관 서브쿼리로 나뉜다. 중첩서브쿼리는 서브쿼리내에 메인쿼리의 유무에 따라서 비연관 서브쿼리와 연관 서브쿼리로 나뉜다.이름설명상세비연관 서브쿼리(Uncorrelated Subquery)메인쿼리와 관계를 ..
1. NATURAL JOIN 은 두 테이블에서 같은 이름을 가진 칼럼들이 모두 동일한 데이터를 가지고 있을 경우 JOIN 이 되는 방식으로 공통 컬럼 앞에 테이블 명이나 ALIAS를 붙이면 애러가 발생한다. 2. NULL 값을 가장 큰 값으로 처리할지 가장 작은 값으로 처리할지는 DB마다 다르다ORDER BY 에서의 NULL 값 처리MySQL, SQLite, MSSQLNULL 값이 가장 작은 값으로 처리PostgreSQL, OracleNULL 값이 가장 큰 값으로 처리 3. SELECT 쿼리의 논리적 실행순서FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY이전 단계에 처리되는 명령문은 나중에 처리되는 명령문에서 사용하는 예약어를 사용할 수 없다. 4...
WHERE 절INSERT 를 제외만 DML 구문에서 원하는 데이터만 골라서 원하는 명령어를 실행할수 있도록 지정할 수 있는 구문이다. WHERE 절 비교 연산자연산자의미예시=같음where num = 10작음\where num 작거나 같음where num >큼where num > 10>=크거나 같음where num >= 10 WHERE 절에 쓰이는 부정 연산자연산자의미예시!=같지 않음where num != 10^=같지 않음where num ^= 10같지 않음where num 10not 컬럼명 =같지 않음where not num = 10not 컬럼명 >크지 않음where not num > 10not 컬럼명 작지 않음where not num WHERE 절에 쓰이는 연산자연산자의미예시BETWEEN A AND..
SELECT 문저장되어 있는 데이터를 조회할 때 사용 산술 연산자 우선순위우선순위연산자의미1()우선순위 조정2*곱하기/나누기3+더하기-빼기%나머지 SQL문에 사용되는 함수 문자 함수설명사용결과CHR(ASCII 코드)ASCII 코드를 인수로 입력했을때 매핑된 문자를 리턴CHR(65)ALOWER(문자열)문자열을 소문자로 변환해주는 함수LOWER('KIM')kimUPPER(문자열)문자열을 대문자로 변환해주는 함수UPPER('kim')KIMLTRIM(문자열 [,특정문자])특정문자를 따로 명시하지 않은 경우 문자열의 왼쪽 공백을 제거한다.명시해주었을 경우 문자열을 왼쪽부터 한 글자씩 특정 문자와 비교하여 특정 문자에 포함되어 있으면 제거하고 포함되지 않았을 경우 멈춘다.SELECT LTRIM('아이유', '아이'..
트랜잭션은 데이터를 조작하기 위한 하나의 논리적인 작업 단위이다.트랜잭션의 특징원자성(Atomicity)트랜잭션은 더 이상 분리가 불가능한 업무의 최소단위이므로, 전부 처리되거나 아예 하나도 처리되지 않아야 함일관성(Consistency)하나의 트랜잭션이 완료된 후에도 데이터베이스는 여전히 일관된 상태여야 함즉, 트랜잭션 때문에 데이터베이스가 모순된 상태가 되면 안됨고립성(Isolation)실행 중인 트랜잭션의 중간 결과에 다른 트랜잭션이 접근할 수 없음지속성(Durability)트랜잭션이 성공적으로 실행 완료되면 그 결과는 데이터베이스에 영속적으로 저장됨 NULL 이란 존재하지 않음 즉 값이 없음을 의미한다.가로연산에서 NULL 이 포함되어 있으면 결과값은 NULL이 된다.세로연산에서 NULL 이 포함..
정규화는 데이터의 정확성과 일관성을 유지하기 위해 엔티티를 작은 단위로 분리하는 과정이다.정규화를 하면 데이터 조회성능은 향상되는 경우도 있고 저하되는 경우도 있다. 그러나 정규화를 하면 입력, 수정, 삭제 성능은 일반적으로 향상된다. 정규화제 1 정규형모든 속성은 반드시 하나의 값을 가져야 한다제 2 정규형엔티티의 모든 일반속성은 반드시 모든 주식별자에 종속되어야 한다제 3 정규형주 식별자가 아닌 모든 속성 간에는 서로 종속될 수 없다. 반정규화데이터의 조회 성능을 향상시키기 위해 데이터의 중복을 허용하거나 데이터를 그룹핑하는 과정이다. 조회성능은 향상될 수 있으나 입력, 수정, 삭제 성능은 저하될수 있다.순서상 정규화가 끝난 후 반정규화를 한다테이블 반정규화 테이블 병합1:1 관계 테이블 병합JOI..
모델링이란 무엇일까 ? 모델링이란 설계 디자인 형상과 관련되어 있다.데이터베이스에서 모델링은 현실 세계를 단순화하여 포현하는 기법이다. 모델링의 조건현실 세계를 반영해야 한다단순화하여 표현해야 한다관리하고자 하는 데이터를 모델로 설계한다.모델링 정리 모델링의 특징1. 추상화2. 단순화3. 명확화모델링의 세 가지 관점1. 데이터 관점2. 프로세스 관점3. 데이터와 프로세스의 상관 관점데이터의 품질1. 중복2. 비유연성3. 비일관성모델리의 세가지 관계1. 개념적 모델링2. 논리적 모델링3. 물리적 데이터 모델링3단계 스키마의 구조1. 외부 스키마2. 개념 스키마3. 내부 스키마3단계 스키마가 보장하는 독립성1. 논리적 독립성2. 물리적 독립성모델링의 특징추상화현실세계를 일정한 형식으로 표현하는것 아이디어나 ..

데이터의 특성에는 존재적 특성과 당위적 특성이 있다.구분형태예존재적 특성 (데이터)있는 그대로의 객관적 사실부산의 현재 기온은 34도당위적 특성 (정보)추론 예측 전망 추정을 위한 근거부산의 날씨는 덥다 데이터의 유형에는 수치화 할수 있느냐에 따라 정성적 데이터와 정량적 데이터가 있다.구분형태예정성적 데이터언어, 문자 등문자 텍스트, 언어, 문자 (Hello World!)정량적 데이터수치, 도형, 기호 등34도, 250m 데이터의 유형에는 형태와 연산가능성으로 정형 데이터와 비정형 데이터, 그리고 반정형 데이터로 나눌 수 있다.구분특징예정형 데이터정형화된 틀이 있고 연산이 가능CSV, 엑셀, Oracle, MySQL 데이비정형 데이터정형화된 틀이 없고 연산이 불가능소셜 데이터, 댓글, 영상 등반정형 데이..