MySQL에서 테이블의 특정 열에 저장된 값을 다른 값으로 일괄 변경하고 싶다면 REPLACE() 함수를 사용하면 됩니다. 실제 데이터를 수정해야 하므로 SET 절과 함께 UPDATE 문을 조합하여 실행합니다.기본 문법열의 기존 값을 새 값으로 바꾸는 기본 문법은 다음과 같습니다.UPDATE yourTableNameSET yourColumnName = REPLACE(yourColumnName, yourOldValue, yourNewValue);REPLACE(열이름, 기존값, 새값) 형태로 작성하며, 해당 열에서 기존값이 포함된 모든
MySQL DATETIME에서 날짜만 추출하는 방법MySQL에서 DATETIME 타입의 값에서 시간 정보를 제외하고 날짜만 가져오려면 DATE_FORMAT() 함수와 날짜 형식 지정자를 사용하면 됩니다.1. 주요 날짜 형식 지정자%d : 일(day) %m : 월(month) %Y : 연도(year)2. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( AdmissionDate datetime ); Query OK, 0 rows affected (0.52 sec)3
날짜 데이터를 현재 날짜를 기준으로 정렬해야 하는 경우가 종종 있습니다. 예를 들어 마감일(DueDate) 목록에서 아직 지나지 않은 날짜를 먼저 보여주고, 이미 지난 날짜는 그 뒤에 표시하고 싶다면 ORDER BY 절과 CASE 문을 조합하면 간단하게 해결할 수 있습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 생성해 보겠습니다. mysql> create table DemoTable ( DueDate date ); Query OK, 0 rows affected (0.56
MySQL에서 여러 개의 특정 ID에 해당하는 레코드를 조회할 때, WHERE 절에서 반복문(루프)을 사용하는 대신 IN() 연산자를 활용하면 훨씬 간결하고 효율적으로 동일한 결과를 얻을 수 있습니다. 이 글에서는 실제 예제를 통해 IN() 연산자의 사용 방법을 단계별로 살펴보겠습니다.1. 샘플 테이블 생성하기먼저 클라이언트 정보를 저장할 테이블을 생성합니다.mysql> create table DemoTable ( ClientId int, ClientName varchar(100), ClientAge in
MySQL에서 CASE WHEN 문으로 레코드 존재 여부 확인하기MySQL에서는 CASE WHEN 문과 EXISTS 서브쿼리를 함께 사용하면 특정 레코드가 테이블에 존재하는지 손쉽게 확인할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, UserId가 102인 레코드의 존재 여부를 확인하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable( UserId int, &
MySQL에서 SUBSTR() 함수를 활용하면 문자열 열의 값에서 마지막 N자만 남기고 앞부분을 손쉽게 제거할 수 있습니다. 이 글에서는 실제 예제를 통해 열 레코드에서 마지막 7자를 제외한 모든 문자를 삭제하는 방법을 단계별로 살펴보겠습니다. 1. 테이블 생성 먼저 데모용 테이블을 생성합니다. mysql> create table DemoTable ( Strength text ); Query OK, 0 rows affected (0.51 sec) 2. 레코드 삽입 INSERT 명령을 사용하여 테이블에 샘
MySQL에서 DEFAULT NULL은 필수가 아닙니다결론부터 말하자면, DEFAULT NULL을 명시적으로 추가할 필요는 없습니다. MySQL에서는 별도의 기본값을 지정하지 않으면 컬럼이 자동으로 NULL 값을 허용하며, 값이 입력되지 않은 레코드에는 기본적으로 NULL이 저장되기 때문입니다.즉, DEFAULT NULL을 생략하고 값을 지정하지 않은 채 레코드를 삽입하더라도, 해당 컬럼에는 자동으로 NULL 값이 들어갑니다.예제: 테이블 생성하기먼저 테이블을 생성해 보겠습니다. 이때 DEFAULT NULL 구문은 사용하지 않습니다
데이터베이스를 운영하다 보면 이스케이프 처리된 백슬래시(\)가 문자열에 포함되어 있어 이를 일반 따옴표()로 정리해야 하는 경우가 자주 발생합니다. 이번 글에서는 MySQL의 REPLACE() 함수를 활용해 varchar 열에 저장된 백슬래시가 앞에 붙은 문자열 값을 손쉽게 치환하는 방법을 단계별로 알아보겠습니다.1. 테스트용 테이블 생성먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Title varchar(100) ); Query OK, 0 rows affected (
MySQL에서 GROUP_CONCAT() 함수를 사용하면 여러 행에 흩어져 있는 값을 하나의 문자열로 손쉽게 연결할 수 있습니다. 다만 테이블에 동일한 Id와 Name 조합이 중복되어 저장되어 있다면, 원하는 결과를 얻기 위해 먼저 DISTINCT로 중복을 제거한 후 그룹 연결을 수행해야 합니다.아래에서 전체 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable ( Id int, Name varcha
개요MySQL에 저장된 문자열 데이터 끝에 1stJohn (7)처럼 괄호로 묶인 숫자가 붙어 있는 경우, 이를 제거하고 이름만 깔끔하게 남기고 싶을 때가 있습니다. 이럴 때 trim() 함수와 substring() 함수를 함께 사용하면 간단하게 해결할 수 있습니다.예제 테이블 생성먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable( Name varchar(100));Query OK, 0 rows affected (0.80 sec)샘플 데이터 삽입insert 명령을
MySQL에 빈(NULL) 날짜 값 삽입하기데이터베이스 작업을 하다 보면 날짜 정보가 아직 확정되지 않았거나 존재하지 않는 경우가 있습니다. 이럴 때 임의의 기본 날짜를 넣는 대신 NULL 값을 그대로 저장하는 것이 올바른 설계입니다. 자바(JDBC)에서는 PreparedStatement의 setNull() 메서드를 사용하면 매우 깔끔하게 처리할 수 있습니다.아래에서 실제 동작하는 전체 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 web 데이터베이스에 날짜 컬럼을 가진 테이블을 생성합니다.mysql> create t
MySQL 명령줄(Command Line)을 활용하면 DATETIME 값을 아주 간단하게 삽입할 수 있습니다. 기본적인 INSERT 문법은 다음과 같습니다.INSERT INTO yourTableName VALUES(yourDateTimeValue);여기서 날짜·시간 값은 반드시 YYYY-MM-DD HH:MM:SS 형식의 문자열로 작성해야 하며, 작은따옴표()로 감싸주는 것이 좋습니다.1. 테이블 생성하기먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> CREATE TABLE DemoTable ( DateOfBi
MySQL에서 하나의 컬럼에 세미콜론(;)으로 구분된 여러 값이 저장되어 있을 때, 그중 특정 값이 포함된 레코드를 찾으려면 FIND_IN_SET() 함수와 REPLACE() 함수를 함께 사용하면 됩니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Value varchar(100) ); Query OK, 0 rows affected (2.49 sec)2. 샘플 데이
MySQL에서 테이블을 생성할 때 이미 같은 이름의 테이블이 존재하면 오류가 발생합니다. 이런 상황을 방지하려면 CREATE TABLE IF NOT EXISTS 구문을 사용하면 됩니다. 이 구문은 테이블이 존재하지 않는 경우에만 새 테이블을 생성하고, 이미 존재한다면 오류 없이 그대로 통과시킵니다.기본 문법테이블 존재 여부를 확인하면서 생성하는 기본 문법은 다음과 같습니다.CREATE TABLE IF NOT EXISTS yourTableName ( yourColumnName1 dataType, ... yourC
MySQL에서 CONCAT() 함수를 사용하면 여러 열의 값을 하나의 문자열로 합칠 수 있습니다. 이번 글에서는 테이블의 이름과 국가 코드를 연결한 뒤, HAVING 절을 활용해 원하는 레코드만 조회하는 방법을 단계별로 알아보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable( FirstName varchar(100), CountryName varchar(100));Query OK, 0 rows a
개요MySQL에서는 두 개의 테이블에 공통된 ID 값이 있을 때, 다중 테이블 UPDATE 문을 사용하여 한 테이블의 열 값을 다른 테이블로 손쉽게 복사할 수 있습니다. 이 글에서는 실제 예제를 통해 PersonId와 StudentId처럼 서로 다른 이름의 ID 열을 기준으로 값을 복사하는 방법을 단계별로 살펴봅니다.1단계: 첫 번째 테이블 생성먼저 원본 데이터가 담길 테이블을 생성합니다.mysql> create table DemoTable1 ( PersonId int, Value int ); Query OK,
VARCHAR로 저장된 날짜에 MySQL SELECT 수행하기MySQL에서 날짜 데이터가 VARCHAR 타입으로 저장되어 있는 경우, 일반적인 날짜 비교 연산을 바로 수행할 수 없습니다. 이럴 때 STR_TO_DATE() 함수를 사용하면 문자열 형태의 날짜를 실제 DATE 값으로 변환하여 조건 비교를 할 수 있습니다. 아래 예제를 통해 전체 과정을 살펴보겠습니다.1. 테이블 생성먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable ( DueDate varchar(100) ); Query
VARCHAR 열에서 최소값과 최대값 구하기MySQL에서 VARCHAR 타입으로 저장된 숫자 데이터의 최소값(MIN)과 최대값(MAX)을 구하려면 CAST() 함수를 사용해 값을 숫자형으로 변환한 뒤 집계해야 합니다. 문자열 그대로 MIN/MAX를 적용하면 사전식(문자열) 비교가 수행되어 의도와 다른 결과가 나올 수 있기 때문입니다.1단계: 테이블 생성먼저 테이블을 생성합니다.mysql> create table DemoTable ( Value varchar(100) ); Query OK, 0 rows affected (
개요MySQL에서는 IS NOT NULL 연산자를 사용하여 특정 열의 값이 NULL이 아닌 행만 조회할 수 있습니다. 이 글에서는 학생 정보 테이블에서 이름으로 행을 찾고, 해당 행의 StudentId가 NOT NULL일 때만 그 ID를 반환하는 쿼리를 작성하는 방법을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable( StudentId int, StudentN
MySQL에서 서로 다른 두 테이블(또는 두 열)에 있는 값들을 중복 없이 하나로 합쳐서 조회하려면 UNION 연산자를 사용하면 됩니다. UNION은 여러 SELECT 쿼리의 결과를 결합하면서 자동으로 중복 값을 제거해 주기 때문에, 두 열의 고유한(distinct) 값을 손쉽게 추출할 수 있습니다.이번 글에서는 예제를 통해 두 열에서 고유한 값을 선택하는 방법을 단계별로 살펴보겠습니다.1. 첫 번째 테이블 생성먼저 예제에 사용할 첫 번째 테이블을 생성합니다.mysql> create table DemoTable1 ( V