SQL

    [MySQL] 특정 데이터의 타입을 바꾸는(형변환) 함수 CAST, CONVERT를 알아보자

    CAST, CONVERT 함수의 공통점은 데이터 타입을 변환해주는 함수예요. 다른 점은 함수 입력하는 기본 형식의 차이입니다. CAST 함수 기본 형식 CAST(값 AS 변환 데이터 타입 ) CONVERT 함수 기본 형식 CONVERT(값, 변환 데이터 타입) EX) 숫자 타입을 날짜 타입으로 변환하기 SELECT CAST(20221208 AS DATE); 결괏값: 2022-12-08 SELECT CONVERT(20221208, DATE); 결괏값: 2022-12-08 EX) 문자 타입을 숫자 타입으로 변환하기 SELECT CAST("10" AS SIGNED); 결괏값: 10 SELECT CONVERT("30", SIGNED); 결괏값: 30 > 보통 숫자 타입이라고 하면 INT를 생각하실 텐데요. CA..

    [MySQL] 문자열 연결 함수 CONCAT_WS() 알아보기

    CONCAT_WS 함수를 알아보기에 앞서 CONCAT 함수에 대해서 간략하게 보고 오시면 좋을 것 같아요. https://wnwa.tistory.com/32 [MySQL] 원하는 문자열 연결해서 추출하는 방법 CONCAT() 기본 형태 > CONCAT('문자열1', '문자열2', ...) 예시 1) SELECT CONCAT('Hello', 'World'); 결괏값: 'HelloWorld' 주의사항! > CONCAT 함수 안에 NULL 값이 하나라도 존재한다면 NULL 값이 반환됩니다. SELECT CONCAT('HELLO', 'WO wnwa.tistory.com CONCAT 함수와 CONCAT_WS 함수는 핵심인 '문자열 연결'은 동일하지만 몇 가지 차이점이 존재해요. 이를 CONCAT_WS 함수의 특징..

    [MySQL] 데이터 추가하는 방법 알아보기 INSERT (feat. 테이블 구조 확인)

    [MySQL] 데이터 추가하는 방법 알아보기 INSERT (feat. 테이블 구조 확인)

    칼럼 선택해서 데이터 추가하는 방법 INSERT INTO 테이블명 (칼럼1, 칼럼2, ..) VALUES (데이터1, 데이터2, ..); -- 한 번에 여러 개 추가하기 INSERT INTO 테이블명 (칼럼1, 칼럼2, ..) VALUES (데이터1, 데이터2, ..), (데이터1, 데이터2, ..); 전체 데이터 추가하는 방법 INSERT INTO 테이블명 VALUES (데이터1, 데이터2, ..); -- 한 번에 여러 개 추가하기 INSERT INTO 테이블명 VALUES (데이터1, 데이터2, ..), (데이터1, 데이터2, ..); * 데이터를 추가할 때는 데이터 타입에 맞게 입력을 해야 하기 때문에 테이블 구조를 먼저 확인하는 것이 우선이에요. -- 테이블 구조 확인하는 방법 DESC 테이블명;..

    [MySQL] 그룹지어 순위 매기는 방법 ROW_NUMBER() OVER PARTITION BY

    [MySQL] 그룹지어 순위 매기는 방법 ROW_NUMBER() OVER PARTITION BY

    > 직업별로 그룹화를 하고 순위를 매기는 방법은 어떻게 할까요? 위와 같은 질문에 답은 row_number() over(partition by 그룹화 기준 칼럼)입니다. 쿼리1) SELECT Name, occupation, ROW_NUMBER() OVER(PARTITION BY occupation) AS rank FROM oocupations; 결괏값: 각 직업을 기준으로 그룹화가 되어 순위를 매겨줍니다. > 조금 더 나아가 직업별로 그룹화를 하고, 이름 순으로 순위를 매기는 방법은 어떻게 할까요? 답은 ROW_NUMBER() OVER(PARTITION BY 그룹화 기준 칼럼 ORDER BY 정렬 기준 칼럼)입니다. 쿼리2) SELECT Name, occupation, ROW_NUMBER() OVER(P..

    [MySQL] 문자열 자르는 방법 SUBSTR()

    SUBSTR 함수는 예를 들어 'SALESMAN' 문자를 'MAN'으로 출력하고 싶을 때 사용하는 함수입니다. 기본 형태는 SUBSTR(문자열, 시작하는 문자열 길이, 시작점부터 읽을 길이) > 시작점부터 읽을 길이는 없어도 돼요. 없다면 시작하는 문자열 길이부터 끝까지 출력됩니다. 예시1 ) SELECT SUBSTR('SALESMAN', 5, 3); 결괏값: 'SMA' > 문자열 길이가 5인 S를 기준으로 S, M, A 총 3번 읽을 길이만큼 출력 SELECT SUBSTR('SALESMAN', 2, 4); 결괏값: 'ALES' > 문자열 길이가 2인 A를 기준으로 A, L, E, S 총 4번 읽을 길이만큼 출력 예시2) SELECT SUBSTR('SALESMAN', 6); 결괏값: 'MAN' > 문자열..

    [MySQL] COALESCE 함수로 NULL 값 처리하기 (feat. IFNULL 차이점)

    기본 사용법 SELECT COALESCE(칼럼1, 칼럼2, 칼럼3, ... , 칼럼 N, ...) FROM table; 칼럼1이 NULL이 아니면 칼럼1을 반환되고 NULL이면 칼럼2를 반환. 칼럼2가 NULL이 아니면 칼럼2를 반환하고 칼럼1과 칼럼2 모두 NULL이면 칼럼3을 반환. 칼럼 1 ~ 칼럼 5까지 NULL 이면 칼럼6을 반환되는 형식 예시1) COALESCE(칼럼1, 칼럼1 값이 NULL일 때 반환값) SELECT COALESCE(칼럼1, '공백') FROM member; 결괏값: 칼럼1에 있는 NULL값 대신 '공백'으로 출력 예시2) COALESCE(칼럼1, 칼럼2, 칼럼1, 2 모두 NULL일 때 반환값) SELECT COALESCE(칼럼1, 칼럼2, '공백') FROM member;..

    [MySQL] 조건에 맞는 값들을 묶어서 출력하기 GROUP_CONCAT

    [MySQL] 조건에 맞는 값들을 묶어서 출력하기 GROUP_CONCAT

    1) 예시로 기본 사용법 알아보기 - 'department1' TABLE 기본 형태 - GROUP_CONCAT 함수 적용한 'department1' TABLE 위와 같이 '같은 팀' 조건에 해당하는 값들을 묶어서 출력하는 쿼리는 아래와 같습니다. SELECT team as '팀', GROUP_CONCAT(member1) as '같은팀' FROM department1 GROUP BY team; 해당 쿼리에서 가장 중요한 것은 GROUP BY 입니다. 왜냐하면 '같은팀'으로 묶어주기 위한 '기준'이 되기 때문입니다. 즉, A팀 B팀 C팀으로 GROUP BY(그룹화)를 시켜주고, 각 팀에 해당하는 그룹들을 GROUP_CONCAT 함수로 묶어서 출력하게 되는 형식이에요. 2) 구분자 변경하기 GROUP_CONC..

    [MySQL] 문자를 소문자 및 대문자로 바꾸는 방법 (LOWER / UPPER 함수)

    대문자를 소문자로 바꾸는 함수 LOWER() 소문자를 대문자로 바꾸는 함수 UPPER() LOWER 함수 예시) SELECT LOWER('ABCDEF'); 결괏값: abcdef SELECT LOWER('AbcDef'); 결괏값: abcdef UPPER 함수 예시) SELECT UPPER('abcdef'); 결괏값: ABCDEF SELECT UPPER('aBcDEf'); 결괏값: ABCDEF

    [MySQL] 원하는 문자열 연결해서 추출하는 방법 CONCAT()

    [MySQL] 원하는 문자열 연결해서 추출하는 방법 CONCAT()

    기본 형태 > CONCAT('문자열1', '문자열2', ...) 예시 1) SELECT CONCAT('Hello', 'World'); 결괏값: 'HelloWorld' 주의사항! > CONCAT 함수 안에 NULL 값이 하나라도 존재한다면 NULL 값이 반환됩니다. SELECT CONCAT('HELLO', 'WORLD', NULL); 결괏값: NULL 예시 2) Name column과 Occupation column의 값들을 연결해서 추출하기 SELECT CONCAT(Name,':',Occupation) FROM OCCUPATIONS; 결괏값: Ashley:Professor Samantha:Actor Julia:Doctor Britney:Professor ... CONCAT을 활용하는 연습문제 https:..

    [MySQL] 문자열 부분 추출 함수 LEFT(), RIGHT(), MID()

    LEFT('문자열', n) - 왼쪽에서부터 지정한 수(n)만큼 문자 반환 SELECT LEFT('ABCD', 2) 결괏값: 'AB' RIGHT('문자열', n) - 오른쪽에서부터 지정한 수(n)만큼 문자 반환 SELECT RIGHT('ABCD', 2) 결괏값: 'CD' MID('문자열', m, n) - 문자열의 m위치에서 n개 길이만큼 문자 반환 * n을 입력하지 않는다면, m기준으로 문자열 끝까지 반환 SELECT MID('ABCDEF', 3, 3); 결괏값: 'CDE' SELECT MID('ABCDEF', -2); 결괏값: 'EF' SELECT MID('ABCDEF', 1); 결괏값: 'ABCDEF' 참고: MID() 함수 사용법은 SUBSTRING() 함수와 동일해요. 문자열 길이 활용 문제 링크 ..