MySQL에서 데이터를 높은 값부터 낮은 값(내림차순)으로 정렬하려면 ORDER BY DESC 명령어를 사용하면 됩니다.SELECT * FROM yourTableName ORDER BY yourColumnName DESC;반대로 낮은 값부터 높은 값(오름차순)으로 정렬하고 싶다면 ORDER BY ASC 명령어를 사용합니다.SELECT * FROM yourTableName ORDER BY yourColumnName ASC;실습용 테이블 생성하기먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table De
MySQL에서 자동 증가(AUTO_INCREMENT) 시작 값을 10000으로 설정하기MySQL에서 int 타입의 컬럼을 10000부터 시작하여 1씩 자동 증가하도록 설정하려면 AUTO_INCREMENT 속성과 ALTER TABLE 문을 함께 활용하면 됩니다. 아래에서 단계별로 자세히 살펴보겠습니다.1단계: 테이블 생성먼저 UserId를 AUTO_INCREMENT 기본 키(PRIMARY KEY)로 설정한 테이블을 생성합니다.mysql> create table DemoTable( UserId int
MySQL에서 SELECT 쿼리 결과에 실제 테이블에는 존재하지 않는 새로운 열을 추가하고, 해당 열에 특정 값을 지정하는 것은 매우 간단합니다. 이 기능은 조회 결과에 고정값을 함께 출력해야 할 때 유용하게 사용됩니다.기본 문법새 열을 추가하고 값을 지정하려면 아래와 같은 문법을 사용합니다. 원하는 값 뒤에 AS 키워드를 붙여 별칭(alias)을 지정하면 됩니다.SELECT yourColumnName1, yourColumnName2, ...N, yourValue AS anyAliasName FROM yourTableName;예제
MySQL에서 dd/mm/yyyy 형식으로 저장된 문자열 날짜를 yyyymmdd 형식으로 변환하려면 STR_TO_DATE() 함수와 DATE_FORMAT() 함수를 함께 사용하면 됩니다. 먼저 STR_TO_DATE()로 문자열을 날짜 타입으로 파싱한 뒤, DATE_FORMAT()으로 원하는 출력 형식을 지정하는 방식입니다.1단계: 테이블 생성하기먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, A
MySQL에서 테이블 이름에 공백을 포함하려면 반드시 백틱(backtick) 기호를 사용해야 합니다. 백틱 없이 공백이 있는 테이블 이름을 그대로 작성하면 구문 오류가 발생합니다.백틱 없이 생성 시 발생하는 오류먼저, 공백이 포함된 테이블 이름(예: Demo Table)을 백틱 없이 생성하려고 하면 어떤 오류가 발생하는지 살펴보겠습니다.mysql> create table Demo Table ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeFirstName varch
MySQL에서 특정 필드 값을 기준으로 사용자 지정 정렬을 수행하려면 ORDER BY 절과 함께 FIELD() 함수를 사용하면 됩니다. FIELD() 함수는 첫 번째 인자가 이후에 나열된 값들 중 몇 번째 위치에 해당하는지를 반환하며, 이를 활용하면 원하는 임의의 순서대로 조회 결과를 정렬할 수 있습니다.예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable (StudentId int);Query OK, 0 rows affected (0.58 sec)테이블에 데이터 삽입
MySQL에서 두 열의 차이를 새로운 열로 구하는 방법데이터베이스 작업을 하다 보면 최솟값과 최댓값처럼 서로 연관된 두 숫자형 열의 차이를 계산해 별도의 열로 출력해야 하는 경우가 자주 있습니다. MySQL에서는 SELECT 문 안에서 산술 연산자(-)를 활용하면 아주 간단하게 처리할 수 있습니다. 이번 글에서는 예제 테이블을 직접 만들어 보면서 두 열의 차이를 새로운 열로 가져오는 방법을 단계별로 알아보겠습니다.1. 예제 테이블 생성먼저 차이를 계산할 두 개의 열(LowValue, HighValue)을 가진 테이블을 생성합니다.m
데이터베이스에서 큰 숫자를 다룰 때 콤마(,)로 구분된 형태로 표시하면 훨씬 읽기 편합니다. MySQL에서는 FORMAT() 함수와 뷰(View)를 조합하면 원본 테이블은 그대로 유지하면서 화면에는 가독성 좋은 형식으로 숫자를 출력할 수 있습니다.1. 예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( StudentId int ); Query OK, 0 rows affected (0.62 sec)2. 샘플 데이터 삽입하기INSERT 명령어를 사용해 몇 개의
MySQL에서 탭으로 구분된 결과를 얻으려면 CONCAT() 함수를 활용하면 됩니다. CONCAT 함수는 여러 문자열이나 컬럼 값을 하나로 연결해 주며, 그 사이에 탭 문자(\t)를 삽입하면 탭으로 구분된 형태의 출력을 손쉽게 만들 수 있습니다.기본 문법SELECT CONCAT(yourColumnName1, \t, yourColumnName2) AS anyAliasName FROM yourTableName;예제 테이블 생성먼저 실습용 테이블을 만들어 보겠습니다.mysql> CREATE TABLE DemoTable ( I
MySQL에서 AM/PM 형식 시간 정렬하기MySQL에서 09:45 PM처럼 AM/PM 형식으로 저장된 시간 데이터를 단순히 ORDER BY로 정렬하면 문자열 기준으로 정렬되어 의도한 순서대로 나오지 않습니다. 이럴 때는 ORDER BY 절과 STR_TO_DATE() 함수를 함께 사용하면 시간값을 실제 날짜·시간 타입으로 변환하여 올바르게 정렬할 수 있습니다.기본 문법SELECT yourColumnName FROM yourTableNameORDER BY STR_TO_DATE(yourColumnName, %l:%i %p);여기서 사용
MySQL에서 select처럼 예약어(키워드)로 이미 등록된 이름과 동일한 컬럼을 조회하려면, 컬럼 이름을 백틱(`)으로 감싸주어야 합니다. MySQL에서 SELECT는 쿼리를 실행하는 데 사용되는 핵심 예약어이기 때문에, 이를 그대로 컬럼 이름으로 사용하면 문법 오류가 발생할 수 있습니다.예약어를 컬럼 이름으로 가진 테이블 생성하기실습을 위해 컬럼 이름을 select로 지정한 테이블을 생성해 보겠습니다. 이때 반드시 백틱으로 컬럼 이름을 감싸야 정상적으로 테이블이 생성됩니다.mysql> create table DemoTabl
MySQL에서 문자열의 첫 번째 단어만 추출하고 싶다면 SUBSTRING_INDEX() 함수를 사용하면 됩니다. 이 함수는 지정한 구분자를 기준으로 문자열을 나눈 뒤, 원하는 위치까지의 부분 문자열을 반환합니다.SUBSTRING_INDEX() 기본 문법SELECT SUBSTRING_INDEX(yourColumnName, , 1) AS anyAliasName FROM yourTableName;여기서 세 번째 인자인 1은 구분자(공백)를 기준으로 첫 번째 부분까지만 가져오라는 의미입니다. 즉, 공백 앞에 있는 첫 번째 단어가 결과로
MySQL에서 IN() 함수를 활용하면 특정 레코드 하나를 제외한 나머지 모든 레코드를 손쉽게 조회할 수 있습니다. 이번 글에서는 실제 예제를 통해 그 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Id int, FirstName varchar(20) ); Query OK, 0 rows affected (0.57 sec)2. 샘플 데이터 삽입하기INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 추가합니다.my
MySQL에서 YYYYMMDD 날짜를 YY-MM-DD 형식으로 변환하는 방법 MySQL에서 YYYYMMDD 형태로 저장된 날짜 문자열을 하이픈이 포함된 날짜 형식으로 변환하려면 STR_TO_DATE()와 DATE_FORMAT() 함수를 조합하여 사용하면 됩니다. 기본 문법은 다음과 같습니다. select date_format(str_to_date(yourColumnName, %Y%m%d),%Y-%m-%d) from yourTableName; 여기서 STR_TO_DATE()는 20121221처럼 저장된 문자열을 %Y%m%d 포맷 기준
MySQL에서는 UPDATE 명령문과 사용자 정의 변수(user-defined variable)를 함께 사용하여, 레코드를 특정 기준으로 정렬하면서 동시에 값을 순차적으로 증가시킬 수 있습니다. 이 방법은 게시판 순서, 우선순위(Position) 등을 일괄 재정렬할 때 매우 유용합니다.1. 테이블 생성하기먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( FirstName varchar(20), Position int ); Query OK, 0 rows affe
MySQL에서는 LENGTH() 함수와 REPLACE() 함수를 조합하면 한 행(레코드) 안에 특정 기호가 몇 번 등장하는지 쉽게 계산할 수 있습니다. 핵심 원리는 간단합니다. 전체 문자열의 길이에서 해당 기호를 제거한 문자열의 길이를 빼면, 그 차이가 곧 기호의 개수가 됩니다.1. 테이블 생성하기먼저 예제로 사용할 테이블을 만들어 보겠습니다.mysql> create table DemoTable ( Value varchar(200) ); Query OK, 0 rows affected (0.54 sec)2. 데이터 삽입하
MySQL에서 /* 는 주석(comment)을 나타내는 기호입니다. /* 는 주석의 시작을 표시하고, */ 는 주석의 끝을 표시합니다. 이 두 기호 사이에 작성된 모든 내용은 MySQL 서버가 실행할 때 완전히 무시합니다.주석이 필요한 이유주석은 SQL 코드에 설명을 덧붙여 가독성을 높이고, 나중에 코드를 다시 볼 때 그 의도를 쉽게 파악할 수 있도록 도와줍니다. 특히 여러 명이 함께 작업하는 프로젝트에서는 테이블이나 쿼리의 용도를 문서화하는 데 매우 유용합니다.주석 작성 방법다음과 같이 간단한 주석을 작성해 볼 수 있습니다.mys
MySQL에서 bit(1) 타입 컬럼은 일반적인 SELECT 문으로 조회할 경우 값이 제대로 보이지 않는 문제가 있습니다. 이 글에서는 bit(1) 필드의 실제 값을 화면에 정상적으로 표시하는 방법을 예제와 함께 알아보겠습니다.테이블 생성하기먼저 bit(1) 타입의 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable ( isCaptured bit(1) ); Query OK, 0 rows affected (1.00 sec)데이터 삽입하기INSERT 명령을 사용하여 몇 개의 레코드를 삽입합
MySQL TIME 데이터 타입이란?MySQL의 TIME 데이터 타입은 시간 값을 저장할 때 사용합니다. 기본적으로 HH:MM:SS 형식으로 표현되며, -838:59:59부터 838:59:59까지 넓은 범위를 지원합니다. 이는 단순히 하루 중 특정 시각뿐만 아니라 두 시점 사이의 경과 시간도 저장할 수 있도록 설계되었기 때문입니다.1. TIME 타입 컬럼을 포함한 테이블 생성먼저 로그인 시간을 저장하기 위한 TIME 타입 컬럼을 포함하는 테이블을 생성해 보겠습니다.mysql> create table DemoTable( 
MySQL에서 문자열+정수 혼합 데이터의 최대값 구하는 방법STU201처럼 문자와 숫자가 함께 들어 있는 컬럼에서 최대값을 구하려면 CAST() 함수를 MAX() 함수와 함께 사용해야 합니다. 문자열 자체로는 올바른 숫자 비교가 불가능하기 때문에, 숫자 부분만 추출한 뒤 정수형으로 변환하는 과정이 필요합니다.이때 SUBSTRING()으로 숫자 부분만 잘라내고, CAST()로 UNSIGNED(부호 없는 정수) 타입으로 변환한 후 MAX()를 적용하면 됩니다.1. 테이블 생성먼저 예제에 사용할 테이블을 만들어 보겠습니다.mysql>