두 날짜 사이의 일수 계산하기MySQL에서 서로 다른 열에 저장되어 있는 두 날짜 값 사이의 일수를 구하려면 DATEDIFF() 함수를 사용하면 됩니다. 이 함수는 첫 번째 인자의 날짜에서 두 번째 인자의 날짜를 뺀 결과를 일(day) 단위로 반환합니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1471 -> ( -> EmployeeJoiningDate date, &nbs
데이터베이스를 운영하다 보면 날짜 정보가 문자열(CHAR) 타입 컬럼에 저장되어 있는 경우를 종종 접하게 됩니다. 이런 값들은 정렬이나 기간 비교 등의 작업에 제약이 따르기 때문에 DATETIME 형식으로 변환해 두는 것이 좋습니다. MySQL에서는 STR_TO_DATE() 함수를 활용하면 간단하게 처리할 수 있습니다. 지금부터 예제를 통해 단계별로 살펴보겠습니다. 1단계: 테이블 생성하기 먼저 테이블을 생성합니다. 아래 예제에서는 배송 날짜(ShippingDate)를 char 타입으로 선언했습니다. mysql> create
MySQL BETWEEN 연산자로 서로 다른 값 사이의 값 조회하기MySQL의 BETWEEN 연산자를 사용하면 두 값 사이에 있는 데이터를 간단하게 조회할 수 있습니다. 이번 글에서는 예제 테이블을 직접 만들어 보고, BETWEEN 조건을 활용해 원하는 범위의 값을 가져오는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable1473 -> ( -> EmployeeCode varchar(20) -> );Que
네, 가능합니다. MySQL에서는 FROM 절에 여러 테이블을 쉼표(,)로 구분하여 나열하는 것만으로 두 테이블을 한 번의 SELECT 쿼리로 조회할 수 있습니다. 다음은 기본 문법입니다.select * from yourTableName1,yourTableName2;예제로 살펴보기1. 첫 번째 테이블 생성먼저 DemoTable1이라는 이름의 테이블을 생성해 보겠습니다.mysql> create table DemoTable1 -> ( ->
MySQL에서 타임스탬프 값을 월로 변환하려면 FROM_UNIXTIME() 함수와 MONTH() 함수를 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.SELECT MONTH(FROM_UNIXTIME(yourColumnName)) FROM yourTableName;FROM_UNIXTIME()은 유닉스 타임스탬프를 날짜·시간 형식으로 변환하고, MONTH()는 그 결과에서 월에 해당하는 숫자(1~12)만 추출합니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> CREATE TABLE DemoT
MySQL에서 NULL 값 무시하고 나머지 값만 표시하기MySQL에서 데이터를 조회할 때 특정 컬럼에 NULL 값이 포함된 행을 제외하고, 실제 값이 존재하는 데이터만 가져오고 싶은 경우가 자주 있습니다. 이럴 때 사용하는 것이 바로 IS NOT NULL 조건입니다.이번 글에서는 예제 테이블을 만들고, NULL 값을 무시한 채 나머지 값만 표시하는 방법을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 학생 이름과 점수를 저장할 테이블을 생성합니다.mysql> create table DemoTable1458-> (-&g
MySQL에서 UNION ALL로 두 테이블에 레코드 한 번에 삽입하기MySQL에서는 INSERT INTO ... SELECT 문과 UNION ALL을 결합하면 하나의 쿼리만으로 여러 테이블에 레코드를 동시에 삽입할 수 있습니다. 이 방식은 SELECT 문으로 기존 테이블의 데이터를 조회한 뒤, 그 결과를 다른 테이블에 그대로 저장하는 원리로 동작합니다. 아래 예제를 통해 실제 사용 방법을 단계별로 살펴보겠습니다.1단계: 첫 번째 테이블 생성먼저 예제에 사용할 첫 번째 테이블을 생성하는 쿼리입니다.mysql> create ta
MySQL에서 ON DUPLICATE KEY UPDATE 구문이 정상적으로 동작하려면 해당 컬럼에 UNIQUE 제약 조건이 설정되어 있어야 합니다. 중복 키가 감지되면 새로운 행을 삽입하는 대신 기존 행의 값을 업데이트할 수 있기 때문입니다.제약 조건 추가 문법테이블에 UNIQUE 제약 조건을 추가하려면 다음과 같은 문법을 사용합니다.alter table yourTableName add constraint anyName unique(yourColumnName);예제 테이블 생성먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql
개요MySQL에서 IN() 조건과 함께 조회할 때 기본적으로 대소문자가 다르면 일치하지 않는 것으로 처리될 수 있습니다. 이럴 때 UPPER() 또는 LOWER() 함수를 활용하면 대소문자를 구분하지 않고 데이터를 조회할 수 있습니다.이 글에서는 예제 테이블을 만들고, IN()과 UPPER()를 조합해 대소문자와 관계없이 원하는 레코드를 검색하는 방법을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1460
MySQL에서 특정 열 값의 크기와 합계 구하기MySQL에서는 CHAR_LENGTH() 함수와 SUM() 함수를 함께 사용하면 특정 열 값의 글자 수(크기)를 구하고, 그 합계를 손쉽게 표시할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, 조건에 맞는 행들의 열 값 크기 합계를 구하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable1612 -> ( -> FirstName varchar(20), ->
MySQL에서 ENUM 타입으로 정의된 컬럼을 기본 정렬 방식이 아닌, 사용자가 지정한 특정 순서대로 정렬하고 싶을 때가 있습니다. 이럴 때 ORDER BY 절과 CASE 문을 함께 사용하면 원하는 우선순위에 따라 데이터를 정렬할 수 있습니다.예제 테이블 생성하기먼저 ENUM 타입의 컬럼을 포함하는 테이블을 생성해 보겠습니다. 여기서는 카드 덱을 나타내는 DeckOfCards 컬럼을 만들어 보겠습니다.mysql> create table DemoTable1461 -> ( -> DeckOfCards ENU
MySQL에서 NULL 값이 포함된 컬럼끼리 산술 연산을 수행하면 결과가 항상 NULL이 되어 버립니다. 이러한 문제를 해결하려면 IFNULL() 함수를 사용하여 NULL 값을 다른 값(예: 0)으로 대체한 뒤 계산하는 것이 효과적입니다.IFNULL() 함수란?IFNULL() 함수는 첫 번째 인자의 값이 NULL이 아니면 그 값을 그대로 반환하고, NULL이면 두 번째 인자로 지정한 대체 값을 반환합니다. 따라서 NULL이 포함된 데이터의 합계나 평균 등을 정확하게 구할 때 매우 유용합니다.예제 테이블 생성먼저 두 개의 int 타입
개요MySQL에서 여러 개의 행(row)과 열(column) 데이터를 하나의 행으로 연결해야 할 때가 있습니다. 이럴 때 GROUP_CONCAT() 함수와 CONCAT() 함수를 함께 사용하면 손쉽게 해결할 수 있습니다.이 글에서는 실제 예제 테이블을 만들고, 여러 행에 흩어져 있는 데이터를 콤마(,)로 구분된 단일 문자열로 합치는 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 테스트용 테이블을 생성합니다. 클라이언트 ID, 이름, 나이 세 개의 컬럼으로 구성된 테이블입니다.mysql> create table Dem
MySQL에서는 저장 프로시저(Stored Procedure)를 활용해 DELETE 쿼리를 실행할 수 있으며, 매개변수(Parameter)를 통해 값을 전달하는 방식으로 유연하게 삭제 작업을 처리할 수 있습니다. 이번 글에서는 실제 예제를 통해 저장 프로시저로 DELETE 쿼리를 구현하는 전체 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable1464 -> ( -> Id int, -> Firs
MySQL에서 현재 날짜(CURDATE())가 테이블에 저장된 시작일과 종료일 사이에 속하는지 확인해야 하는 경우가 자주 있습니다. 예를 들어 이벤트 기간, 구독 유효 기간, 프로모션 일정 등을 검증할 때 유용합니다. 이 글에서는 비교 연산자를 활용해 간단하게 날짜 범위 포함 여부를 판별하는 방법을 단계별로 살펴보겠습니다. 1. 예제 테이블 생성 먼저 시작일(StartDate)과 종료일(EndDate)을 저장할 테이블을 생성합니다. mysql> create table DemoTable1448 -> ( -&
MySQL에서 테이블에 저장된 여러 레코드 중 가장 큰 값을 가진 행을 조회해야 하는 경우가 자주 있습니다. 예를 들어 게임 플레이어들의 점수 중 최고 점수를 기록한 플레이어를 찾는 상황을 생각해 볼 수 있습니다.이 글에서는 MAX() 함수와 서브쿼리를 활용하여 최대값을 가진 레코드를 조회하는 방법을 단계별로 알아보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. 플레이어 ID와 점수를 저장하는 간단한 구조입니다.mysql> create table DemoTable1449 -> ( -&g
MySQL에서 특정 날짜와 일치하는 레코드를 조회할 때, 동일한 날짜가 여러 번 저장되어 있어도 결과를 한 번만 표시하고 싶은 경우가 있습니다. 이럴 때는 LIMIT 절을 활용하면 간단하게 해결할 수 있습니다.예제 시나리오현재 날짜가 다음과 같다고 가정해 보겠습니다.2019-10-021. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1450 -> ( -> DueDate date -> ); Query OK, 0 rows affect
MySQL에서 날짜(DATE) 유형의 열 값을 수정해야 하는 경우가 자주 있습니다. 예를 들어 입사일과 같은 날짜 데이터를 일괄적으로 1년씩 증가시키고 싶다면 DATE_ADD() 함수를 활용하면 간단하게 처리할 수 있습니다. 이번 글에서는 실제 예제를 통해 DATE 유형 열을 업데이트하는 전체 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 날짜 유형의 열을 포함하는 테이블을 생성합니다. mysql> create table DemoTable1451 -> ( -> JoiningDate dat
개요MySQL에서는 조건부 SUM() 함수를 활용하면 테이블에 저장된 여러 행의 데이터를 조건별로 개수를 세고, 그 결과를 하나의 행에 서로 다른 열로 나누어 표시할 수 있습니다. 이 글에서는 색상 데이터를 예제로 사용해 그 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1452 -> ( -> FavouriteColor varchar(50) -> );Query OK, 0 rows affected (2.
개요MySQL에서 특정 열에 중복된 값이 여러 번 저장되어 있을 때, GROUP BY 절과 COUNT(DISTINCT) 함수를 조합하면 각 ID별로 고유한 값이 몇 개인지 손쉽게 집계할 수 있습니다. 이 글에서는 예제 테이블을 만들고, 중복된 고객 ID(CustomerId)를 기준으로 고유한 리뷰 번호(CustomerReviewNumber)의 개수를 계산해 별도의 열에 표시하는 과정을 단계별로 살펴봅니다.1단계: 테이블 생성먼저 아래 쿼리로 예제 테이블을 생성합니다.mysql> create table DemoTable1453&