MySQL에서 날짜 형식을 변환하는 방법MySQL에서 문자열(VARCHAR)로 저장된 날짜 데이터를 표준 DATETIME 형식으로 변환하려면 STR_TO_DATE() 함수를 사용하면 됩니다. 이 함수는 지정한 형식 문자열에 따라 텍스트 형태의 날짜를 해석하여 실제 날짜·시간 값으로 반환합니다.1. 예제 테이블 생성하기먼저 날짜를 문자열로 저장하는 테이블을 생성합니다.mysql> create table DemoTable2010( DueDate varchar(20));Query OK, 0 rows a
시장에 수많은 데이터베이스가 넘쳐나는 요즘, 데이터베이스 전쟁이 본격화되고 있습니다. 업계를 선도하는 3대 관계형 데이터베이스인 Microsoft SQL Server, Oracle PL/SQL, MySQL의 차이점과 중요성을 이해하기에 적기입니다. 현재 관계형 데이터베이스 관리 시스템(RDBMS)은 산업 전반의 근간이 되었으며, 선택지가 워낙 많다 보니 어떤 것을 골라야 할지 판단하기 어려운 상황입니다. 관계형 데이터베이스 관리 시스템은 1980년대에 처음 소개되었습니다. 이 글에서는 업계에서 가장 널리 사용되는 세 가지 RDBMS
마젠토(Magento)는 MySQL과 Zend PHP 데이터베이스를 기반으로 하는 오픈소스 이커머스 플랫폼으로, 현재 가장 빠르게 성장하고 있는 솔루션 중 하나입니다. 강력한 마케팅 기능, 멀티 사이트 관리, 카탈로그 관리는 물론 Google Website Optimizer와 50개 이상의 결제 게이트웨이 연동까지 지원합니다. 사용자는 콘텐츠, 디자인, 기능을 자유롭게 제어할 수 있어 자신만의 개성 있는 온라인 스토어를 구축할 수 있습니다.마젠토는 미국 캘리포니아의 기업 Varien Inc.가 처음 개발했으며, 2018년에는 어도비
이 글에서는 Ubuntu 16.04 환경에서 오픈소스 검색 엔진인 Sphinx를 설치하고 설정하는 방법을 단계별로 살펴봅니다. Sphinx는 전문(full-text) 검색을 지원하는 강력한 검색 엔진으로, SQL 데이터베이스나 일반 텍스트 파일 등 다양한 소스에서 대용량 데이터를 매우 효율적으로 검색할 수 있도록 설계되었습니다.Sphinx의 주요 특징고급 인덱싱 기능과 우수한 쿼리 도구 제공뛰어난 검색 성능과 빠른 인덱싱 속도후처리(post-processing)를 위한 고급 결과 처리 기능고급 검색 기능과 함께 손쉬운 확장성 확보S
MySQL에서는 IF() 함수를 활용하면 ENUM 열거형 값을 그대로 출력하는 대신, 원하는 사용자 지정 메시지로 변환하여 조회할 수 있습니다. 예를 들어 Y/N과 같은 단순한 플래그 값을 활성 회원 또는 비활성 회원처럼 의미 있는 문구로 바꿔 표시할 수 있습니다.1. 샘플 테이블 생성먼저 ENUM 타입의 컬럼을 포함한 테이블을 생성합니다.mysql> create table DemoTable1992 ( ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientName v
MySQL에서 특정 날짜나 현재 날짜에 원하는 일수를 더하려면 DATE_ADD() 함수를 사용하면 됩니다. 이 함수는 INTERVAL 키워드와 함께 사용하여 날짜에 일, 월, 년 등을 손쉽게 더할 수 있습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1994 ( ArrivalDate date ); Query OK, 0 rows affected (5.33 sec)2. 데이터 삽입하기INSERT 명령어를 사용해 몇 개의 레코드를 삽입합니다
MySQL에서 DISTINCT 값 조회하기데이터베이스 작업을 하다 보면 datetime 컬럼에 시간까지 포함된 여러 레코드가 저장되어 있을 때, 날짜 기준으로 중복을 제거하고 고유한 값만 조회해야 하는 경우가 자주 있습니다. 이 글에서는 GROUP BY와 DATE() 함수를 활용해 특정 컬럼의 고유한 값을 출력하는 방법을 예제와 함께 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1996 ( ShippingDate datetime, C
MySQL에서 날짜를 UNIX 타임스탬프로 변환하려면 UNIX_TIMESTAMP() 함수를 사용하면 됩니다. 이 함수는 지정한 날짜 값을 1970년 1월 1일 00:00:00 UTC 이후 경과한 초 단위의 정수 값으로 반환합니다.1. 테이블 생성먼저 날짜 데이터를 저장할 테이블을 생성합니다.mysql> create table DemoTable1997 ( DueDate date ); Query OK, 0 rows affected (0.58 sec)2. 샘플 데이터 삽입INSERT 문을
MySQL 중복 행 제거 개요MySQL에서 데이터를 조회할 때 동일한 값이 여러 번 저장되어 있는 경우가 있습니다. 이럴 때 DISTINCT 키워드를 사용하면 중복된 행을 제거하고 각 값이 한 번씩만 반환되도록 할 수 있습니다.아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1998 ( Name varchar(20) ); Query OK, 0 rows affected (0.6
MySQL에서 날짜(timestamp) 데이터로부터 월 이름만 추출하고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 다양한 형식 지정자를 통해 날짜와 시간을 원하는 형태로 손쉽게 변환해 줍니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. 아래 예제에서는 timestamp 타입의 컬럼을 가진 테이블을 만들어 보겠습니다.mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK, 0 rows affected (0.66
MySQL에서 데이터를 삽입한 후 오른쪽 작은따옴표()가 올바르게 표시되지 않는 경우가 있습니다. 이 문제를 해결하려면 테이블의 문자셋 정렬 규칙(COLLATE)을 utf8_unicode_ci로 변경해야 합니다. 아래에서 전체 과정을 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable2000 ( Name varchar(20) ); Query OK, 0 rows affected (0.81 sec)2. COLLATE 변경다음 ALTER TABL
개요MySQL에서 SELECT ... INTO 구문을 활용하면 MAX() 함수의 결과값을 사용자 정의 변수에 저장할 수 있습니다. 이 방법을 사용하면 테이블에서 가장 늦은(최대) 시험 날짜를 손쉽게 변수에 담아 이후 쿼리에서 재활용할 수 있습니다.기본 문법사용자 정의 변수를 이용해 최대 시험 날짜를 가져오는 기본 문법은 다음과 같습니다.select date(max(yourColumnName)) into @yourVariableName from yourTableName;예제 테이블 생성위 문법을 실제로 이해하기 위해 먼저 예제 테이블
MySQL에서 날짜 데이터를 그룹화하여 레코드를 표시하려면 GROUP BY 절을 사용하면 됩니다. 이 글에서는 고객별 배송 날짜의 최소값과 최대값을 그룹으로 묶어 조회하는 실제 예제를 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 고객 이름과 배송 날짜를 저장할 테이블을 생성합니다.mysql> create table DemoTable2002 ( CustomerName varchar(20), CustomerShippingDate datetime ); Query OK, 0 rows affected (0.61 sec
데이터베이스 작업을 하다 보면 동일한 고객 ID가 여러 번 등록되어 있고, 각 ID에 해당하는 여러 금액 값 중에서 가장 큰 값(최대값)만 추출해야 하는 경우가 자주 발생합니다. MySQL에서는 MAX() 집계 함수와 GROUP BY 절을 함께 사용하면 이 문제를 아주 간단하게 해결할 수 있습니다.1. 예제 테이블 생성하기먼저 실습에 사용할 테이블을 만들어 보겠습니다. 고객 ID(CustomerId)와 금액(Amount) 두 개의 컬럼으로 구성된 테이블입니다.mysql> create table DemoTable2003 (
MySQL에서 현재 시점으로부터 임의의 X일 전에 해당하는 타임스탬프 값을 가진 행을 삽입하려면 CURRENT_TIMESTAMP와 INTERVAL을 조합하여 사용하면 됩니다.기본 문법아래와 같은 구문을 사용하면, 현재 시각에서 무작위로 계산된 일수만큼 이전의 날짜가 자동으로 입력됩니다.insert into yourTableName values(CURRENT_TIMESTAMP - INTERVAL ABS(RAND() * 100) DAY);여기서 RAND()는 0과 1 사이의 난수를 생성하고, 여기에 100을 곱한 뒤 ABS()로 절댓값
MySQL에서 저장된 날짜 값을 수정해야 하는 경우가 종종 있습니다. 예를 들어 배송 날짜에 특정 연도를 더하고 싶다면 UPDATE 문과 함께 DATE_ADD() 함수를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 날짜에 연도를 더하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 날짜 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. 샘플
MySQL에서 Jan 2017, May 2018처럼 축약된 월 이름과 연도로 구성된 문자열을 실제 날짜 값으로 변환하려면 STR_TO_DATE() 함수와 DATE_FORMAT() 함수를 함께 사용하면 됩니다.1. 예제 테이블 생성먼저 날짜 문자열을 저장할 테이블을 생성합니다.mysql> create table DemoTable1985 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. 샘플 데이터 삽입insert 명령을 사용하여 테이블에 레코드
MySQL IN 절과 ORDER BY FIELD()를 활용한 순서 지정 조회IN 절에 지정한 값들만 조회하고, 그 값을 원하는 순서대로 정렬하고 싶다면 IN() 조건과 ORDER BY 절의 FIELD() 함수를 함께 사용하면 됩니다. 먼저 예제 테이블을 생성해 보겠습니다.mysql> create table DemoTable1986 ( Number int ); Query OK, 0 rows affected (0.00 sec)insert 명령을 사용하여 테이블에 레코드를 삽입합니다.mysql> inser
MySQL에서 하나의 열에 대해 서로 다른 계산 결과인 여러 값을 한 번의 조회로 가져오고 싶다면 UNION ALL을 활용하면 됩니다. 이 글에서는 예제 테이블을 만들고, UNION ALL을 사용해 사용자 정의 열(NewValue)에 여러 값을 설정하는 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable1987 ( UserValue int ); Query OK, 0 rows affected (2.90 sec)
타임스탬프 값에서 월 번호만 추출하고 싶다면 MySQL의 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 날짜 형식 지정자를 활용해 원하는 부분만 손쉽게 가져올 수 있습니다.1. 테이블 생성하기먼저 TIMESTAMP 타입의 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable1999 ( ArrivalDate timestamp ); Query OK, 0 rows affected (0.66 sec)2. 샘플 데이터 삽입하기INSERT 명령을 사용해 몇 개의 레코드를