MySQL에서 조회 결과의 열 이름을 다르게 표시하고 싶다면 AS 키워드를 사용하면 됩니다. 이 기능을 별칭(alias)이라고 부르며, 실제 테이블 구조를 변경하는 것이 아니라 쿼리 결과에만 임시로 새로운 이름을 붙여주는 방식입니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 생성해 보겠습니다. mysql> create table DemoTable ( Id int, StudentFirstNameInCollege varchar(100)
문자열에서 첫 글자(첫 번째 알파벳)를 추출해 별도의 열에 표시하려면 MySQL의 LEFT() 함수를 사용하면 됩니다. LEFT() 함수는 문자열의 왼쪽부터 지정한 개수만큼 문자를 반환하며, 여기에 UPPER() 함수를 함께 사용하면 추출한 첫 글자를 대문자로 변환할 수도 있습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar
하나의 열에 담긴 여러 개의 서로 다른 값을 조건별로 나누어 각각의 합계(또는 개수)를 한 번에 집계하고 싶다면 CASE 문을 활용하면 됩니다. CASE 문은 조건에 따라 다른 값을 반환하므로, SUM 함수와 GROUP BY 절과 함께 사용하면 조건별 집계를 손쉽게 구현할 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( ProductName varchar(100), ProductRating ENUM(1,2,3) ); Query OK, 0 rows
MySQL에서 특정 행의 특정 컬럼(셀) 값을 비우고 싶을 때는 UPDATE 문과 WHERE 절을 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 특정 셀을 빈 문자열()로 업데이트하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int, Name varchar(50) ); Query OK, 0 rows affected (0.47 sec)2. 샘플 데이터 삽입하기INSERT 명령을 사용하여 테이블에 몇
개요MySQL에서 특정 문자나 숫자로 끝나는 열 값을 조회해야 하는 경우가 종종 있습니다. 예를 들어, 숫자 데이터 중 끝자리가 8로 끝나는 값만 골라내고 싶다면 LIKE 연산자와 와일드카드 문자 %를 활용하면 간단하게 해결할 수 있습니다.이번 글에서는 실제 예제를 통해 특정 숫자로 끝나는 열 값을 선택하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable( Number int);Query OK, 0 ro
MySQL에서 CASE WHEN으로 사용자 지정 순서 정렬하기MySQL에서 데이터를 특정 조건에 따라 원하는 순서대로 정렬하려면 ORDER BY 절과 CASE 문을 함께 사용하면 됩니다. 이 방법은 기본적인 오름차순(ASC)이나 내림차순(DESC) 정렬이 아닌, 개발자가 직접 정의한 우선순위대로 결과를 정렬해야 할 때 매우 유용합니다.먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable( Color varchar(100));Query OK, 0 rows affected (0.6
MySQL 뷰(VIEW) 생성으로 별칭 만들기네, 가능합니다. MySQL에서는 AS 키워드를 사용하여 별칭(alias)을 만들 수 있습니다. 특히 CREATE VIEW ... AS SELECT 구문을 활용하면 뷰 이름이 곧 원본 테이블의 별칭 역할을 하게 됩니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( FirstName varchar(100) ); Query OK, 0 rows affected (0.54 sec)insert
MySQL에서 특정 열(column)의 최대값을 구하려면 미리 정의되어 있는 집계 함수 MAX()를 사용하면 됩니다. 이번 글에서는 예제 테이블을 만들고 MAX() 함수를 활용해 최대값을 조회하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int ); Query OK, 0 rows affected (0.96 sec)2. 데이터 삽입하기INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 추가합니다.mysql&
개요수천 개의 테이블이 존재하는 MySQL 데이터베이스에서 4개의 무작위(random) 테이블을 선택하려면 ORDER BY RAND() 절을 활용하면 됩니다. 이 방법은 INFORMATION_SCHEMA.TABLES에서 테이블 목록을 조회한 뒤, 결과를 무작위로 정렬하고 원하는 개수만큼 제한하여 반환하는 방식입니다.기본 문법무작위 테이블을 선택하기 위한 기본적인 SQL 문법은 다음과 같습니다.select TABLE_NAME AS anyAliasNamefrom INFORMATION_SCHEMA.TABLESwhere TABLE_SCHE
MySQL에서 여러 열의 최솟값 구하기MySQL에서 테이블의 네 개 열 전체를 대상으로 최소 점수를 찾으려면 LEAST() 함수를 사용하면 됩니다. LEAST() 함수는 인자로 전달된 여러 값 중 가장 작은 값을 반환하는 함수로, 행 단위로 여러 열을 비교할 때 매우 유용합니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable( Score1 int, Score2 int, &nb
MySQL에서 기존 테이블의 특정 열 값을 새 테이블로 복사하려면 CREATE TABLE ... AS SELECT 구문을 사용하는 것이 가장 간단합니다. 이 방법을 사용하면 새 테이블 생성과 데이터 복사를 한 번의 쿼리로 처리할 수 있습니다.1. 원본 테이블 생성하기먼저 예제로 사용할 테이블을 만들어 보겠습니다.mysql> create table DemoTable1 ( Score int ); Query OK, 0 rows affected (1.22 sec)2. 데이터 삽입하기INSERT 명령어를 사용해 테이블에 몇 개의
MySQL에서 TINYINT(1)과 BOOLEAN 사이에는 실질적인 차이가 없습니다. BOOL 또는 BOOLEAN 키워드는 내부적으로 TINYINT(1)로 변환되며, 즉 BOOL과 BOOLEAN은 TINYINT(1)의 동의어(synonym)라고 할 수 있습니다.테이블 생성하기먼저 예제용 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( isMarried Boolean ); Query OK, 0 rows affected (1.77 sec)테이블 구조 확인하기DESC 명령어를 사용하여 테이
IS NULL 속성으로 NULL 값만 교체하기MySQL에서 테이블에 저장된 NULL 값을 원하는 문자열로 바꾸고 싶다면 IS NULL 속성을 활용하면 됩니다. IS NULL은 해당 컬럼의 값이 NULL인 경우에만 조건을 만족하므로, 일반 데이터는 그대로 유지한 채 NULL 값만 선택적으로 교체할 수 있습니다.실제 동작 과정을 예제와 함께 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Name varchar(100) ); Quer
MySQL에서 여러 개의 성(LastName) 값을 한 번에 조건으로 지정해 레코드를 조회하려면 IN() 연산자를 사용하는 것이 가장 효율적입니다. IN()은 여러 개의 OR 조건을 간결하게 표현할 수 있어 가독성과 유지보수 측면에서 매우 유용합니다.이번 글에서는 예제 테이블을 만들고, IN() 연산자를 활용해 특정 성에 해당하는 레코드만 가져오는 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 FirstName과 LastName 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable (
MySQL의 저장 프로시저(stored procedure)에서 @ 기호는 사용자 정의 세션 변수(user-defined session variables)를 선언하고 활용할 때 사용됩니다. 세션 변수는 현재 데이터베이스 연결이 유지되는 동안 값을 보관할 수 있기 때문에, 프로시저 내부에서 계산한 결과를 저장하거나 프로시저 실행 후 외부에서 그 값을 다시 조회할 때 매우 유용합니다.실제 예제를 통해 @ 기호의 사용법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create tab
MySQL에서 하나의 쿼리로 여러 조건에 해당하는 레코드 수를 각각 집계해야 하는 경우가 자주 있습니다. 이럴 때 CASE 문과 SUM() 함수를 함께 사용하면 단일 쿼리로 손쉽게 처리할 수 있습니다.예제 시나리오이번 예제에서는 직원 성별 정보가 저장된 컬럼에서 남성(Male)과 여성(Female) 레코드의 개수를 각각 조회하는 방법을 알아보겠습니다.1. 테이블 생성먼저 ENUM 타입으로 성별 값을 정의한 테이블을 생성합니다.mysql> create table DemoTable ( EmployeeGender ENUM(M
MySQL에서는 ALTER TABLE 문과 MODIFY COLUMN 절을 활용하면 단일 쿼리만으로 여러 열의 데이터 유형을 한 번에 변경할 수 있습니다. 각 열마다 별도의 쿼리를 실행할 필요 없이, 하나의 ALTER TABLE 문 안에 MODIFY COLUMN 절을 여러 개 나열하면 됩니다.기본 문법여러 열의 유형을 단일 쿼리로 변경하는 기본 문법은 다음과 같습니다.alter table yourTableNamemodify column yourColumnName1 yourDataType1,modify column yourColumnN
MySQL에서 이름(First Name)과 성(Last Name)이 각각 분리된 두 개의 열로 저장되어 있을 때, 이를 하나의 전체 이름 열로 합쳐서 조회해야 하는 경우가 자주 있습니다. 이럴 때 사용하는 것이 바로 CONCAT() 함수입니다. CONCAT()은 여러 문자열을 하나로 연결해 주는 MySQL의 기본 문자열 함수로, 별도의 설정 없이 즉시 활용할 수 있습니다.1. 예제 테이블 생성하기먼저 실습에 사용할 테이블을 만들어 보겠습니다. 이름과 성을 저장하기 위한 두 개의 VARCHAR 컬럼을 가진 테이블입니다.mysql>
MySQL에서 특정 날짜 기준 30일 이전 데이터 삭제하기데이터베이스를 운영하다 보면 만료된 데이터나 오래된 로그를 주기적으로 정리해야 하는 경우가 많습니다. MySQL에서는 INTERVAL 연산자를 활용하면 특정 날짜를 기준으로 30일 이전의 레코드를 손쉽게 삭제할 수 있습니다.기본 문법DELETE FROM yourTableNameWHERE yourColumnName < (yourAnotherDateValue - INTERVAL 30 DAY);- INTERVAL 30 DAY 구문은 지정한 날짜에서 30일을 뺀 값을 계산합니다
모든 열의 길이, 즉 열 값에 포함된 전체 문자 수를 구하려면 MySQL의 char_length() 함수를 사용하면 됩니다. 이 함수는 문자열의 문자 개수를 반환하며, concat() 함수와 함께 사용하면 여러 열의 값을 하나로 연결한 뒤 전체 길이를 한 번에 계산할 수 있습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 만들어 보겠습니다. 여기서는 FirstName과 LastName 두 개의 열이 있으며, 각 행마다 두 값의 길이를 합산한 결과를 구할 것입니다.mysql> create table DemoTable (