MySQL에서 기존 데이터를 그대로 유지한 채 새로운 데이터를 추가하고 싶다면 UPDATE 문과 CONCAT() 함수를 함께 사용하면 됩니다. 이 방법은 컬럼의 기존 값 뒤에 새 값을 연결(append)하여 저장하기 때문에, 이전 데이터가 삭제되지 않습니다.기본 문법update yourTableName set yourColumnName=concat(yourColumnName,,yourValue);위 문법에서 CONCAT() 함수는 기존 컬럼 값과 새로운 값을 하나의 문자열로 합쳐줍니다.예제 테이블 생성먼저 실습용 테이블을 만들어 보
MySQL에서는 ALTER 문 하나에 ADD와 CHANGE를 동시에 사용할 수 있습니다. 이를 통해 새로운 컬럼을 추가하면서 기존 컬럼의 이름이나 데이터 타입을 변경할 수 있습니다.1. 테스트용 테이블 생성먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable -> ( -> Name varchar(100), -> Age int -> ); Query OK, 0 rows affected (0.84 sec)2. 테이블 구조 확인DESC 명
네, MySQL에서 AUTO_INCREMENT로 설정된 컬럼은 기본적으로 부호 있는(signed) 타입입니다. 즉, 양수와 음수를 모두 저장할 수 있습니다.테이블 생성하기먼저 AUTO_INCREMENT 컬럼을 가진 테이블을 생성해 보겠습니다.mysql> create table DemoTable -> ( -> MyNumber int AUTO_INCREMENT PRIMARY KEY -> );Query OK, 0 rows affected (0.45 sec)레코드 삽입하기INSERT 명령으로 레코드를
MySQL에서 테이블의 마지막 레코드를 선택한 후 바로 업데이트해야 하는 경우가 종종 있습니다. 이럴 때는 ORDER BY DESC와 LIMIT 절을 함께 사용하면 간단하게 해결할 수 있습니다. 아래 예제를 통해 전체 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable-> (-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> Name varchar(100)-> );Query OK,
MySQL에서 특정 값이 테이블 내에 3회 이상 나타나는 경우를 찾아 그 개수를 계산해야 할 때가 있습니다. 예를 들어 사용자 ID별 데이터가 저장된 테이블에서, 동일한 값이 3번 이상 반복되는 값이 몇 개인지 확인하고 싶다면 GROUP BY와 서브쿼리를 활용하면 간단하게 해결할 수 있습니다.1. 샘플 테이블 생성먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable-> (-> UserId int-> );Query OK, 0 rows affected (0.48 sec)2.
MySQL의 저장 프로시저(Stored Procedure) 안에서도 IF NOT IN 조건문을 자유롭게 사용할 수 있습니다. NOT IN은 특정 값이 지정한 값 목록에 포함되어 있지 않은지를 판별할 때 유용하며, 이를 IF 문과 결합하면 조건에 따라 서로 다른 로직을 실행할 수 있습니다.IF NOT IN 기본 문법먼저 MySQL에서 IF NOT IN의 기본적인 작성 형식부터 살펴보겠습니다.if(yourVariableName NOT IN (yourValue1, yourValue2, ... N)) then statement1 e
MySQL에서 SELECT CASE 문의 실행 결과를 사용자 정의 변수(@변수)에 저장하고 싶다면, 쿼리 마지막에 INTO @변수명 구문을 추가하면 됩니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 두 개의 정수 컬럼을 가진 테이블을 생성합니다. mysql> create table DemoTable -> ( -> Num1 int, -> Num2 int -> ); Query OK, 0 rows affected (0.65 se
MySQL에서 새로운 데이터베이스를 생성할 때 기본 문자 집합(character set)과 정렬 규칙(collation)을 함께 지정하면, 이후 해당 데이터베이스에 만들어지는 모든 테이블이 일관된 인코딩을 사용하게 됩니다. 한글이나 다국어 데이터를 다룰 때 특히 중요한 설정입니다.기본 문자 집합 설정 문법데이터베이스 생성 시 기본 문자 집합을 지정하는 기본 문법은 다음과 같습니다.CREATE DATABASE IF NOT EXISTS yourDatabaseNameDEFAULT CHARACTER SET utf8DEFAULT COLLAT
MySQL에서 select는 예약어(reserved word)이기 때문에 일반적인 방법으로는 이 단어를 테이블 이름으로 사용할 수 없습니다. 하지만 백틱(`)으로 단어를 감싸면 예약어와 동일한 이름의 테이블도 생성할 수 있습니다.1. 테이블 생성하기먼저 select라는 이름의 테이블을 생성해 보겠습니다. 테이블 이름을 백틱으로 감싸는 것이 핵심입니다.mysql> create table `select` -> ( -> Number int -> ); Query OK, 0 rows affected (0.79 sec)테
네, 가능합니다. MySQL에서는 LEAST() 함수를 사용하면 여러 컬럼(필드) 값 중 가장 작은 값을 손쉽게 조회할 수 있습니다.SELECT LEAST(yourColumnName1, yourColumnName2, ...N) FROM yourTableName;LEAST() 함수는 인자로 전달된 두 개 이상의 값을 비교하여 그중 최소값을 반환합니다. 숫자뿐만 아니라 날짜(DATE) 타입에도 적용할 수 있어 활용 범위가 넓습니다.1. 테이블 생성먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> CREATE TABLE D
문자열로 저장된 날짜 데이터를 MySQL의 날짜(DATETIME) 형식으로 올바르게 변환하려면 STR_TO_DATE() 함수를 사용하면 됩니다. 이 함수는 지정된 형식 문자열에 따라 텍스트를 해석하여 실제 날짜·시간 값으로 반환해 줍니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable-> (-> DueDatetime varchar(100)-> );Query OK, 0 rows affected (1.03 sec)다음은 insert 명령을 사용하여 테이블에 샘플
MySQL에서 동일한 데이터가 여러 번 저장되는 것을 막고 싶다면 UNIQUE INDEX(고유 인덱스)를 활용하면 됩니다. 고유 인덱스를 설정하면 지정한 컬럼 조합에 대해 중복된 값의 입력이 차단됩니다.1. UNIQUE INDEX 추가하기기본 문법은 다음과 같습니다.ALTER TABLE 테이블명 ADD UNIQUE INDEX(컬럼명1, 컬럼명2, ....N);2. 실습용 테이블 생성먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable -> ( -> Valu
MySQL의 최신 버전에서는 TYPE=HEAP 구문이 더 이상 사용되지 않습니다(deprecated). 따라서 기존 쿼리를 실행하면 오류가 발생할 수 있습니다.해결 방법: ENGINE=HEAP 사용이 문제를 해결하려면 TYPE 대신 ENGINE 키워드를 사용하면 됩니다. 문법은 다음과 같습니다.ENGINE=HEAP;예제: HEAP 엔진으로 임시 테이블 생성하기먼저 ENGINE=HEAP 옵션을 적용하여 임시 테이블을 생성해 보겠습니다.mysql> create TEMPORARY table DemoTable-> (-> S
개요MySQL에서 테이블을 이미 생성한 후에 AUTO_INCREMENT(자동 증가) 속성을 추가해야 하는 경우가 종종 있습니다. 이때는 ALTER 명령어를 사용하면 됩니다. 이 글에서는 기존 테이블에 자동 증가 컬럼을 추가하는 전체 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 예제로 사용할 간단한 테이블을 생성합니다. 아래 테이블에는 학생 이름만 저장하는 컬럼이 하나 있으며, 아직 기본 키나 자동 증가 컬럼은 없습니다.mysql> create table DemoTable-> (-> StudentName
MySQL에서 특정 문자열이 문자열 값 안에 몇 번 등장하는지 확인하려면 LENGTH() 함수와 REPLACE(), CONCAT() 함수를 함께 활용하면 됩니다. 이 기법은 원본 문자열과 치환 후 문자열의 길이 차이를 계산하여 발생 횟수를 구하는 방식입니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable -> ( -> Value text -> ); Query OK, 0 rows affected (0.74 sec)다음으로 insert 명령을 사용해 테이블에 레코
MySQL에서 문자열의 시작 부분에 있는 특정 문자를 검색하여 다른 문자로 교체해야 하는 경우가 종종 있습니다. 이럴 때는 INSERT() 함수를 활용하면 간단하게 처리할 수 있습니다.이번 글에서는 실제 예제를 통해 우편번호(ZipCode) 데이터의 앞 두 자리를 특정 접두사로 교체하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable-> (-> ZipCode varchar(200)-> );Query OK, 0 rows
MySQL에서 뷰(View)가 어떤 쿼리로 정의되어 있는지 확인하고 싶을 때가 있습니다. 예를 들어, 오랫동안 관리되지 않은 데이터베이스를 인수인계받았거나, 뷰의 동작 방식을 검증해야 할 때 뷰의 실제 정의를 확인하는 것은 매우 유용합니다. 이때 SHOW CREATE VIEW 명령어를 사용하면 됩니다.SHOW CREATE VIEW 기본 문법뷰의 정의를 확인하는 기본 문법은 다음과 같습니다.SHOW CREATE VIEW 뷰이름;이제 실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다
MySQL에서 동일한 ID가 여러 개 존재할 때, 그중 특정 한 행만 골라서 업데이트해야 하는 경우가 있습니다. 이럴 때는 UPDATE 문에 ORDER BY 절과 LIMIT 1을 함께 사용하면 원하는 행 하나만 정확하게 수정할 수 있습니다.기본 문법중복된 값 중 조건에 맞는 행 하나만 업데이트하는 기본 문법은 다음과 같습니다.update yourTableName set yourColumnName1=yourValue where yourColumnName2=yourValue order by yourColumnName2 DESC limi
MySQL에서 서로 다른 데이터베이스에 존재하는 두 테이블의 행 수(row count)를 하나의 쿼리로 확인해야 하는 경우가 있습니다. 이때는 집계 함수 COUNT(*)를 활용하면 간단하게 해결할 수 있습니다.아래 예제에서는 web과 test라는 두 개의 데이터베이스에 각각 테이블을 만들고, 단일 쿼리로 두 테이블의 행 수를 동시에 조회하는 방법을 살펴보겠습니다.1. 첫 번째 데이터베이스(web)에 테이블 생성먼저 web 데이터베이스에 DemoTable1이라는 테이블을 생성합니다.mysql> create table DemoTa
MySQL에서 UNION 연산자를 사용하면 두 개 이상의 테이블 조회 결과를 하나로 합칠 수 있습니다. 여기에 각 SELECT 절에 상수 값과 AS 별칭을 함께 지정하면, 기존 테이블에는 없는 새로운 열을 추가한 것과 같은 결과를 얻을 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 첫 번째 테이블 생성먼저 DemoTable1이라는 이름의 테이블을 생성합니다.mysql> create table DemoTable1 -> ( -> Id int NOT NULL AUT