RDBS 39

[MYSQL]함수를 활용한 날짜 및 시간 연산

날짜 및 시간 연산 실제 데이터를 다루면서 특정 데이터의 날짜 및 시간에 대한 연산이 필요한 경우가 있습니다. 이러한 상황에서 MySQL이 제공해주는 시간 및 날짜 연산 함수를 사용하여 해결할 수 있습니다. 이번 포스팅에선 연산 함수에 대해 알아보고 직접 실습해보도록 하겠습니다. MySQL-시간 및 날짜 연산 함수 함수 기능 DATE_ADD() 일정 기간 만큼 더해줌 DATE_SUB() 일정 기간 만큼 빼줌 DATEDIFF() 두 시점의 사이의 일수 계산 TIMEDIFF() 두 시점의 사이의 시간 계산 PERIOD_DIFF() 두 시점의 사이의 월 계산 TIMESTAMPDIFF() 두 시점의 사이의 시간 계산 위와 같은 함수를 통해 시간 및 날짜에 대한 연산을 할 수 있습니다. 예제와 함께 자세하게 알아..

RDBS/MYSQL 2023.01.10

[MYSQL]NOW(), SYSDATE()의 차이

NOW(), SYSDATE()의 차이 MySQL에서 현재 시각의 데이터를 가져올 수 있는 몇 가지의 방법이 있다. 하지만 특정 기준 없이 무분별하게 사용되는 경우가 있어 차이를 알아보고자 한다. NOW() MySQL 서버의 시간을 가져오는 함수 - 쿼리문이 실행되는 시점의 시간 반환 SELECT NOW(); CURRENT_TIMESTAMP MySQL의 NOW()와 동일 - 표준SQL SELECT CURRENT_TIMESTAMP; SYSDATE() 호출되는 시점의 시간을 반환 SELECT SYSDATE(); 차이 SELECT NOW() , CURRENT_TIMESTAMP , SYSDATE(); NOW( ) CURRENT_TIMESTAMP SYSDATE( ) 2023-01-09- 16:00:00 2023-0..

RDBS/MYSQL 2023.01.09

[프로그래머스]입양 시각 구하기(2)-MySQL

2023.01.07 - [MYSQL/프로그래머스-MySQL] - [프로그래머스]입양 시각 구하기(1)-MySQL [프로그래머스]입양 시각 구하기(1)-MySQL 입양 시각 구하기(1) 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고 mooonstar.tistory.com 입양 시각 구하기(2) 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등..

RDBS/MYSQL 2023.01.09

[MYSQL]INSERT - 여러 건 삽입

INSERT - 단건 삽입 INSERT 기본 문법은 다음과 같다. -- Column 생략X INSERT INTO 테이블A (Column1, Column2, ..ColumnN) VALUES (Value1, Value2, ...ValueN) -- Column 생략O (컬럼과 값의 순서가 일치해야 함) INSERT INTO 테이블A VALUES (Value1, Value2, ...ValueN) 위와 같은 문법으로는 데이터 한 건만이 삽입할 수 있다. 하지만 SELECT 조회 결과를 삽입하는 등 다량의 데이터를 삽입해야 하는 경우 어떻게 삽입하는지 알아보도록 하자. INSERT - 여러 건 삽입 INSERT INTO 테이블A (Column1, Column2, ..ColumnN) VALUES (Value1, Va..

RDBS/MYSQL 2023.01.09

[프로그래머스]입양 시각 구하기(1)-MySQL

입양 시각 구하기(1) 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABL..

RDBS/MYSQL 2023.01.07

[MYSQL]USING과 ON의 차이

USING과 ON의 차이 USING과 ON은 두 테이블이 JOIN을 할 때 JOIN 조건 앞에 사용되는 구문이다. 하지만 두 개의 구문의 차이점이 있다. 예시를 보며 파악해보도록 하겠습니다. A 과목 수강 테이블 ID NAME 101 문OO 102 차OO 103 채OO B 과목 수강 테이블 ID NAME 101 문OO 102 차OO 두 개의 테이블에서 A 과목은 수강하였지만, B 과목을 수강하지 않은 인원을 조회해보도록 하겠습니다. 2023.01.05 - [MYSQL] - [MYSQL]MINUS(차집합) [MYSQL]MINUS(차집합) 💥MINUS(차집합) Oracle에서는 집합연산자 MINUS를 사용하여 두 집합 간의 차집합을 구할 수 있다. MySQL에는 MINUS와 같은 집합 연산자가 없기 때문에 ..

RDBS/MYSQL 2023.01.05

[MYSQL]윈도우함수(Window Function)

❓윈도우함수(Window Function) 윈도우함수(Window Function)란 행과 행 간의 관계를 정의하기 위해 제공되는 함수입니다. 여기에서의 관계를 정의한다는 것은 비교, 연산, 행 위치 조작을 말한다. ❓윈도우함수(Window Function)함수의 구조 SELECT WINDOW_FUNCTION(ARGUMENTS) OVER (PARTITION BY column ORDER BY WINDOWING 절) FROM 테이블명; -- ARGUMENTS : Window Function에 따라 N개의 인수 -- PARTION BY : 소그룹으로 분류 -- ORDER BY : 분류된 소그룹 정렬 -- WINDOWING : 행 기준 설정 ❓windowing절의 구조 문법 설명 ROWS 물리적인 행 RANGE..

RDBS/MYSQL 2023.01.03

[MYSQL]INDEX란?

⚡️INDEX란? 수많은 데이터가 존재하는 테이블에서 원하는 데이터를 쉽고 빠르게 찾기 위해 INDEX를 사용합니다. 즉, 특정 컬럼에 색인을 주어 검색 속도를 향상하기 위해 사용합니다. 이번 포스팅에서는 INDEX를 사용하는 이유 및 어떤 원리로 검색 속도가 향상되는지 알아보도록 하겠습니다. ⚡️인덱스(INDEX)를 사용해야 하는 이유 보통의 관계형 데이터베이스는 영속이라는 목표를 갖고 있다. 왜냐하면 데이터베이스의 저장되는 데이터는 기록이 되어야 하기 때문이다. 하지만 인덱스(INDEX)를 사용하지 않고도 기록이 되는 데 굳이 필요한가에 대한 의문도 같이 생기기 마련이다. 하지만 저장된 데이터 중 필요한 데이터만 조회를 할 때 좋은 서비스를 제공하기 위하여는 빠른 처리 속도가 필요하다. 즉 속도가 더..

RDBS/MYSQL 2023.01.02

[MYSQL]ROWNUM 이용한 데이터 번호 매기기

⚡️@ROWNUM 조회 할 데이터의 번호를 매겨야 하는 경우 @ROWNUM을 사용하여 행 번호를 매길 수 있다. ⚡️MEMBER 테이블 NAME AGE 박OO 23 문OO 26 김OO 22 ⚡️사용자 정의 변수 ROWNUM을 사용하기 앞서 사용자 정의 변수의 선언 및 초기화부터 알아보겠습니다. SET @변수명 = 대입값; OR SET @변수명 := 대입값; SELECT @변수명 := 대입값; --임의의 변수 생성 후 초기화 ⚡️조회 데이터 채번 이제 ROWNUM을 활용하여 위의 MEMBER 테이블의 데이터의 번호를 매겨보겠습니다. SET @ROWNUM=0; --변수 생성 및 초기화 SELECT @ROWNUM:=@ROWNUM+1 AS ROWNUM --1씩 증가 , A.NAME , A.AGE FROM MEM..

RDBS/MYSQL 2022.12.14