inblog logo
|
parangdajavous
    Data Base

    [Data Base] 3. SELECT 단일행 함수

    김미숙's avatar
    김미숙
    Feb 26, 2025
    [Data Base] 3. SELECT 단일행 함수
    Contents
    1. 단일행 함수2. 조건문
    ‼️
    연산된 결과: view (가상 테이블)

    1. 단일행 함수

    날짜/시간
    select now();
    notion image
     
    select date('2025-02-25 12:30:35'); select time('2025-02-25 12:30:35'); select year('2025-02-25 12:30:35'); select month('2025-02-25 12:30:35'); select day('2025-02-25 12:30:35'); select hour('2025-02-25 12:30:35'); select minute('2025-02-25 12:30:35'); select second('2025-02-25 12:30:35');
    notion image
    notion image
    notion image
    notion image
    notion image
    notion image
    notion image
    notion image
     
    select '2025-02-25';
    notion image
     
    select ename, hiredate, now() from emp;
    notion image
     
     
    날짜 포맷
    select date_format(now(),'%y/%m/%d-%h:%i:%s');
    notion image
     
    날짜 연산하기_더하기
    select date_add('2025-02-25', interval 4 year); select date_add(now(), interval 4 month); select date_add(now(), interval 4 week); select date_add(now(), interval 4 day); select date_add(now(), interval 4 hour); select date_add(now(), interval 4 minute); select date_add(now(), interval 4 second);
    notion image
    notion image
    notion image
    notion image
    notion image
    notion image
    notion image
     
    날짜 연산하기_빼기
    select date_sub('2025-02-25', interval 4 year); select date_sub('2025-02-25', interval 4 month);
    notion image
    notion image
     
    날짜 연산하기_간격
    select datediff('2025-02-25', '2025-03-01'); select timediff(now(), '2025-02-25 12:50:00');
    notion image
    notion image
     
    날짜 연산하기_마지막날짜
    select last_day(now());
    notion image
     
    수학 함수
    select floor(101.5); select ceil(101.5); select round(101.4); select mod(101,10);
    notion image
    notion image
    notion image
    notion image
     
    문자열 함수_문자열 슬라이싱
    -- substr(시작번지 1~, 갯수) select substr(hiredate,1,4) from emp; select year(hiredate) from emp; select replace('010/2222/7777','/','-');
    notion image
    notion image
    notion image
     
    문자열 함수_문자열 인덱스 번호 찾기
    select instr('abcde','c'); select rpad('ssarmango',10,'*'); select rpad(substr('ssarmango',1,4),length('ssarmango'),'*') -- 남는 자리 * 표시 select lpad(substr('ssarmango',1,4),length('ssarmango'),'*');
    notion image
    notion image
    notion image
    notion image
     

    문제_전화번호 중간자리만 * 표시

    -- 샘플링 / 한개만 해보기 select instr('055)381-2158', ')'); -- 4 / 시작번호 4+1
    4+1 부터 번호 시작
    4+1 부터 번호 시작
    select instr('055)381-2158', '-'); -- 8 / 마지막 번호 8-4-1
    8-1이 마지막 번호 / 중간 번호 자릿수는 8-4-1
    8-1이 마지막 번호 / 중간 번호 자릿수는 8-4-1
    -- substr() 사용해서 중간번호만 출력 select substr('055)381-2158',instr('055)381-2158', ')')+1,instr('055)381-2158', '-')-instr('055)381-2158', ')')-1);
    notion image
    ‼️
    repeat() → 곱하기
    *을 중간번호 자릿수만큼 곱해야함(길이_lenght)
    -- 뽑은 중간자리를 * 표시되게 출력하기 select repeat('*',length(substr('055)381-2158',instr('055)381-2158', ')')+1,instr('055)381-2158', '-')-instr('055)381-2158', ')')-1)));
    notion image
    -- 번호 전체 중 중간자리만 * 표시되게 출력하기 select replace('055)381-2158',substr('055)381-2158',instr('055)381-2158', ')')+1,instr('055)381-2158', '-')-instr('055)381-2158', ')')-1),repeat('*',length(substr('055)381-2158',instr('055)381-2158', ')')+1,instr('055)381-2158', '-')-instr('055)381-2158', ')')-1))));
    notion image
    완성
    select tel, replace(tel,substr(tel,instr(tel, ')')+1,instr(tel, '-')-instr(tel, ')')-1),repeat('*',length(substr(tel,instr(tel, ')')+1,instr(tel, '-')-instr(tel, ')')-1))));
    notion image
     

    2. 조건문

    -- 조건문 (if - mySQL, case when - 모든 DB) select if(10>5,"참","거짓");
    notion image
     
    -- 2500 (고액연봉), (일반연봉) // if보다 깔끔하고 가독성이 좋다 select ename, sal, case when sal>2500 then "고액연봉" when sal<2000 then "일반연봉" else "중간연봉" end "연봉그룹" -- 별칭: 연봉그룹 from emp;
    notion image
     
     

    MySQL 날짜 포맷 키 값 목록

    키
    설명
    예시 ('2025-02-25 15:30:45' 기준)
    %Y
    4자리 연도
    2025
    %y
    2자리 연도
    25
    %m
    2자리 월(01~12)
    02
    %c
    12자리 월(112)
    2
    %M
    월 이름 (영어)
    February
    %b
    월 이름 축약형 (영어)
    Feb
    %d
    2자리 일(01~31)
    25
    %e
    12자리 일(131)
    25
    %W
    요일 (영어)
    Tuesday
    %a
    요일 축약형 (영어)
    Tue
    %w
    요일 숫자(0=일요일 ~ 6=토요일)
    2
    %j
    연중 몇 번째 날인지(001~366)
    056
    %H
    24시간제 시간 (00~23)
    15
    %h 또는 %I
    12시간제 시간 (01~12)
    03
    %p
    AM/PM 표시
    PM
    %i
    분 (00~59)
    30
    %s
    초 (00~59)
    45
    %f
    마이크로초 (6자리)
    000000
    %r
    12시간제 시간 + AM/PM (%I:%i:%s %p)
    03:30:45 PM
    %T
    24시간제 시간 (%H:%i:%s)
    15:30:45
    %X
    주의 연도 (ISO 8601, 4자리)
    2025
    %x
    주의 연도 (2자리)
    25
    %v
    주차 (ISO 8601, 01~53)
    09
    %U
    주차 (일요일 시작, 00~53)
    08
    %u
    주차 (월요일 시작, 01~53)
    09
    %D
    일 + 서수 접미사 (1st, 2nd, 3rd...)
    25th
     

    기본적인 수학함수

    함수
    설명
    예제
    결과
    ABS(x)
    절댓값 반환
    SELECT ABS(-10);
    10
    CEIL(x)
    올림 (큰 정수)
    SELECT CEIL(101.5);
    102
    FLOOR(x)
    내림 (작은 정수)
    SELECT FLOOR(101.5);
    101
    ROUND(x)
    반올림
    SELECT ROUND(101.4);
    101
    ROUND(x, d)
    소수점 d 자리까지 반올림
    SELECT ROUND(101.456, 2);
    101.46
    TRUNCATE(x, d)
    소수점 d 자리까지 절삭(버림)
    SELECT TRUNCATE(101.456, 2);
    101.45
    MOD(x, y)
    x를 y로 나눈 나머지
    SELECT MOD(101, 10);
    1
     
    Share article
    Contents
    1. 단일행 함수2. 조건문

    parangdajavous

    RSS·Powered by Inblog