[MySQL] 형 변환을 도와주는 CAST/CONVERT 함수
·
SQL/개념
1. 사용 방법 CAST(컬럼명, 값 AS 변경하려는 TYPE명) CONVERT(컬럼명, 변경하려는 TYPE명) 2. 사용 가능한 TYPE BINARY : binary로 변환 CHAR : 문자열로 변환 DATE : yyyy-mm-dd의 date로 변환 DATETIME : yyyy-mm-dd hh:mm:ss의 datetime으로 변환 TIME : hh:mm:ss의 time으로 변환 DECIMAL : 최대 자릿수인 (M), 소숫점 이하 자릿수(D)로 지정 NCHAR : nchar로 변환 SIGNED : signed(부호 있는 64비트 정수)로 변환 UNSIGNED : unsigned(부호 없는 64비트 정수)로 변환 3. 예시 -- 값을 date형으로 변환 SELECT CAST("2021-09-27" AS ..
[MySQL] RECURSIVE 재귀 쿼리
·
SQL/개념
프로그래머스의 입양 시각 구하기(2)와 같이 연속되는 값으로 구성된 테이블의 틀이 필요한 경우가 있다. 예를 들면...1~10번, 1월~12월, 0시~24시 같은 경우. 내가 가지고 있는 데이터 내에서 저 값에 해당되는 값들이 모두 있는 경우, group by로 하면 되겠지만 그렇지 못하는 경우가 종종 있기 때문에 recursive를 사용해야 할 때가 많았다. WITH RECURSIVE문의 예시와 특징 WITH RECURSIVE TABLE명 AS( SELECT ... -- 특징 1 : 비반복문이 필요함. 초반에 한 번 사용됨 UNION ALL -- 특징 2: 다음 반복문과 이어주기 위해서 사용. 필수로 사용되어야 한다. SELECT ... -- 특징 3 : 반복문이 필요함. FROM ... WHERE ...
[MySQL] 정규표현식, REGEXP
·
SQL/개념
MySQL REGEXP: Querying Data Using Regular Expressions In this tutorial, you have learned how to query data using the MySQL REGEXP operator with regular experssions. www.mysqltutorial.org 정규 표현식(Regular Expression)이란? 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다. 문자열을 처리하는 방법 중 하나로, 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리할 수 잇도록 해주는 수단이다. 패턴 Metacharacter Behavior ^ ~로 시작하는 문자열을 찾는다 $ ~로 끝나는 ..
[MySQL] JOIN 관련 정리
·
SQL/개념
종류 설명 INNER JOIN 조건을 사용해서 두 테이블의 레코드를 결합한다. EQUI JOIN INNER JOIN. 두 테이블 사이의 같은 행들을 반환한다. NON-EQUI JOIN INNER JOIN. 두 테이블 사이의 같지 않은 행들을 반환한다. OUTER JOIN INNER JOIN과 비슷한데 일치되지 않은 데이터도 출력한다. NATURAL JOIN 'ON'절이 없는 INNER JOIN. 같은 열 이름을 가진 두 테이블을 조인할때만 작동한다. ex. USING(customer_id) CROSS JOIN/CARTESIAN JOIN 한 테이블의 모든 행과 다른 테이블의 모든 행이 연결되는 모든 경우를 반환한다. COMMA JOIN = CROSS JOIN. 콤마가 CROSS JOIN 키워드 대신 사용됨..
[MySQL] IFNULL과 COALSECE의 차이
·
SQL/개념
MySQL에서 Null값을 처리하기 위해 사용되는 함수는 IFNULL, COALESCE 함수가 있다. (조건문인 CASE와 IF 함수는 여기서 논하지 않습니다) 이 둘의 차이점은 무엇일까 ? => check할 수 있는 argument 갯수에 차이가 있다 (사용 방법에 차이가 있음) => COALSECE는 SQL 표준 함수이고, IFNULL은 MySQL에서만 사용이 가능하다 IFNULL(val, x) -- single argument -> val 값이 null이면 x를 반환하고, null이 아니면 val을 그대로 반환한다 COALSECE (val1, val2, val3...) -- multiple(N) argument -> val1 값이 null이면 val2를 반환, val2도 null이면 val3를 반환..
[MySQL] CROSS-JOIN
·
SQL/개념
https://yahwang.github.io/posts/33
[MySQL] DATETIME 형식에서 특정 기간을 조회할 때
·
SQL/개념
만약 2022년 01월 01일 부터 2022년 01월 10일 까지의 주문 목록을 조회해야 하는 상황이라면, 대게는 SELECT ORDER_ID FROM ORDERS WHERE ORDER_DATE BETWEEN '2022-01-01' AND '2022-01-10' 과 같은 형식으로 조회하게 될 것입니다. 하지만, 검색 필드가 DATETIME 형식이라면 해당 쿼리는 기대와 같은 결과 값을 출력하지 못할 수 있습니다. DATETIME는 날짜와 시간을 모두 포함할 때 사용하는 타입으로, '2022-01-10'은 '2022-01-10 00:00:00'과 같은 형식을 따르기 때문입니다. 이에, DATETIME 형식의 검색 필드에서 BETWEEN AND 방법을 이용하여 특정 기간을 조회 할 때는 SELECT ORDE..
[SQL 개념] Driving Table, Driven Table이란?
·
SQL/개념
[SQL 튜닝] 드라이빙 테이블(DRIVING TABLE)의 개념/결정 규칙 [SQL 튜닝] 드라이빙 테이블(DRIVING TABLE)의 개념/결정 규칙 💡 먼저, 드라이빙 테이블(DRIVING TABLE)이란? JOIN시 먼저 액세스 돼서 ACCESS PATH를 주도하는 테이블을 드라이빙테이블이라고 한다. 즉,. devuna.tistory.com DRIVING TABLE 이란? JOIN시 먼저 엑세스 되어 Access path(접근 경로)를 주도하는 테이블을 드라이빙 테이블(TRIVING TABLE, OUTER TABLE)이라고 한다. DRIVEN TABLE 이란? DRIVEN TABLE 엑섹스 된 후 나중에 액세스 되는 테이블을 드리븐 테이블(DRIVEN TABLE, INNER TABLE)이라고 한다..