데이터 처리 도구/SQL 16

[MySQL] 집합 연산(2): INTERSECT, EXCEPT

집합 연산(Set Operation)이란?SQL에서 집합 연산이란, 여러 쿼리 블록의 결과들을 하나의 결과로 결합하는 것. 여기서 '쿼리 블록'은 SELECT와 같이 어떤 결과 집합을 반환하는 모든 SQL 문(SQL statement)을 의미하며, 간단한 테이블이라고도 한다.  집합 연산은 3가지로 나눌 수 있다.  Set OperationDefinition1UNION두 쿼리 블록의 모든 결과를 중복을 생략하여 하나의 결과로 결합. ⇒ 합집합2INTERSECT두 쿼리 블록의 결과에서 공통된 행만을 중복을 생략하고 결합. ⇒ 교집합3EXCEPT두 쿼리 블록 A와 B에 대해, B에 존재하지 않는 A의 모든 결과를 중복을 생략하고 반환. ⇒ 차집합세 집합 연산자는 기본적으로 모두 중복을 생략하여 결과를 반환한..

[MySQL] WITH절 사용하여 CTE 생성하기

CTE(Common Table Expressions)란?CTE(a common table expression)는 하나의 SQL 문 내에서 일시적으로 사용되는 결과 집합(result set)이다. 이 결과 집합에 이름을 붙여 해당 SQL 문에서 여러 번 참조할 수 있다.   WITH절 사용하여 CTE 생성하기CTE를 명시하기 위해서는 WITH 절을 사용한다. WITH 절에서 한 개 혹은 여러 개의 CTE를 정의할 수 있다. 각 CTE는 쉼표로 구분된 하위 절(subclauses)로 표현되며, 각 하위 절은 서브쿼리를 포함하고 있다.(즉, 여러 개의 CTE를 정의할 때는 콤마로 구분하여 작성하면 됨!) 각 하위 절에서는 CTE의 서브쿼리를 통해 결과 집합을 생성하고, 그것을 지칭하는 이름을 지정해주어야 한다..

[MySQL] 정규표현식 함수 (Regular Expressions)

문자열과 정규표현식 패턴의 일치 여부를 알려주는 함수방법 1. REGEXP (= RLIKE)-- synonyms: REGEXP = RLIKESELECT expr REGEXP pat;SELECT expr RLIKE pat; SELECT expr NOT REGEXP pat;SELECT expr NOT RLIKE pat;문자열(expr)이 정규표현식 패턴(pat)과 일치하면 ⇒ 1문자열(expr)이 정규표현식 패턴(pat)과 일치하지 않으면 ⇒ 0문자열(expr) 또는 정규표현식 패턴(pat)가 NULL 인 경우 ⇒ NULL  방법 2. REGEXP_LIKE( )SELECT REGEXP_LIKE(expr, pat[, match_type]);문자열(expr)이 정규표현식 패턴(pat)과 일치하면 ⇒ 1문..

정규 표현식(Regular Expression)

정규 표현식이란?프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어를 말한다. 정규식이라고도 부른다. 정규 표현식은 사용되는 언어마다 문법이 조금씩 다를 수도 있다.  정규 표현식의미자세한 설명abcLettersabc 글자 그대로 일치123Digits123 숫자 그대로 일치.Any Character1개의 아무 문자 일치(조커카드. 줄바꿈 문자를 제외한 모든 문자를 표현할 수 있다. 빈칸도 가능하고, 특수문자도 가능하다)\.Period마침표(마침표를 찾으려면, 이스케이프 문자인 역슬래쉬(\)를 앞에 붙인다)   활용 1. 대괄호 사용해서 문자 패턴 찾기- 대괄호( [ ] ) 는 문자 집합을 의미한다.- 대괄호( [ ] ) 안에 존재하는 원소 모두 일치(AND)가 아니라, 하..

[MySQL] 집합 연산(1): UNION, UNION ALL 사용하여 조회 결과 결합하기

집합 연산(Set Operation)이란?SQL에서 집합 연산이란, 여러 쿼리 블록의 결과들을 하나의 결과로 결합하는 것. 여기서 '쿼리 블록'은 SELECT와 같이 어떤 결과 집합을 반환하는 모든 SQL 문(SQL statement)을 의미하며, 간단한 테이블이라고도 한다.  집합 연산은 3가지로 나눌 수 있다.  Set OperationDefinition1UNION두 쿼리 블록의 모든 결과를 중복을 생략하여 하나의 결과로 결합. ⇒ 합집합2INTERSECT두 쿼리 블록의 결과에서 공통된 행만을 중복을 생략하고 결합. ⇒ 교집합3EXCEPT두 쿼리 블록 A와 B에 대해, B에 존재하지 않는 A의 모든 결과를 중복을 생략하고 반환. ⇒ 차집합 세 집합 연산자는 기본적으로 모두 중복을 생략하여 결과를 반환..

[MySQL] 비트 연산과 관련 함수(CONV, BIN, BIT_LENGTH)

1. 비트 연산이란?비트 단위에서 수행되는 연산이다. 즉, 2진수 형태인 비트 단위의 데이터에 대해서 연산을 수행한다. 비트 연산은 다른 연산에 비해 빠르고 메모리 사용이 적다. MySQL에서도 이러한 비트 연산을 사용할 수 있다. MySQL은 비트 연산을 지원하여 데이터베이스 내에서 효율적인 데이터 조작이 가능하다. 연산자의미설명&비트 AND 연산해당 비트가 모두 1이면 1, 아니면 0|비트 OR 연산해당 비트 중 하나만 1이어도 1, 아니면 0^비트 XOR 연산해당 비트의 값이 다르면 1, 같으면 0~비트 NOT 연산1은 0으로, 0은 1로 반전왼쪽 Shift 연산지정된 갯수만큼 모든 비트를 왼쪽으로 이동>>오른쪽 Shift 연산지정된 갯수만큼 모든 비트를 오른쪽으로 이동    2. MySQL Bit..

[MySQL] 날짜/시간 다루기 (2) 연산하기

1. 날짜에 시간 간격을 더하기 or 빼기SELECT DATE_ADD('2022-05-04', INTERVAL 1 DAY);-- OUTPUT: '2022-05-05'SELECT DATE_ADD('2022-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND);-- OUTPUT: '2023-01-01 00:01:00'SELECT DATE_ADD('2022-05-04', INTERVAL -1 DAY)-- OUTPUT: '2022-05-03'SELECT DATE_SUB('2022-05-04', INTERVAL 1 DAY);-- OUTPUT: '2022-05-03'DATE_ADD(date, INTERVAL expr unit)- date에서 INTERVAL 뒤에..

1 2 3