MySQL에서는 내장 함수 두 가지를 사용해 손쉽게 Base64 인코딩과 디코딩을 처리할 수 있습니다.TO_BASE64() – 값을 Base64로 인코딩FROM_BASE64() – 인코딩된 값을 원래 값으로 디코딩기본 문법Base64 인코딩의 기본 문법은 다음과 같습니다.SELECT TO_BASE64(anyValue) AS AnyVariableName;Base64 디코딩의 기본 문법은 다음과 같습니다.SELECT FROM_BASE64(encodeValue) AS anyVariableName;위 문법을 실제 예제를 통해 자세히 살펴보
MySQL에서는 DATE_FORMAT() 함수를 사용하여 각 날짜가 속한 달의 첫날을 손쉽게 구할 수 있습니다. 이 함수는 날짜 형식을 지정하는 포맷 문자열을 받아 원하는 형태로 변환해 주는데, %Y-%m-01과 같이 일(day) 부분을 01로 고정하면 해당 월의 첫날이 됩니다.기본 문법SELECT DATE_FORMAT(날짜컬럼명, %Y-%m-01) AS 별칭 FROM 테이블명;문법을 더 잘 이해하기 위해 실제 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.mysql
테이블의 기본 키를 재설정한다는 것은 AUTO_INCREMENT 속성 값을 다시 1로 초기화하는 것을 의미합니다. MySQL에서는 ALTER TABLE 문을 사용하여 간단하게 처리할 수 있습니다.기본 키 재설정 기본 문법ALTER TABLE 테이블이름 AUTO_INCREMENT = 1;예제 테이블 생성먼저 이해를 돕기 위해 예제용 테이블을 생성해 보겠습니다.mysql> CREATE TABLE ResetPrimaryKey -> ( -> Id INT AUTO_INCREMENT,
MySQL에서 열의 평균값 계산하기MySQL의 집계 함수 AVG()를 사용하면 특정 열(컬럼)에 저장된 숫자 값들의 평균을 아주 간단하게 구할 수 있습니다. 성적, 판매량, 점수 등 수치 데이터의 통계를 낼 때 가장 많이 활용되는 함수입니다.기본 문법AVG() 함수의 기본적인 사용 문법은 다음과 같습니다.SELECT AVG(yourColumnName) AS anyVariableName FROM yourTableName;예제 테이블 생성개념을 쉽게 이해하기 위해 먼저 예제용 테이블을 만들어 보겠습니다. 아래는 테이블을 생성하는 쿼리입
MySQL에서 날짜(date)와 시간(time) 데이터를 내림차순으로 정렬하는 방법을 예제를 통해 알아보겠습니다. 먼저 실습에 사용할 테이블을 생성하는 쿼리부터 살펴봅니다.1. 테이블 생성사용자 ID, 이름, 발행 날짜, 발행 시간을 저장하는 테이블을 아래 쿼리로 생성합니다.mysql> create table SortByDateAndTime-> (-> UserId int,-> UserName varchar(100),-> IssueDate date,-> IssueTime time-> );Query
MySQL에서 날짜를 저장할 때 월과 연도만 별도로 저장하는 것보다 전체 날짜 시간(datetime)으로 저장하는 것이 좋습니다. datetime 타입으로 선언해 두면 MySQL의 MONTH() 함수와 YEAR() 함수를 사용해 언제든지 월과 연도를 손쉽게 추출할 수 있기 때문입니다.기본 문법datetime 컬럼에서 월과 연도를 추출하는 기본 문법은 다음과 같습니다.select MONTH(yourDateTimeColumnName) as anyVariableName1,YEAR(yourDateTimeColumnName) as anyVa
MySQL에서 기본 키(Primary Key)가 1000부터 시작되도록 하려면 ALTER TABLE 문을 사용하여 테이블의 AUTO_INCREMENT 값을 1000으로 설정하면 됩니다. 기본 문법은 다음과 같습니다.ALTER TABLE 테이블이름 AUTO_INCREMENT = 1000;예제 테이블 생성하기먼저 문법을 이해하기 위해 예제용 테이블을 생성해 보겠습니다. 아래 쿼리는 자동 증가하는 ProductId 컬럼을 기본 키로 가지는 테이블을 만듭니다.mysql> CREATE TABLE PrimaryKey1000Demo
MySQL에서 타임스탬프(timestamp) 값에서 날짜 부분만 추출하고 싶다면 DATE() 함수를 사용하면 됩니다. DATE() 함수는 타임스탬프 또는 DATETIME 값에서 시간 정보를 제거하고 날짜(YYYY-MM-DD 형식)만 반환합니다.기본 문법SELECT DATE(yourTimestampColumnName) as anyVariableName from yourTableName;위 문법을 실제로 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.mysql> create table D
MySQL에는 다른 프로그래밍 언어처럼 print 문이 기본적으로 제공되지 않습니다. 하지만 SELECT 문을 활용하면 동일한 효과를 손쉽게 낼 수 있습니다.기본 문법SELECT 문에 출력하고자 하는 값을 넣고 별칭(alias)을 지정하면 됩니다. 기본 문법은 다음과 같습니다.SELECT anyStringValue as ;이 문법은 MySQL 커맨드 라인 클라이언트에서 바로 확인해볼 수 있습니다.Case 1: 문자열 출력하기문자열을 출력하려면 아래와 같이 작성합니다.mysql> select HELLO MYSQL as ;실행
COUNT(*)와 COUNT(컬럼명), 무엇이 다를까?MySQL에서 테이블의 전체 레코드 수를 확인하려면 COUNT(*)를 사용하는 것이 좋습니다. COUNT(*)는 NULL 값을 포함한 모든 행을 세는 반면, COUNT(컬럼명)은 해당 컬럼의 값이 NULL인 행을 제외하고 개수를 계산하기 때문입니다. 즉, 컬럼에 NULL 값이 존재한다면 두 함수의 결과는 서로 달라집니다.COUNT(*)의 기본 문법은 다음과 같습니다.select count(*) as anyVariableName from yourTableName;예제용 테이블 생성
MySQL에는 다른 프로그래밍 언어처럼 배열(array) 자료형이 기본적으로 제공되지 않습니다. 따라서 배열 변수를 직접 흉내 내기보다는 임시 테이블(Temporary Table)을 활용하는 것이 가장 효과적이고 실용적인 방법입니다.임시 테이블 생성 문법배열 변수 대신 사용할 수 있는 임시 테이블 생성 구문은 다음과 같습니다.create temporary table if not exists yourTemporaryTableName select yourColumnName1,yourColumnName2,......N from yourT
MySQL에서 BIT 타입의 컬럼을 단순히 SELECT 문으로 조회하면 값이 공백처럼 보이는 경우가 있습니다. 이는 비트 값이 문자열 형태로 출력되기 때문인데, 원래의 숫자 값을 확인하려면 간단한 캐스팅 기법을 사용하면 됩니다.해결 방법: +0을 활용한 정수 변환비트 컬럼에 0을 더하면 해당 값이 자동으로 정수형으로 변환되어 실제 값을 확인할 수 있습니다. 기본 문법은 다음과 같습니다.SELECT yourBitColumnName + 0 FROM yourTableName;실습 예제개념을 이해하기 위해 실제로 테이블을 만들고, 비트 값
MySQL에서 하나의 컬럼에 대해 여러 개의 검색 조건을 적용해 데이터를 조회하려면 LIKE 연산자와 OR 연산자를 함께 사용하면 됩니다. 각각의 LIKE 조건을 OR로 연결하면, 여러 패턴 중 하나라도 일치하는 모든 행을 한 번에 가져올 수 있습니다.기본 문법여러 값을 가진 필드를 조회하는 기본적인 쿼리 형식은 다음과 같습니다.SELECT * FROM yourTableNameWHERE yourColumnName LIKE %문자열1 OR yourColumnName LIKE %문자열2  
MySQL에서 STR_TO_DATE() 함수를 사용하면 DD/MM/YYYY처럼 문자열로 저장된 날짜를 실제 DATE 타입으로 손쉽게 변환할 수 있습니다. 날짜 연산이나 정렬, 비교가 필요한 경우 반드시 DATE 타입으로 변환해야 하므로 매우 유용한 함수입니다.STR_TO_DATE() 기본 문법SELECT STR_TO_DATE(yourColumnName, %d/%m/%Y) AS anyVariableName FROM yourTableName;여기서 사용된 형식 지정자의 의미는 다음과 같습니다.%d : 일(01~31)%m : 월(01~1
MySQL WHERE 절에서 같지 않음 조건 활용하기MySQL에서 특정 값과 일치하지 않는 레코드만 조회하고 싶을 때는 != 연산자 또는 <>(같지 않음) 연산자를 사용할 수 있습니다. 두 연산자는 기능적으로 동일하게 동작합니다.기본 문법SELECT * FROM 테이블명 WHERE 컬럼명 <> 조건값;예제 테이블 생성위 문법을 실제로 이해하기 위해 간단한 테이블을 만들어 보겠습니다.mysql> create table NotEqualsDemo -> ( ->
매번 명령줄에서 비밀번호를 입력하는 번거로움 없이 MySQL 유틸리티를 실행하려면, 설정 파일인 my.cnf에 계정 정보를 미리 등록해 두면 됩니다.1단계: my.cnf 파일의 위치 확인먼저 아래 쿼리를 실행하여 my.cnf 파일이 저장된 데이터 디렉터리 경로를 확인합니다.mysql> select @@datadir;실행 결과는 다음과 같으며, my.cnf 파일이 위치한 경로를 보여줍니다.+---------------------------------------------+ | @@datadir
MySQL에서 오류 1115(42000): Unknown character set: utf8mb4 메시지가 나타나는 주요 원인은 사용 중인 MySQL 버전이 5.5.3 미만이기 때문입니다. utf8mb4 문자 집합은 MySQL 5.5.3 버전에서 처음 도입되었기 때문에, 그 이전 버전에서는 해당 문자 집합을 인식하지 못하고 오류를 발생시킵니다.1단계: 현재 MySQL 버전 확인하기가장 먼저 현재 사용 중인 MySQL 버전을 확인해야 합니다. 버전이 5.5.3보다 낮다면 업그레이드를 통해 문제를 해결할 수 있습니다.아래 쿼리를 실행하
MySQL에서 DATETIME 타입의 값에서 3시간을 빼야 하는 경우가 종종 있습니다. 예를 들어 로그 기록 시간 보정이나 시간대 차이 계산 등이 대표적인 활용 사례입니다. 이때 DATE_ADD() 함수와 DATE_SUB() 함수를 사용하면 간단하게 처리할 수 있습니다.방법 1: DATE_ADD() 함수 사용하기DATE_ADD()는 이름 그대로 날짜와 시간을 더하는 함수이지만, 음수 값을 전달하면 빼기 연산과 동일한 효과를 냅니다.SELECT DATE_ADD(컬럼명, INTERVAL -3 HOUR) FROM 테이블명;방법 2: DA
MySQL에서 INT 타입 컬럼의 값을 토글(0 ↔ 1 전환)하려면 UPDATE 문과 IF() 함수를 함께 사용하면 됩니다. 별도의 조건문이나 애플리케이션 로직 없이 단 한 줄의 쿼리로 처리할 수 있어 매우 유용합니다.기본 문법UPDATE yourTableNameSET yourColumnName = IF(yourColumnName = 0, 1, 0);위 문법은 해당 컬럼의 값이 0이면 1로, 그 외의 값(1 포함)이면 0으로 변경합니다. 이제 실제 예제를 통해 동작 과정을 살펴보겠습니다.1. 예제 테이블 생성먼저 INT 값을 저장할
MySQL에서 열(column)에 저장된 값 중 가장 큰 숫자를 찾으려면 집계 함수인 MAX()를 사용하면 됩니다. 기본 문법은 다음과 같습니다.select max(yourColumnName) as anyVariableName from yourTableName;예제 테이블 생성하기개념을 쉽게 이해하기 위해 int 타입의 열을 가진 테이블을 먼저 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.mysql> create table HighestNumberDemo -> ( -> BigNumber int