NULL 값에 특정 사용자 정의 값을 설정하려면 저장 프로시저 안에서 UPDATE 명령과 IS NULL 속성을 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int, FirstName varchar(50) ); Query OK, 0 rows affected (0.67 sec)2단계: 데이터 삽입insert 명령을 사용하여 테이블에 레코드를 추가합니다. 이때 의도적
MySQL에서 두 날짜 사이에 속한 데이터를 조회하려면 >=(크거나 같음)와 <=(작거나 같음) 비교 연산자를 함께 사용하거나, 더 간결하게 BETWEEN 절을 활용할 수 있습니다. 이번 글에서는 실제 예제를 통해 날짜 범위 비교 쿼리를 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 날짜 데이터를 저장할 테이블을 생성합니다.mysql> create table DemoTable ( AdmissionDate date ); Query OK, 0 rows affected (0.73 sec)2. 샘플 데이터 삽입하기
MySQL에서 특정 범위 사이의 값을 조회할 때 일반적으로 BETWEEN 절을 사용하지만, 이를 사용하지 않고 AND 연산자와 비교 연산자(<=)를 조합하면 동일한 결과를 얻을 수 있습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Number int ); Query OK, 0 rows affected (0.62 sec)2. 데이터 삽입하기INSERT 명령을 사용하여 테이블에 여러 개의 레코드를 추가합니다.mysql> insert in
MySQL에서 LIMIT 절을 활용하면 처음 일부 행을 우선적으로 가져오고, 이어서 나머지 행 레코드도 하나의 쿼리로 함께 조회할 수 있습니다. 이번 글에서는 예제 테이블을 만들고 실제 쿼리 동작 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 테스트에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int ); Query OK, 0 rows affected (0.71 sec)2. 샘플 데이터 삽입INSERT 명령을 사용해 테이블에 레코드를 추가합니다.mysql>
MySQL에서 데이터를 다루다 보면 테이블에 저장된 빈 문자열()을 NULL 값으로 변경해야 하는 경우가 자주 발생합니다. 이럴 때는 LENGTH() 함수를 활용하면 간단하게 해결할 수 있습니다. 핵심 원리: LENGTH() 함수 활용하기 LENGTH() 함수는 문자열의 길이를 반환합니다. 따라서 길이가 0이라는 것은 해당 문자열이 비어 있다는 의미입니다. 이 조건으로 빈 문자열을 찾은 뒤, UPDATE 문의 SET 절을 사용하여 NULL로 변경하면 됩니다. 전체 과정을 예제와 함께 단계별로 살펴보겠습니다. 1단계: 테이블 생성하기
MySQL에서 테이블의 특정 ID에 해당하는 행만 화면에 출력하지 않고 싶다면, NOT EQUAL(같지 않음) 연산자인 <>를 사용하면 됩니다. != 연산자도 동일한 기능을 수행하므로 상황에 맞게 선택하여 사용할 수 있습니다.1. 예제 테이블 생성먼저 실습용 테이블을 생성해 보겠습니다.mysql> create table DemoTable7 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(40) ); Query OK, 0
LIKE 연산자와 CONCAT() 함수로 문자열 내 단어 포함 여부 확인하기MySQL에서 문자열 안에 특정 단어가 포함되어 있는지 확인하려면 LIKE 연산자와 CONCAT() 함수를 함께 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable( Value text);Query OK, 0 rows affected (0.63 sec)2. 샘플 데이터 삽입하기INSERT 명령을 사용
MySQL에서는 산술 연산자 *를 사용해 두 개의 열 값을 곱함으로써 각 행의 총 금액(Total Amount)을 손쉽게 계산할 수 있습니다. 이번 글에서는 단가(Cost)와 수량(Quantity) 열을 활용해 총 금액을 구하는 과정을 예제와 함께 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 Cost와 Quantity 두 개의 정수형(INT) 열을 가진 테이블을 생성합니다.mysql> create table DemoTable ( Cost int, Quantity int ); Query OK, 0 rows af
MySQL에서 SELECT DISTINCT 쿼리의 실행 속도를 높이는 가장 효과적인 방법 중 하나는 대상 컬럼 또는 컬럼 집합에 인덱스(index)를 생성하는 것입니다. 인덱스가 있으면 MySQL이 전체 테이블을 스캔하지 않고도 고유한 값을 빠르게 식별할 수 있어 쿼리 성능이 크게 향상됩니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Name varchar(40) ); Query OK, 0 rows affected (1.13 sec)2. 인덱스
MySQL에서 처음 N개의 결과 건너뛰기MySQL에서 SELECT 쿼리 결과 중 처음 N개의 레코드를 건너뛰고 싶다면 OFFSET을 사용하면 됩니다. LIMIT 절과 함께 OFFSET을 지정하면 앞부분의 행을 원하는 만큼 제외하고 그 이후의 결과만 조회할 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable( Name varchar(40));Query OK, 0 rows affected (0.63 sec)insert 명령을 사용하여 테이블에 몇 개
MySQL 쿼리에서 예약 키워드 다루기: 작은따옴표 대신 백틱(`)을 사용하세요MySQL에서 쿼리에 여러 개의 예약 키워드(reserved keyword)가 포함되어 있을 때는 작은따옴표()가 아닌 백틱(backtick, `) 기호를 사용해야 합니다. 작은따옴표는 문자열 값을 감쌀 때 사용하는 반면, 백틱은 테이블명이나 컬럼명 같은 식별자를 감싸는 용도로 사용됩니다.먼저 테이블을 생성해 보겠습니다. 이 예제에서는 두 개의 MySQL 예약 키워드인 key와 Limit를 컬럼명으로 그대로 사용했습니다.mysql> create ta
개요서로 다른 두 개의 테이블에 있는 각각의 열 값을 하나의 결과로 합쳐서 정렬된 형태로 출력하고 싶다면, UNION 연산자와 ORDER BY 절을 함께 사용하면 됩니다. UNION은 여러 SELECT 문의 결과를 하나로 결합하며, 마지막에 ORDER BY를 붙이면 전체 결과를 원하는 기준으로 정렬할 수 있습니다.아래에서 예제 테이블을 만들고 실제 동작 과정을 단계별로 살펴보겠습니다.1. 첫 번째 테이블 생성먼저 Amount라는 열을 가진 DemoTable1 테이블을 생성합니다.mysql> create table DemoTab
MySQL에서 avg() 함수로 평균을 구하면 소수점 이하 자릿수가 길게 표시되는 경우가 많습니다. 이럴 때 round() 함수를 함께 사용하면 평균값을 원하는 자릿수로 반올림하여 깔끔한 정수 형태로 표시할 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 샘플 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Score int ); Query OK, 0 rows affected (0.68 sec)2. 데이터 삽입in
MySQL에서 INSERT INTO ... SELECT 문을 활용하면 한 테이블의 최대(MAX) ID 값을 구한 뒤, 그 값을 다른 테이블의 모든 행에 한 번에 삽입할 수 있습니다. 서브쿼리를 SELECT 절 안에 배치하면 원본 테이블의 각 행마다 동일한 최대 ID 값이 반복해서 들어가게 됩니다.1. 첫 번째 테이블 생성먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable1 ( Id int, Name varchar(100) ); Query OK, 0 rows affected
중복된 ID 값을 개수별로 확인하려면 MySQL의 집계 함수 COUNT()와 GROUP BY 절을 함께 사용하면 됩니다. 이 글에서는 예제 테이블을 만들고, 중복된 ID 값의 개수를 새로운 열에 표시하는 쿼리를 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int, Name varchar(100) ); Query OK, 0 rows affected (1.30 sec)2. 샘플 데이터 삽입하기INSERT 명령을 사용하
단일 테이블에서 여러 개의 SELECT 쿼리를 반복해서 실행하면 데이터베이스에 불필요한 부담을 주고 성능 저하로 이어질 수 있습니다. 이럴 때 IN() 연산자를 사용하면 쿼리를 한 번만 실행하면서 여러 값을 동시에 조회할 수 있어 성능을 크게 향상시킬 수 있습니다.예제 테이블 생성하기먼저 실습용 데모 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Id int, Name varchar(100), Age int ); Quer
MySQL에서 AUTO_INCREMENT 열 건너뛰기MySQL에서 테이블의 첫 번째 열이 AUTO_INCREMENT로 설정되어 있다면, 해당 열의 값을 생략하고 대신 NULL을 지정할 수 있습니다. 이 경우 MySQL이 자동으로 고유한 순번 값을 생성하여 채워 넣습니다.먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName varchar(100)
두 개의 테이블에 저장된 값 중 최댓값과 최솟값을 하나의 MySQL 쿼리로 조회하려면 MAX()와 MIN() 함수를 사용하면 됩니다. 두 테이블의 결과를 함께 다뤄야 하므로 UNION을 활용해 데이터를 합친 뒤 집계 함수를 적용하는 것이 핵심입니다.1. 첫 번째 테이블 생성먼저 예제에 사용할 첫 번째 테이블을 생성합니다.mysql> create table DemoTable1 ( UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY, Score1 int ); Query OK, 0
REPLACE INTO란 무엇인가?MySQL의 REPLACE INTO 구문은 기존 레코드를 삭제(DELETE)하고 새 레코드를 삽입(INSERT)하는 작업을 한 번에 수행할 수 있는 편리한 기능입니다. 동일한 고유 키를 가진 레코드가 이미 존재하면 해당 레코드를 삭제한 후 새 데이터로 대체하기 때문입니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Id int, FirstName varchar(50) ); Query OK, 0 rows affected (
특정 열에서 가장 높은 값 세 개를 선택한 뒤, 해당되는 이름(Name) 열을 알파벳순으로 정렬하려면 ORDER BY 절과 서브쿼리를 활용하면 됩니다. 먼저 예제용 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Name varchar(40), Score int ); Query OK, 0 rows affected (1.11 sec)INSERT 명령을 사용해 테이블에 샘플 데이터를 삽입합니다.mysql> insert into DemoTable values(Chris,45);