반응형

DB 29

[MySQL] 쿼리문 통계(일간/주간/월간/기간별), DATE_FORMAT()

MySQL 쿼리문(일간/주간/월간/기간별) // 일간통계 SELECT DATE(`날짜컬럼`) AS `date`, sum(`value`) FROM test_st GROUP BY `date`; // 주간통계 SELECT DATE_FORMAT(DATE_SUB(`날짜컬럼`, INTERVAL (DAYOFWEEK(`날짜컬럼`)-1) DAY), '%Y/%m/%d') as start, DATE_FORMAT(DATE_SUB(`날짜컬럼`, INTERVAL (DAYOFWEEK(`날짜컬럼`)-7) DAY), '%Y/%m/%d') as end, DATE_FORMAT(`날짜컬럼`, '%Y%U') AS `date`, sum(`value`) FROM test_st GROUP BY date; // 월간통계 SELECT MONTH(`날..

DB/MySQL 2022.11.11

[Mysql] 소수점 존재하는 데이터 확인하기

-- 반올림한 소수점 데이터와 버림처리한 정수 데이터를 빼서 0이랑 다른 경우만 조회 SELECT * FROM [테이블명] WHERE ROUND(컬럼명, 10 ) - FLOOR(ROUND(컬럼명, 10)) 0 ; ROUND : 숫자 반올림하기 -- 소수점 둘째자리에서 반올림 ROUND(컬럼명, 10) ROUND는 지정한 자리에서 반올림하는 함수입니다. 반올림할 자리 값은 생략할 수 있으며 기본값은 0입니다. 0이 소수점 첫째 자리이므로 1은 소수점 둘째 자리에서 반올림, -1은 정수 첫째 자리에서 반올림하겠다는 의미입니다. * 자릿수는 소수점을 기준으로 양수이면 소수점 자릿수, 음수이면 정수 * 반올림여부는 옵션으로 음수이면 버림처리, 0이나 없으면 반올림 FLOOR: 숫자 버림처리하기 FLOOR(컬럼명..

DB/MySQL 2022.10.04

[DB설계] 여행 일정표

거리두기 해제와 다시 해외여행이 가속화 되는 시점에 맞춰 여행 일정표 DB설계를 도전해봤다. 1. 요구 사항 분석 요구사항을 분석하는 단계에서는 데이터베이스의 사용 용도를 파악한다. 데이터베이스를 실제로 사용하는 사용자에게 필요한 데이터의 종류와 처리 방법같은 다양한 요구 사항을 수집하고 분석하여 요구 사항 명세서로 작성하는 것이 주요 작업이다. 요구 사항 분석 단계에서 사용자의 요구 사항은 이후의 설계 단계에서 중요하게 사용되며 데이터베이스의 품질의 중요한 기준이 된다. 👨‍👨‍👧‍👦 회원 (Users) 한명의 회원은 카카오톡 싱크를 통해 회원가입을 할 수 있다. 한명의 회원은 여러개의 일정표를 만들 수 있다. 한명의 회원은 제작한 일정표를 공유할 수 있다. 📄 일정표 (Schedules) 한개의 일정..

DB/DB설계 2022.05.13

[Mysql] 문자열 합치기(CONCAT, GROUP_CONCAT)

CONCAT 둘 이상의 문자열 값을 엔드투엔드 방식으로 연결하거나 조인한 결과 문자열을 반환합니다. 인수는 2개 이상 254개 이하로 사용 가능하다. CONCAT(값1, 값2, 값3, ... 값N) SELECT CONCAT('concat함수: ', '문자', '문자') AS test1, CONCAT('concat함수: ', '문자', 1) AS test2, CONCAT('concat함수: ', NULL) AS test3, CONCAT(NULL, NULL) AS test4 ; 같은 데이터 타입이나 다른 데이터 타입을 연결 시에는 가능하다. 하지만 CONCAT에서 NULL값은 빈 문자열로 암시적으로 변환하고, CONCAT에서 모두 NULL값을 인수로 넣으면 VARCHAR(1) 형식의 빈 문자열을 반환한다. ..

DB/MySQL 2022.04.22

[MySQL] UNION을 사용해서 SUM 구하기

UNION이란 무엇인가? UNION은 두 개 이상의 쿼리를 합쳐 하나의 쿼리로 만들어 주는 역할을 한다. 이 때 각 컬럼명은 같아야하며 데이터타입 역시 동일해야한다. 만일 컬럼명이 다른 경우엔 AS 를 사용해 컬럼명을 통일시켜주어야 한다. UNION VS UNION ALL 우선 기본적으로 UNION은 UNIONDistinct를 줄여서 쓰는 개념이다. 즉, 중복을 허락하지 않는다. 예를 들어 EX_TABLE1 에서 select 한 값이 'test1', 'test2' 이고 EX_TABLE2에서 select 한 값이 'test1', 'test3'이라고 가정해보자. 이때 UNION을 써서 두 sql을 합쳐주면 결과는 'test1', 'test2', 'test3'으로 중복을 제거한 결과값을 돌려준다. 하지만 Un..

DB/MySQL 2022.04.18

[MySQL] UNION, UNION ALL

MySQL 등의 RDBMS에서 사용하는 Union 연산자는 여러 테이블에 존재는 같은 성격의 값을 한 번의 쿼리로 추출할 수 있도록 돕는다. 예를 들어 Member 테이블에 회원 이메일이 있고, Newsletter 테이블에 구독자 이메일이 있는데, 모든 이메일로 메일을 보내고자 할 경우 두 번의 쿼리와 병합 프로그램을 만들어야 할 것이다. 이럴 때 union 연산자를 사용하면 한 번의 쿼리로 간단하게 정보를 추출할 수 있다. 예제 테이블 정보 * Member seq u_name u_email etc 1 홍길동 aa@aa.co.kr ... 2 이순신 bb@bb.co.kr ... 3 세종대왕 cc@cc.co.kr ... * Newsletter letter_ seq letter_name letter_email..

DB/MySQL 2022.04.06

[DB설계] 스튜디오메이트

운동예약 시스템인 스튜디오메이트 DB 설계를 도전해봤다. 1. 요구 사항 분석 요구사항을 분석하는 단계에서는 데이터베이스의 사용 용도를 파악한다. 데이터베이스를 실제로 사용하는 사용자에게 필요한 데이터의 종류와 처리 방법같은 다양한 요구 사항을 수집하고 분석하여 요구 사항 명세서로 작성하는 것이 주요 작업이다. 요구 사항 분석 단계에서 사용자의 요구 사항은 이후의 설계 단계에서 중요하게 사용되며 데이터베이스의 품질의 중요한 기준이 된다. 👨‍👨‍👧‍👦 회원가입 회원은 회원가입을 할 수 있다. 회원은 필수 약관에 동의를 해야한다. 가입한 회원은 승인을 받아야 사용이 가능하다. 👩 회원 회원은 본인의 정보를 수정할 수 있다. 회원은 본인이 가진 시설을 수정할 수 있다. 회원은 강사를 등록할 수 있다. 회원은..

DB/DB설계 2022.04.01

[DB설계] 에어비앤비

전 세계적으로 유명한 숙박 공유 플랫폼 서비스인 에어비앤비 설계를 도전해봤다. 1. 요구 사항 분석 요구사항을 분석하는 단계에서는 데이터베이스의 사용 용도를 파악한다. 데이터베이스를 실제로 사용하는 사용자에게 필요한 데이터의 종류와 처리 방법 같은 다양한 요구 사항을 수집하고 분석하여 요구 사항 명세서로 작성하는 것이 주요 작업이다. 요구 사항 분석 단계에서 사용자의 요구 사항은 이후의 설계 단계에서 중요하게 사용되며 데이터베이스의 품질의 중요한 기준이 된다. 👨‍👨‍👧‍👦 회원가입 한명의 회원은 회원가입을 할 수 있다. 한 명의 회원은 회원 유형으로 가입할 수 있다. (구매자, 판매자) 판매자로 가입한 회원은 승인을 받아야 사용이 가능하다. 👨 구매자 회원 구매자 회원은 상품을 볼 수 있다. 구매자 회..

DB/DB설계 2022.04.01

[DB설계] 인스타그램

전세계적으로 유명한 SNS 서비스인 인스타그램 설계를 도전해봤다.(단순 사진게시판) 1. 요구 사항 분석 요구사항을 분석하는 단계에서는 데이터베이스의 사용 용도를 파악한다. 데이터베이스를 실제로 사용하는 사용자에게 필요한 데이터의 종류와 처리 방법같은 다양한 요구 사항을 수집하고 분석하여 요구 사항 명세서로 작성하는 것이 주요 작업이다. 요구 사항 분석 단계에서 사용자의 요구 사항은 이후의 설계 단계에서 중요하게 사용되며 데이터베이스의 품질의 중요한 기준이 된다. 👨‍👨‍👧‍👦 회원 (Members) 한명의 회원은 여러개의 게시글을 작성할 수 있다. 한명의 회원은 본인이 작성한 게시글을 수정할 수 있다. 한명의 회원은 본인이 작성한 게시글을 삭제할 수 있다. 한명의 회원은 다른회원을 팔로우할 수 있다. ..

DB/DB설계 2022.04.01

[MySQL] SQL ROUND, FLOOR, CEIL 함수

ROUND 란? ROUND 는 정해진 자릿수에 따라 반올림을 하는 역활을 하는 함수입니다. 구하려는 소수점 자리수의 한 자리 아래의 숫자를 반올림 혹은 버림한다. 반올림 여부의 값을 0 또는 생략할 경우 반올림, 음수값일 경우 버림 먼저 반올림의 의미를 알아보자. 반올림이란 구하려는 자리의 한 자리 아래 숫자가 0, 1, 2, 3, 4 일 경우 버리고 5, 6, 7, 8, 9 일 경우 올리는 방법을 뜻한다. ROUND 사용법 ROUND(숫자(컬럼), (반올림 기준)) 숫자(컬럼) : 반올림할 대상 숫자 반올림 기준 : 소수점 자릿 수 지정(필수 아님) 지정하지 않을 경우 소수점 첫번째 자리를 사용한다. SELECT ROUND(10.349) -- 10 SELECT ROUND(10.349, 1) -- 10...

DB/MySQL 2022.04.01
반응형