개요테이블에 여러 개의 값이 저장되어 있을 때, 전체가 아닌 특정 개수의 값만으로 평균을 계산해야 하는 경우가 있습니다. 예를 들어 5개의 값이 있는 열에서 처음 3개 값의 평균만 구하고 싶다면 서브쿼리(subquery)와 LIMIT 절을 함께 사용하면 됩니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Score int ); Query OK, 0 rows affected (0.62 sec)2. 데이터 삽입하기INSERT 명령어를 사용해 총 5개의
AUTO_INCREMENT와 PRIMARY KEY는 함께 사용하는 것이 원칙입니다결론부터 말씀드리면, 네, AUTO_INCREMENT 컬럼에는 PRIMARY KEY를 설정하는 것이 올바른 방법입니다. MySQL에서 AUTO_INCREMENT는 테이블에 새로운 행이 삽입될 때마다 자동으로 1씩 증가하는 고유한 숫자 값을 생성해 주는 기능입니다. 이 값은 각 레코드를 유일하게 식별하는 역할을 하기 때문에, 일반적으로 PRIMARY KEY로 지정하여 중복되지 않도록 관리하는 것이 권장됩니다.1. 테이블 생성하기먼저 AUTO_INCREME
MySQL에서 특정 기간, 예를 들어 90일 전부터 오늘까지의 날짜를 가진 행을 조회하려면 INTERVAL 키워드와 BETWEEN 연산자를 함께 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 날짜 컬럼 하나를 가진 간단한 테이블을 만들어 보겠습니다.mysql> create table DemoTable ( DueDate date ); Query OK, 0 rows affected (1.13 sec)2. 샘플 데이터 삽입하기INSERT 문을 사용해 다양한 날짜의 레코드를
MySQL에서는 FIND_IN_SET 함수를 활용하면 데이터베이스의 일부 데이터를 구조화하여 훨씬 쉽게 검색할 수 있습니다. 이번 글에서는 SET 타입 컬럼과 FIND_IN_SET 함수를 사용하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 SET 타입의 컬럼을 가진 테이블을 생성합니다. SET 타입은 미리 정의된 여러 값 중 하나 이상을 저장할 수 있어, 제한된 선택지를 다룰 때 유용합니다.mysql> create table DemoTable ( CountryName SET(US,UK,AUS) ); Quer
MySQL에서는 단일 INSERT 문만 사용하여 여러 개의 값(레코드)을 한 번에 테이블에 삽입할 수 있습니다. 각 행의 값을 괄호로 묶고 쉼표(,)로 구분하여 나열하면 되는데, 이 방식은 INSERT 문을 여러 번 반복 실행하는 것보다 성능 면에서 훨씬 유리합니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성하겠습니다.mysql> create table DemoTable ( ClientId int, ClientName varchar(50) ); Query OK, 0 rows affected (0.62 s
개요MySQL에서는 한 필드의 부울(Boolean) 값을 조건으로 사용하여 다른 특정 필드만 조회할 수 있습니다. 이 글에서는 예제 테이블을 만들고, isMarried 필드의 값이 true인 직원의 이름만 가져오는 쿼리를 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable ( EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeName varchar(40), isMarri
MySQL에서 하나의 컬럼에 쉼표(,)로 구분된 여러 값이 저장되어 있을 때, 그중 특정 값이 포함되어 있는지 확인하려면 FIND_IN_SET() 함수를 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 쉼표로 구분된 목록에서 원하는 값을 일치시키는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( `Values` varchar(50) ); Query OK, 0 rows affected (1.15 sec)2. 샘플 데이터 삽
MySQL에서 특정 조건에 따라 테이블의 값을 업데이트하려면 UPDATE 문과 IF() 함수를 함께 사용하면 됩니다. 이 방법을 활용하면 하나의 쿼리만으로 두 개의 값을 서로 맞바꾸거나 조건에 따라 다른 값으로 일괄 변경할 수 있습니다.예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Value int ); Query OK, 0 rows affected (0.47 sec)샘플 데이터 삽입하기insert 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.
MySQL 저장 프로시저 내에서 선언된 로컬 변수에 값이 할당되지 않으면 기본적으로 NULL이 됩니다. 이때 NULL 값을 그대로 연산에 사용하면 결과 역시 NULL이 되어 버리는 문제가 발생합니다. 이를 해결하려면 COALESCE() 함수를 사용하면 됩니다.COALESCE() 함수란?COALESCE() 함수는 인수로 전달된 값들 중 NULL이 아닌 첫 번째 값을 반환하는 함수입니다. 따라서 변수가 NULL일 경우 대체할 기본값(예: 0)을 지정하여 안전하게 연산을 수행할 수 있습니다.저장 프로시저 작성 예제아래 예제는 두 개의 로
MAX() 함수에 DISTINCT를 사용하는 두 가지 문법먼저 MAX() 함수 안에 DISTINCT 키워드를 사용하는 첫 번째 문법을 살펴보겠습니다.SELECT MAX(DISTINCT yourColumnName) FROM yourTableName;두 번째 문법은 다음과 같으며, DISTINCT를 사용하지 않습니다.SELECT MAX(yourColumnName) FROM yourTableName;참고: 위 두 쿼리는 DISTINCT 키워드의 사용 여부와 관계없이 동일한 결과를 반환합니다. MySQL은 내부적으로 MAX(yourColu
MySQL에서 빈 셀만 NULL로 업데이트하기테이블에 저장된 빈 문자열() 값만 NULL로 변경하고 싶다면 MySQL의 NULLIF() 함수를 사용하면 됩니다. 이 함수는 두 인자가 서로 같으면 NULL을 반환하고, 다르면 첫 번째 인자를 그대로 반환합니다. 따라서 UPDATE 문을 실행해도 테이블의 모든 셀이 NULL이 되는 것이 아니라, 빈 값인 행만 NULL로 변경됩니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Name varchar(5
MySQL에서 Youve처럼 작은따옴표(어포스트로피)가 포함된 텍스트를 데이터베이스에 삽입하려면 문자열을 큰따옴표로 감싸거나, 작은따옴표를 두 번 연속으로 입력하여 이스케이프 처리해야 합니다. 이번 글에서는 실제 예제를 통해 작은따옴표가 포함된 텍스트를 올바르게 저장하고 조회하는 방법을 알아보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Note text ); Query OK, 0 rows affected (0.57 sec)Note라는 TEX
개요MySQL에서 동일한 값이 여러 번 반복되는 행 중에서 단 하나의 행만 무작위로 선택하고 싶다면, RAND() 함수와 LIMIT 1을 함께 사용하면 됩니다. 여기에 WHERE 절을 추가하여 반복적으로 나타나는 특정 Name 값을 대상으로 지정할 수 있습니다.테이블 생성하기먼저 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20) ); Que
MySQL에서 LIKE concat()을 사용할 수 있나요?네, MySQL에서는 LIKE 연산자와 CONCAT() 함수를 함께 사용할 수 있습니다. CONCAT() 함수로 동적으로 패턴 문자열을 만들어 LIKE 조건에 적용하면, 고정된 문자열 대신 유연한 검색 조건을 구성할 수 있습니다.실제 예제를 통해 확인해 보겠습니다.1. 테이블 생성하기먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable ( Name varchar(50) ); Query OK, 0 rows affected (0.63
MySQL에서 여러 필드를 동시에 검색해야 하는 경우가 종종 있습니다. 예를 들어, 직원 테이블에서 이름(FirstName)이 Joh로 시작하고 성(LastName)이 Sm으로 시작하는 레코드만 조회하고 싶다면 LIKE 연산자와 AND 논리 연산자를 함께 사용하면 됩니다.1. 샘플 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( EmployeeFirstName varchar(50), EmployeeLastName varchar(50) ); Query
MySQL을 사용하다 보면 두 컬럼의 값을 서로 맞바꿔야 하는 경우가 종종 발생합니다. 예를 들어 실수로 데이터를 반대로 입력했거나, 두 필드의 값을 일괄적으로 교환해야 할 때 유용한 방법입니다. 이 글에서는 UPDATE 문과 사용자 변수(@temporaryVariable)를 활용해 특정 행의 필드 값을 간단히 교환하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT
MySQL에서 BLOB 타입으로 선언된 열(컬럼)의 길이를 확인하려면 LENGTH() 함수를 사용하면 됩니다. 이 함수는 해당 열에 저장된 데이터의 바이트 길이를 반환합니다.1. BLOB 타입 테이블 생성하기먼저 열의 데이터 타입을 BLOB로 지정하여 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Title blob ); Query OK, 0 rows affected (0.57 sec)2. 샘플 데이터 삽입하기INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.mysql>
MySQL에서 타임스탬프(timestamp) 값의 일부, 예를 들어 연도나 월 같은 특정 요소를 기준으로 데이터를 조회해야 하는 경우가 자주 있습니다. 이때 YEAR(), MONTH(), DAY() 같은 날짜 함수를 WHERE 절과 함께 사용하면 손쉽게 원하는 데이터만 추출할 수 있습니다.1. 샘플 테이블 생성먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( AdmissionDate timestamp ); Query OK, 0 rows affected (0.90 se
MySQL에서 특정 컬럼의 최댓값을 조회하는 방법은 크게 두 가지가 있습니다. 각 방법의 동작 원리와 성능 차이를 이해하면 상황에 맞는 최적의 쿼리를 선택할 수 있습니다.방법 1: MAX() 집계 함수 사용가장 권장되는 방식은 MAX() 집계 함수를 사용하는 것입니다.select max(yourColumnName) from yourTableName;방법 2: ORDER BY와 LIMIT 사용두 번째 방법은 컬럼을 내림차순으로 정렬한 뒤 첫 번째 행만 가져오는 방식입니다.select yourColumnName from yourTabl
conv() 함수와 cast() 함수로 16진수를 10진수로 변환하기MySQL에서는 conv() 함수와 cast() 함수를 함께 사용하여 16진수 값을 10진수 값으로 변환할 수 있습니다.참고: MD5 값은 16진수(hexadecimal) 형태로 저장됩니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable( Password text);Query OK, 0 rows affected (0.60 sec)2. 레코드 삽입하기insert 명령을 사용하여