MySQL에서 열(column)의 최댓값을 구하려면 MAX(열이름) 함수를, 최솟값을 구하려면 MIN(열이름) 함수를 사용합니다. 이 두 집계 함수는 숫자 데이터뿐 아니라 날짜, 문자열 등에도 활용할 수 있어 다양한 상황에서 유용합니다.기본 문법특정 열에서 가장 높은 값과 가장 낮은 값을 찾아, 그 값에 해당하는 행 전체를 조회하는 기본 문법은 다음과 같습니다.mysql> SELECT @min_val:=MIN(columnName), @max_val:=MAX(columnName) FROM tableName;mysql> SE
이 글에서는 MySQL에서 특정 열의 최댓값을 가진 행을 찾는 방법을 자세히 알아보겠습니다.참고: 이 글에서는 DBNAME이라는 데이터베이스와 tableName이라는 테이블이 이미 생성되어 있다고 가정합니다.서브쿼리를 활용한 방법특정 열의 최댓값을 가진 행을 조회하는 가장 대표적인 방법은 서브쿼리를 사용하는 것입니다. WHERE 절 안에서 해당 열의 최댓값을 먼저 구하고, 그 값과 일치하는 행을 반환하는 방식입니다.아래 예시는 colName3 열의 최댓값을 가진 행을 조회하는 쿼리입니다.쿼리SELECT colName1, colNam
MySQL에서 데이터를 분석하다 보면 전체가 아닌 그룹별로 특정 열의 최댓값을 구해야 하는 경우가 자주 있습니다. 예를 들어 상품 카테고리별 최고 가격, 부서별 최고 연봉처럼 말이죠. 이럴 때는 GROUP BY 절과 MAX() 집계 함수를 함께 사용하면 간단하게 해결할 수 있습니다.기본 문법그룹별 최댓값을 조회하는 기본적인 쿼리 형식은 다음과 같습니다.SELECT colName1, MAX(colName2) FROM tableName GROUP BY colName1 ORDER BY colName1;각 절의 역할을 정리하면 다음과 같습
MySQL에서 특정 열의 그룹별 최대값을 가진 행 찾기MySQL을 사용하다 보면 각 그룹 내에서 특정 열의 최대값을 가진 행 전체를 조회해야 하는 경우가 자주 발생합니다. 예를 들어, 상품별로 가장 높은 가격의 데이터만 추출하거나, 부서별로 최고 연봉자의 정보를 가져오는 상황이 대표적입니다.이때 상관 서브쿼리(Correlated Subquery)를 활용하면 원하는 결과를 손쉽게 얻을 수 있습니다.기본 문법SELECT colName1, colName2, colName3 FROM tableName s1 WHERE colName3 = (
MySQL에서 사용자 정의 변수(User-Defined Variables)가 무엇인지, 그리고 실무에서 어떻게 활용할 수 있는지 알아보겠습니다. 먼저 사용자 정의 변수를 다룰 때 반드시 알아야 할 핵심 규칙부터 살펴봅니다.사용자 정의 변수의 주요 규칙사용자 변수는 @var_name 형태로 작성합니다. 여기서 var_name은 변수 이름을 의미하며, 영숫자 문자와 마침표(.), 밑줄(_), 달러 기호($)로 구성됩니다.변수 이름에 위 문자 외의 다른 문자를 포함하려면, 해당 문자를 문자열(string) 또는 식별자(identifier
MySQL에서 외래 키(Foreign Key)는 두 테이블 간의 관계를 정의하고 데이터 무결성을 보장하는 핵심 기능입니다. 이 글에서는 MySQL에서 외래 키가 어떻게 동작하는지, 그리고 실제로 어떻게 적용하는지 예제와 함께 살펴보겠습니다.외래 키 제약 조건과 InnoDB 스토리지 엔진InnoDB 스토리지 엔진을 사용하는 테이블은 외래 키 제약 조건(foreign key constraint) 검사를 지원합니다. 다만, 두 테이블을 단순히 조인(join)하는 목적이라면 외래 키 제약 조건이 반드시 필요한 것은 아닙니다.흥미로운 점은,
Unix 또는 Linux 환경에서 MySQL의 바이너리 기반 설치와 패키지 기반 설치를 업그레이드하는 방법을 알아보겠습니다. MySQL 업그레이드는 크게 인플레이스(In-place) 업그레이드와 논리적(Logical) 업그레이드 두 가지 방식으로 수행할 수 있습니다. 각 방식의 특징과 절차를 자세히 살펴보겠습니다.인플레이스(In-place) 업그레이드인플레이스 업그레이드는 기존 설치 환경을 그대로 유지하면서 새 버전으로 교체하는 방식입니다. 주요 절차는 다음과 같습니다.기존 MySQL 서버를 종료한 후, 이전 버전의 바이너리 또는
MySQL Yum 저장소를 활용하면 MySQL을 손쉽게 업그레이드할 수 있습니다. 이 글에서는 MySQL Yum 저장소를 사용해 MySQL을 업그레이드하는 방법을 단계별로 살펴보겠습니다.MySQL Yum 저장소의 기본 동작 방식기본적으로 MySQL Yum 저장소는 설치 시 사용자가 선택한 릴리스 시리즈 내에서 MySQL을 최신 버전으로 업데이트합니다. 따라서 별도의 설정 없이도 해당 시리즈의 최신 패치와 개선 사항을 적용받을 수 있습니다.만약 다른 릴리스 시리즈로 업그레이드하고 싶다면 추가 작업이 필요합니다. 먼저 현재 선택되어 있
MySQL APT 저장소(MySQL APT Repository)를 활용하면 별도의 재설치 과정 없이 기존 설치된 MySQL을 그 자리에서 바로 업그레이드할 수 있습니다.아래 단계를 순서대로 따라 하면 손쉽게 업그레이드를 진행할 수 있습니다.MySQL 업그레이드 절차1. 사전 준비 사항 확인먼저 사용자 시스템의 저장소 목록에 MySQL APT 저장소가 이미 등록되어 있는지 확인해야 합니다.그다음, 아래 명령어를 실행하여 MySQL APT 저장소에서 제공하는 최신 패키지 정보를 가져옵니다.shell> sudo apt-get upd
MySQL은 MySQL SLES 저장소를 통해 손쉽게 업그레이드할 수 있습니다. 이번 글에서는 SUSE Linux Enterprise Server(SLES) 환경에서 MySQL을 최신 버전으로 업그레이드하는 절차를 단계별로 살펴보겠습니다.업그레이드 전 알아두어야 할 사항기본적으로 MySQL SLES 저장소는 설치 당시 사용자가 선택한 릴리스 시리즈(release series) 내에서 가장 최신 버전으로 MySQL을 업데이트합니다.만약 다른 릴리스 시리즈로 업데이트하고 싶다면, 현재 선택되어 있는 시리즈의 하위 저장소(subrepos
MySQL 쿼리 입력의 기본콘솔에서 쿼리를 입력하기 전에 가장 먼저 확인해야 할 것은 서버에 정상적으로 연결되어 있는지입니다. 연결이 확인되었다면 아래와 같은 간단한 쿼리로 현재 사용 중인 서버의 버전과 오늘 날짜를 확인할 수 있습니다.mysql> SELECT VERSION(), CURRENT_DATE;참고: VERSION() 함수와 CURRENT_DATE는 대소문자를 구분하지 않습니다. 즉, version(), Version(), vERsion()은 모두 동일하게 처리되며, CURRENT_DATE 역시 마찬가지입니다.쿼리 실
MySQL 서버 접속의 기본 개념MySQL 서버에 접속하려면 mysql 클라이언트를 실행할 때 사용자 이름을 반드시 지정해야 하며, 이후 비밀번호를 입력해야 합니다. 만약 접속하려는 MySQL 서버가 현재 로그인한 시스템이 아닌 다른 곳에서 실행 중이라면, 호스트 이름도 함께 지정해야 정상적으로 로그인할 수 있습니다.서버에 접속하는 데 필요한 매개변수(호스트 이름, 사용자 이름 등)를 모른다면, 시스템 관리자에게 문의하여 정확한 접속 정보를 확인하는 것이 좋습니다.MySQL 서버에 접속하기필요한 매개변수를 모두 확인했다면, 아래와
MySQL 설치가 완료되고 SQL 문장을 입력하는 방법을 숙지했다면, 이제 데이터베이스에 접근할 수 있습니다. 데이터베이스의 테이블에서 데이터를 다루기 위해 필요한 기본 단계는 다음과 같습니다.서버에 연결하기데이터베이스 생성하기테이블 생성하기테이블에 데이터 적재하기테이블에서 데이터 조회하기기존 데이터베이스 확인하기새로운 데이터베이스를 만들기 전에, 현재 환경에 어떤 데이터베이스들이 이미 존재하는지 파악하는 것이 중요합니다. 아래 쿼리를 통해 확인할 수 있습니다.쿼리mysql> SHOW DATABASES;실행 결과+-------
데이터베이스나 테이블의 이름, 테이블 구조, 컬럼 이름 등을 잊어버리는 경우는 생각보다 흔합니다. 다행히 MySQL은 데이터베이스와 테이블에 대한 다양한 정보를 조회할 수 있는 여러 문장(statement)을 지원하기 때문에 이러한 문제를 손쉽게 해결할 수 있습니다.SHOW DATABASES 쿼리를 사용하면 서버가 관리하는 모든 데이터베이스 목록을 확인할 수 있으며, 현재 어떤 데이터베이스가 사용 중인지 확인하려면 DATABASE() 함수를 이용하면 됩니다.현재 사용 중인 데이터베이스 확인다음 쿼리로 현재 선택된 데이터베이스를 확인
MySQL은 배치(batch) 모드로 실행할 수 있습니다. 배치 모드란 실행하고자 하는 SQL 문장들을 하나의 파일에 미리 작성해 두고, mysql 클라이언트가 해당 파일을 읽어 들여 순차적으로 처리하도록 하는 방식입니다.배치 모드 기본 사용법실행할 문장들을 파일에 저장한 뒤, 다음과 같이 mysql에게 입력을 해당 파일에서 읽도록 지시하면 됩니다.shell> mysql < batch-fileWindows 환경에서의 주의 사항Windows에서 mysql을 실행하는 경우, 파일에 포함된 특수 문자로 인해 문제가 발생할 수
아파치(Apache)와 MySQL을 함께 사용하는 방법아파치(Apache)는 아파치 소프트웨어 재단(Apache Software Foundation)에서 개발하고 관리하는 대표적인 오픈소스 웹 서버 소프트웨어입니다. 사용자가 웹 페이지에 접근하려고 요청할 때, 이 요청을 받아 처리하는 역할을 담당합니다.아파치는 HTTP 요청에 대해 몇 가지 보안 검사를 수행한 후, 사용자가 요청한 웹 페이지로 안내합니다. 흥미로운 점은 MySQL 데이터베이스를 통해 사용자 인증을 처리할 수 있도록 지원하는 프로그램들이 여럿 존재한다는 것입니다. 또
MySQL을 성공적으로 설치한 후에는 반드시 수행해야 하는 사후 설정과 테스트 작업이 있습니다. 이 글에서는 설치 직후 진행해야 할 핵심 단계를 하나씩 살펴보겠습니다.데이터 디렉터리 초기화필요한 경우 데이터 디렉터리를 초기화하고 MySQL 권한 부여 테이블(grant tables)을 생성해야 합니다. 일부 MySQL 설치 방식에서는 이 과정이 자동으로 처리되지만, 그렇지 않은 경우 수동으로 진행해야 합니다.설치 방식별 자동 초기화 여부Windows 환경에서는 MySQL 인스톨러가 설치 작업 전반을 담당하며, 데이터 디렉터리 초기화도
MySQL 설치 버전을 업그레이드할 때는 일반적으로 아래와 같은 단계를 거칩니다.업그레이드 경로 확인업그레이드를 위한 설치 환경 사전 준비Unix 또는 Linux 환경에서 MySQL 바이너리 또는 패키지 기반 설치 업그레이드MySQL Yum 저장소, APT 저장소, SLES 저장소를 활용하거나 Windows 환경에서의 업그레이드 수행Docker로 설치한 MySQL 업그레이드 진행업그레이드 후 발생할 수 있는 문제 해결(Troubleshooting)필요에 따라 테이블 또는 인덱스 재구축 및 복구 작업 수행MySQL 데이터베이스를 다른
Unix 또는 Linux 환경에서 MySQL의 바이너리 및 패키지 기반 설치를 다운그레이드하는 방법을 살펴보겠습니다. 다운그레이드는 여러 가지 방식으로 수행할 수 있으며, 대표적으로 제자리 다운그레이드(In-Place Downgrade)와 논리적 다운그레이드(Logical Downgrade) 두 가지 방법이 사용됩니다. 제자리 다운그레이드 (In-Place Downgrade) 먼저 새로운 MySQL 버전을 종료합니다. 새 MySQL 바이너리 또는 패키지를 이전 버전의 바이너리 또는 패키지로 교체합니다. 기존 데이터 디렉터리를 그
MySQL의 소스 코드에는 Doxygen을 사용해 작성된 내부 문서가 상당히 많이 포함되어 있습니다. 이 Doxygen 콘텐츠는 https://dev.mysql.com/doc/index-other.html에서 온라인으로 확인할 수 있으며, MySQL 소스 배포판을 통해 로컬 환경에서 직접 생성할 수도 있습니다. 이 글에서는 로컬에서 Doxygen 문서를 생성하는 전체 과정을 단계별로 살펴보겠습니다. 1단계: Doxygen 설치 가장 먼저 해야 할 일은 Doxygen 1.8.11 이상 버전을 설치하는 것입니다. 공식 배포판은 ht