MySQL에서 서로 다른 WHERE 조건마다 각기 다른 LIMIT을 적용하고 싶다면 UNION ALL 연산자를 사용하면 됩니다. UNION ALL은 여러 SELECT 쿼리의 결과를 중복 제거 없이 그대로 합쳐 주는 연산자로, 각 SELECT 문마다 독립적인 WHERE 조건과 LIMIT을 지정할 수 있다는 장점이 있습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PR
개요기존 테이블의 열을 기준으로 GROUP BY를 적용한 결과를 새로운 테이블로 만들고 싶다면, MySQL의 CREATE TABLE AS SELECT 구문을 활용하면 됩니다. 이 구문은 SELECT 쿼리의 실행 결과를 그대로 새 테이블에 저장해 주기 때문에, 중복 제거나 데이터 정리 작업을 매우 간편하게 처리할 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1-> (-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,-&g
MySQL에서 날짜 데이터가 속한 달의 마지막 날을 구하려면 LAST_DAY() 함수를 사용하면 됩니다. 이 함수는 인자로 전달된 날짜가 포함된 해당 월의 마지막 날짜를 자동으로 계산해 반환해 주기 때문에, 윤년이나 월별 일수 차이를 직접 처리할 필요가 없습니다.기본 문법SELECT LAST_DAY(yourColumnName) FROM yourTableName;예제 테이블 생성먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( ShippingDate date )
개요MySQL에서 대량의 데이터 중 원하는 범위의 행만 골라 조회해야 하는 경우가 자주 있습니다. 이럴 때 ORDER BY, LIMIT, OFFSET 절을 조합하면 손쉽게 해결할 수 있습니다. 이번 글에서는 실제 예제를 통해 특정 범위의 행을 선택하는 방법을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
MySQL에서 특정 필드(컬럼)의 모든 값을 0으로 변경하고 싶다면 UPDATE 명령어를 사용하면 됩니다. WHERE 절 없이 UPDATE 문을 실행하면 테이블의 모든 행에 해당 컬럼 값이 일괄 적용됩니다.UPDATE yourTableName SET yourColumnName = 0;1. 테이블 생성먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Number int );Query OK, 0 rows affected (0.64 sec)2. 데이터 삽입INSE
MySQL에서는 사용자 변수(user variable)를 활용하면 한 테이블에 저장된 값을 읽어와 다른 테이블의 특정 필드에 더하는 업데이트 작업을 손쉽게 처리할 수 있습니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다. 1. 첫 번째 테이블 생성 먼저 데모용 테이블을 생성합니다. mysql> create table DemoTable1 ( value int ); Query OK,
MySQL에서 기본값을 현재 시간으로 설정하는 방법MySQL에서 새 열(컬럼)을 추가하면서 기본값을 현재 날짜와 시간으로 지정하고 싶다면 DEFAULT CURRENT_TIMESTAMP 절을 사용하면 됩니다. 이 절을 적용하면 별도로 값을 입력하지 않아도 레코드가 삽입되는 순간의 타임스탬프가 자동으로 저장됩니다.기본 문법CREATE TABLE yourTableName ( yourColumnName1 dataType1, yourColumnName timestamp DEFAULT CURRENT_TIMESTAMP );time
MySQL에서 테이블의 열(컬럼) 중 특정 문자열과 일치하거나 포함된 이름만 확인하고 싶다면 SHOW COLUMNS 명령어와 LIKE 절을 함께 사용하면 됩니다. 이 방법은 테이블 구조를 빠르게 파악할 때 매우 유용합니다.기본 문법SHOW COLUMNS FROM yourTableName LIKE yourStringValue;LIKE 절에 원하는 문자열을 지정하면 해당 문자열과 일치하는 열 정보만 결과로 반환됩니다. 와일드카드(%)를 함께 사용하면 부분 일치 검색도 가능합니다.예제 테이블 생성먼저 실습에 사용할 테이블을 만들어 보겠습
MySQL에서 여러 테이블에 흩어져 있는 값들 중 가장 큰 값(최댓값)을 찾아야 하는 경우가 있습니다. 이럴 때 GREATEST() 함수를 사용하면 아주 간단하게 해결할 수 있습니다.이 글에서는 네 개의 테이블을 각각 생성하고 데이터를 삽입한 뒤, 각 테이블의 최댓값을 비교하여 전체 최댓값을 구하는 과정을 단계별로 살펴보겠습니다.1. 첫 번째 테이블 생성 (DemoTable1)먼저 첫 번째 테이블을 생성하는 쿼리입니다.mysql> create table DemoTable1-> (-> Value int-> );Q
MySQL에서 동일한 값을 가진 대체 행(alternate row)의 문자열만 골라 일괄 수정해야 하는 경우가 종종 있습니다. 이럴 때 MOD 연산자(%)와 REPLACE() 함수를 함께 사용하면 짝수 번째 행처럼 특정 조건에 맞는 레코드만 선택적으로 업데이트할 수 있습니다. 지금부터 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 만들어 보겠습니다.mysql> create table DemoTable-> (-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,-&
MySQL에서 DATETIME 값의 초(second) 부분을 제거하려면 UPDATE 문과 SET 절을 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.UPDATE 테이블명SET 날짜컬럼명 = 날짜컬럼명 - SECOND(날짜컬럼명);DATETIME 컬럼 값에서 해당 값 자체의 초를 빼면 결과적으로 초가 항상 00이 되어 시와 분 정보만 남게 됩니다. 실제 동작 과정을 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> CREATE TABLE DemoTable ->
PHP의 stripos() 함수에 해당하는 MySQL 함수는 바로 INSTR()입니다. INSTR() 함수는 하나의 문자열 안에서 특정 문자열이 처음 나타나는 위치(인덱스)를 반환합니다.기본 문법은 다음과 같습니다.SELECT INSTR(yourColumnName, yourWord) AS anyAliasName FROM yourTableName;예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> CREATE TABLE DemoTable -> ( -> Title text
MySQL에서 GROUP BY 절은 특정 컬럼의 값이 동일한 행들을 하나의 그룹으로 묶어주는 강력한 기능입니다. 주로 SUM, COUNT, AVG 같은 집계 함수와 함께 사용되어 그룹별 통계를 손쉽게 구할 수 있습니다.이번 글에서는 예제 테이블을 직접 만들고, GROUP BY를 활용해 과목(Subject)별 가격(Price) 합계를 조회하는 전체 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. Id 컬럼은 자동 증가(AUTO_INCREMENT) 기본키로 설정했습니다.mysql> c
결론부터 말씀드리면, MySQL에서 테이블을 생성할 때 중괄호({})는 사용할 수 없습니다. 테이블의 컬럼 정의는 반드시 열림 괄호와 닫힘 괄호, 즉 소괄호 ( )로 감싸야 합니다. 아래 기본 문법을 참고하세요.테이블 생성 기본 문법CREATE TABLE IF NOT EXISTS yourTableName ( yourColumnName1 dataType1, yourColumnName2 dataType2, ... PRIMARY KEY(yourC
MySQL에서 1h 15 min과 같은 시간 형식의 문자열을 분 단위 숫자(예: 75)로 변환하려면 str_to_date() 함수를 활용할 수 있습니다. 이 글에서는 실제 예제를 통해 변환 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable ( stringDate varchar(100) ); Query OK
MySQL에서 Jan, Mar 같은 월 이름 문자열을 숫자로 변환하려면 str_to_date() 함수와 month() 함수를 함께 사용하면 됩니다.기본 문법select month(str_to_date(yourColumnName,%b)) from yourTableName;여기서 %b는 축약된 월 이름(Jan, Feb, Mar 등)을 나타내는 형식 지정자입니다.예제 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCR
MySQL에서 테이블의 모든 행에 있는 텍스트 값 앞에 특정 문자열(접두사)을 추가하고 싶다면 CONCAT() 함수를 사용하면 됩니다. CONCAT() 함수는 여러 문자열을 하나로 연결해 주는 함수로, UPDATE 문과 함께 사용하면 기존 데이터 앞에 원하는 접두사를 손쉽게 붙일 수 있습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Subject
MySQL 테이블에 저장된 백슬래시(\\) 값은 이스케이프 처리 때문에 일반적인 방식으로는 삭제하기 까다롭습니다. 하지만 DELETE 명령어에 적절한 이스케이프 문자를 조합하면 간단하게 해결할 수 있습니다.DELETE 명령어로 백슬래시 항목 삭제하기기본적인 문법은 다음과 같습니다. 작은따옴표 안에서 백슬래시를 네 개(\\\\) 사용해야 실제 두 개의 백슬래시와 매칭됩니다.delete from yourTableName where yourColumnName=\\\\;실습 예제먼저 테스트용 테이블을 생성합니다.mysql> creat
MySQL에서 실수(Float) 저장하기MySQL에서 실수(부동 소수점 숫자)를 정확하게 저장하려면 DECIMAL 자료형을 사용하는 것이 좋습니다. FLOAT나 DOUBLE은 이진 부동 소수점 방식으로 값을 저장하기 때문에 미세한 오차가 발생할 수 있지만, DECIMAL은 십진수 값을 그대로 저장하므로 금액처럼 정밀도가 중요한 데이터에 적합합니다.1. 테이블 생성먼저 DECIMAL 타입의 컬럼을 가진 테이블을 생성해 보겠습니다.mysql> create table DemoTable (
MySQL에서 현재 날짜에 원하는 특정 시간을 조합하여 DATETIME 컬럼에 삽입하려면 CONCAT() 함수를 활용할 수 있습니다. CONCAT()은 여러 문자열을 하나로 연결해 주는 함수로, CURDATE()가 반환하는 현재 날짜와 지정한 시각 문자열을 합쳐서 삽입하는 방식입니다.기본 문법INSERT INTO DemoTable VALUES(CONCAT(CURDATE(), 원하는시간));이 문법을 실제로 적용해 보겠습니다. 먼저 DATETIME 타입의 컬럼을 가진 테이블을 생성합니다.1. 테이블 생성하기mysql> CREAT