MySQL에서 하나의 열이 여러 값을 동시에 만족하는 행을 선택하려면 GROUP BY 절과 HAVING 절을 IN() 연산자와 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 그 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1885 ( FirstName varchar(20), Subject varchar(50) ); Query OK, 0 rows affected (0.00 sec)2. 데이터 삽입하
MySQL에서 열이 기본 키인지 확인하는 방법특정 열이 기본 키(PRIMARY KEY)로 설정되어 있는지 확인하려면 information_schema.columns 뷰의 COLUMN_NAME과 COLUMN_KEY 값을 활용하면 됩니다. 기본 키로 지정된 열은 COLUMN_KEY 값이 PRI로 표시되므로, 이를 CASE 문과 함께 사용하면 각 열이 기본 키인지 아닌지를 한눈에 확인할 수 있습니다.기본 문법select column_name, case when column_key = PRI then yourMessag
MySQL에서 기존 데이터를 MD5 해시 값으로 일괄 업데이트하려면 내장 함수인 MD5()를 활용하면 됩니다. 이 함수는 입력된 문자열을 32자리 16진수 해시 값으로 변환해 주며, 비밀번호 저장 등에 널리 사용됩니다.1. 테이블 생성하기먼저 예제로 사용할 테이블을 만들어 보겠습니다.mysql> create table DemoTable1887 ( Password text, HashPassword text ); Query OK, 0 rows affected (0.00 sec)2. 샘플 데이터 삽입하기
MySQL에서 자동 증가(AUTO_INCREMENT) 열 초기화하기MySQL에서 자동 증가 열의 값을 처음부터 다시 시작하도록 초기화하려면 TRUNCATE TABLE 명령어를 사용하면 됩니다. 테이블을 TRUNCATE하면 모든 데이터가 삭제되고, 이후 새로운 레코드를 삽입할 때 자동 증가 값이 1부터 다시 시작됩니다.참고로 일반적인 DELETE FROM 문으로는 자동 증가 값이 초기화되지 않으므로, 반드시 TRUNCATE를 사용해야 합니다.1단계: 테이블 생성먼저 테스트용 테이블을 생성합니다.mysql> create table
MySQL에서 SET 명령으로 초기화(설정)된 모든 사용자 변수의 목록을 한눈에 확인하고 싶다면, performance_schema 데이터베이스의 user_variables_by_thread 테이블을 조회하면 됩니다. 이 테이블은 MySQL 5.7 버전부터 제공되며, 각 스레드(세션)별로 설정된 사용자 변수 정보를 담고 있습니다.기본 문법select * from performance_schema.user_variables_by_thread;사용자 변수 설정하기먼저 SET 명령을 사용해 사용자 변수를 생성해 보겠습니다.mysql>
사용자 정의 변수(User-Defined Variable)란?MySQL에서 한 필드의 값을 기반으로 다른 필드의 값을 도출하려면 사용자 정의 변수(user-defined variable) 개념을 활용할 수 있습니다. 사용자 정의 변수는 @ 기호로 선언되며, 쿼리가 행을 처리하는 과정에서 값을 누적하거나 참조할 수 있어 누적 합계(cumulative sum)를 계산할 때 특히 유용합니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1868 ( Value int
MySQL에서 하나의 열에 저장된 여러 값을 서로 다른 조건에 따라 구분한 뒤, 이를 하나의 문자열로 연결해야 하는 경우가 있습니다. 이럴 때 CASE 문과 MAX(), CONCAT() 함수를 함께 활용하면 손쉽게 해결할 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1869 ( Id int, Subject varchar(20), &
중복된 값이 존재하는 다른 열을 기준으로 그룹화한 뒤, 타임스탬프(timestamp) 값 중 가장 빠른(첫 번째) 날짜를 구하려면 MySQL의 집계 함수 MIN()과 GROUP BY 절을 함께 사용하면 됩니다. MIN() 함수는 그룹별로 가장 작은 값을 반환하기 때문에, 유닉스 타임스탬프 형태로 저장된 날짜 데이터에서도 가장 이른 시점을 손쉽게 추출할 수 있습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. 여기서는 Value와 ShippingTimestamp 두 개의 컬럼을 가진 테이블을 만들어 보겠습니다.mysq
MySQL에서 DATETIME 타입 컬럼에 특정 일수를 더하려면 DATE_ADD() 함수를 사용하면 됩니다. 이번 글에서는 예제 테이블을 만들고, DATETIME 값에 날짜를 추가하는 전체 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 DATETIME 타입의 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable1871 ( ArrivalDate datetime ); Query OK, 0 rows affected (0.00 sec)2. 샘플 데이터 삽입하기INSERT
MySQL에서 LIKE 조건으로 특정 문자열이 포함된 행을 조회하면서, 동시에 일치한 문자열 자체를 값으로 가지는 새로운 컬럼을 만들고 싶다면 SUBSTRING() 함수를 활용하면 됩니다. 아래에서 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제용 테이블을 생성합니다.mysql> create table DemoTable1872 ( Name varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. 데이터 삽입INSERT 명령으로 몇 개의 레코드를 추가합니다.mysql
MySQL 테이블에서 단일 열(컬럼)의 값을 업데이트하려면 UPDATE 문과 SET 절을 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.UPDATE yourTableName SET yourColumnName = yourValue;예제 테이블 생성하기먼저 실습에 사용할 테이블을 만들어 보겠습니다.mysql> create table DemoTable1873 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, &
MySQL에서 특정 조건에 따라 열 값 앞에 유로(€) 또는 달러($) 기호를 추가하려면 CASE 문과 UPDATE 명령어를 함께 사용하면 됩니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable1874 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Amount varchar(100) );Query OK, 0 rows affected (0.00 sec)2. 레코드 삽입INSERT
데이터베이스를 다루다 보면 동일한 값이 중복되어 저장된 열에서, 각 중복 그룹별로 최소값을 가진 행을 조회해야 하는 경우가 자주 발생합니다. 이번 글에서는 MySQL의 GROUP BY 절과 MIN() 집계 함수를 활용하여 중복된 Class 값별로 가장 작은 Amount 값을 선택하는 방법을 단계별로 알아보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다. Id는 자동 증가되는 기본 키로 설정하고, Class와 Amount 열을 포함시킵니다.mysql> create table DemoTable1875 &
MySQL에서 JSON 데이터 타입 활용하기MySQL에서는 JSON 데이터 타입을 사용하여 테이블 컬럼을 정의한 후, JSON 형식의 데이터를 손쉽게 저장할 수 있습니다. 이 글에서는 JSON 데이터를 MySQL 테이블에 생성하고 삽입하고 조회하는 전체 과정을 단계별로 살펴보겠습니다.1단계: JSON 타입 컬럼을 가진 테이블 생성먼저 JSON 데이터 타입의 컬럼을 포함하는 테이블을 생성합니다.mysql> create table DemoTable1876 ( EmployeeInformation JSON );
MySQL에서 특정 열에 중복된 값이 있는지 확인하고 싶다면 GROUP BY 절과 HAVING 절을 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 중복 데이터를 찾는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. 여기서는 자동차 모델명을 저장하는 간단한 테이블을 만들어 보겠습니다.mysql> create table DemoTable1858 ( ModelNumber varchar(50) &nb
MySQL 프로시저에서 테이블 이름 변경하기네, 가능합니다. ALTER 명령어와 RENAME을 함께 사용하면 저장 프로시저 안에서도 간단하게 테이블 이름을 변경할 수 있습니다. 먼저 예제용 테이블을 생성해 보겠습니다.mysql> create table DemoTable1859 ( Id int ); Query OK, 0 rows affected (0.00 sec)insert 명령어를 사용해 테이블에 레
MySQL 프로시저에서 OUT 매개변수 사용하기MySQL 저장 프로시저(Stored Procedure)에서 테이블의 데이터를 조회한 결과를 외부 변수로 전달하려면 SELECT ... INTO 구문을 사용하면 됩니다. 이 방식을 활용하면 쿼리 결과를 OUT 매개변수에 직접 저장할 수 있습니다.아래 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1860 (
MySQL에서 여러 열의 값이 완전히 일치하는 행 조회하기MySQL에서 하나 이상의 열을 기준으로 값이 정확히 일치하는(중복되는) 행을 찾으려면 GROUP BY와 HAVING 절을 서브쿼리와 함께 사용하면 됩니다. 이 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1861 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
MySQL에서 여러 열 중 NULL 값이 포함된 레코드 찾기여러 개의 열(column)로 구성된 집합에서 하나라도 NULL 값이 들어 있는 레코드를 찾아야 할 때가 있습니다. 이럴 때 GREATEST() 함수를 활용하면 아주 간단하게 해결할 수 있습니다.GREATEST() 함수는 전달된 인수 중 가장 큰 값을 반환하지만, 인수 중 하나라도 NULL이면 결과 역시 NULL을 반환한다는 특징이 있습니다. 바로 이 성질을 이용해 NULL이 포함된 행을 손쉽게 걸러낼 수 있습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 만들어 보
MySQL에서 빈 값(NULL)이 있는 행에 기본값을 지정하려면 COALESCE() 함수를 활용하면 됩니다. COALESCE()는 인수로 전달된 값 중 첫 번째로 NULL이 아닌 값을 반환하는 함수로, 이를 이용하면 NULL 데이터를 원하는 기본값으로 대체하여 조회할 수 있습니다.1. 테이블 생성먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable1863 ( FirstName varchar(20) ); Query OK, 0 rows affected (0.00 sec)