MySQL의 UNHEX() 함수는 이름에서 알 수 있듯이 HEX() 함수와 정반대의 역할을 수행합니다. 즉, 16진수 문자열을 해당 숫자가 나타내는 바이트 값으로 변환해 주며, 그 결과는 바이너리(binary) 문자열 형태로 반환됩니다.UNHEX() 함수 문법UNHEX(str)여기서 str은 바이트로 변환하고자 하는 문자열입니다. 이때 str에 포함된 문자들은 반드시 유효한 16진수 숫자(0~9, A~F)여야 합니다.UNHEX() 함수 예제다음 예제는 16진수 문자열 5475746F7269616C73706F696E74를 원래의 텍스
MySQL에서는 UNHEX() 함수의 인수로 유효하지 않은 16진수 문자열을 전달하면 NULL을 반환합니다. 아래 예제를 통해 이를 직접 확인해 보겠습니다.예제mysql> Select UNHEX(ANK96598); +-------------------+ | UNHEX(ANK96598) | +-------------------+ | NULL | +-------------------+ 1 row in set (0.00 sec)유효한 16진수 자릿수는 0~9, A~F, a~f 범위의 문자로 제한됩니다. 위 쿼
MySQL의 빈 16진수 값 처리 방식MySQL에서는 빈(empty) 16진수 값을 길이가 0인 바이너리 문자열(binary string)로 평가합니다. 즉, 아무 문자도 포함하지 않은 16진수 리터럴이 입력되더라도 에러가 발생하는 것이 아니라, 캐릭터셋이 binary이고 길이가 0인 문자열로 인식됩니다.실제 예제를 통해 이를 확인해 보겠습니다.1. CHARSET() 함수로 데이터 타입 확인하기빈 16진수 값에 CHARSET() 함수를 적용하면 결과는 다음과 같습니다.mysql> Select CHARSET(X); +------
빈 16진수 값을 숫자로 변환하면?MySQL에서 빈(empty) 16진수 값은 길이가 0인 이진 문자열(binary string)로 취급됩니다. 따라서 이 값에 숫자 0을 더하면 그 결과는 항상 0이 됩니다.다시 말해, 빈 16진수 값을 숫자로 변환하면 MySQL은 0을 반환합니다. 아래 쿼리를 실행하면 이를 직접 확인할 수 있습니다.예제 쿼리mysql> SELECT X+ 0; +--------+ | X+ 0 | +--------+ | 0 | +--------+ 1 row in set (0.15 sec)결과 해석위 결
MySQL 쿼리 옵티마이저와 키 분포의 역할MySQL 쿼리 옵티마이저(query optimizer)는 MySQL 서버의 핵심 구성 요소로, 각 쿼리에 대해 가장 효율적인 실행 계획(execution plan)을 수립하는 역할을 담당합니다. 특정 쿼리를 처리할 때 옵티마이저는 저장된 키 분포(key distribution) 정보와 여러 통계 요소를 참조하여, 조인 수행 시 테이블을 결합하는 순서와 각 테이블에 사용할 인덱스를 결정합니다.그러나 키 분포 정보가 항상 정확한 것은 아닙니다. 테이블에서 INSERT, DELETE, UPDA
예제 데이터 준비ipaddress라는 테이블에 IP 컬럼에 IP 주소들이 저장되어 있다고 가정해 보겠습니다.mysql> Select * from ipaddress; +-----------------+ | ip | +-----------------+ | 192.128.0.5 | | 255.255.255.255 | | 192.0.255.255 | | 192.0.1.5 | +-----------------+ 4 rows in set (0.10 sec)SUBSTRING_INDEX() 함수로
중첩된 SUBSTRING_INDEX() 함수 활용하기문자열 내에서 동일한 구분 기호 두 개 사이에 위치한 부분 문자열(substring)을 추출하려면, SUBSTRING_INDEX() 함수를 중첩(nested) 형태로 사용해야 합니다.예제: www.tutorialspoint.com에서 tutorialspoint 추출하기예를 들어, 문자열 www.tutorialspoint.com에서 마침표(.)라는 동일한 구분 기호 두 개 사이에 있는 tutorialspoint 부분만 출력하고 싶다고 가정해 보겠습니다. 이 경우 SUBSTRING_I
MySQL에서는 SET PASSWORD 문을 사용하여 사용자의 비밀번호를 변경할 수 있습니다. 이 명령문을 실행하기 전에 해당 사용자에 대해 최소한 UPDATE 권한을 가지고 있어야 합니다.기본 문법SET PASSWORD FOR user_name@host_name = new_password;각 구성 요소의 의미는 다음과 같습니다.new_password: MySQL 사용자에게 새로 설정하고자 하는 비밀번호입니다.user_name: 현재 비밀번호를 변경할 사용자의 이름입니다.host_name: 해당 사용자가 접속하는 호스트의 이름입니다
MySQL에서 사용자 비밀번호를 변경할 때는 ALTER USER 문과 IDENTIFIED BY 절을 함께 사용하면 됩니다. 이 방법은 간단하고 직관적이어서 가장 널리 쓰이는 비밀번호 변경 방식 중 하나입니다.기본 문법ALTER USER user_name@host_name IDENTIFIED BY new_password;각 구성 요소의 의미는 다음과 같습니다.new_password : 해당 MySQL 사용자에게 새로 설정하려는 비밀번호입니다.user_name : 비밀번호를 변경하려는 기존 사용자의 이름입니다.host_name : 해당
MySQL은 정교한 액세스 제어 및 권한(privilege) 시스템을 갖추고 있어, 클라이언트 작업을 처리하기 위한 포괄적인 접근 규칙을 만들 수 있습니다. 이를 통해 권한이 없는 클라이언트가 데이터베이스 시스템에 접근하는 것을 효과적으로 차단합니다.클라이언트가 서버에 접속할 때 MySQL의 액세스 제어는 크게 두 단계로 이루어집니다.1단계: 연결 검증(Connection Verification)MySQL 데이터베이스 서버에 접속하려는 클라이언트는 유효한 사용자 이름(username)과 비밀번호(password)를 반드시 제공해야
MySQL SUBSTRING_INDEX() 함수로 이름 문자열을 두 부분으로 나누는 방법이해를 돕기 위해 customerdetail 테이블에 저장된 다음 데이터를 사용하겠습니다.mysql> Select * from Customerdetail; +----------------------+----------------------+-----------+---------------------+ | Name | FName | Address | Emailid
MySQL 서버를 설치하면 mysql이라는 이름의 시스템 데이터베이스가 자동으로 생성됩니다. 이 mysql 데이터베이스에는 다섯 개의 핵심 권한(grant) 테이블이 포함되어 있으며, MySQL 서버는 바로 이 테이블들을 통해 데이터베이스 서버 전반의 접근 권한을 통제합니다. 각 테이블의 역할을 살펴보겠습니다.user 테이블user 테이블에는 사용자 계정 정보와 전역(global) 권한 컬럼이 저장됩니다. MySQL은 이 테이블을 참조하여 특정 호스트에서 들어오는 연결 요청을 허용할지 거부할지를 결정합니다. user 테이블에서 부여
MySQL 데이터베이스 서버에는 mysql 데이터베이스 내에 사용자 계정 정보를 저장하는 user 테이블이 있습니다. 이 테이블을 활용하면 MySQL 데이터베이스 서버에서 새로운 사용자 계정을 손쉽게 생성할 수 있습니다.사용자 계정 생성 시 필요한 요소새로운 사용자 계정을 만들 때는 반드시 두 가지 정보가 필요합니다. 첫 번째는 사용자 이름(username)이고, 두 번째는 @ 문자 뒤에 오는 호스트명(hostname)입니다. 호스트명은 해당 사용자가 어느 호스트에서 접속할 수 있는지를 지정하는 역할을 합니다.기본 문법Use mys
MySQL에서 특정 사용자 계정이 모든 호스트에서 접속할 수 있도록 허용하는 것은 충분히 가능합니다. 핵심은 @ 문자 뒤에 % 와일드카드(wildcard) 문자를 지정하여 사용자를 생성하는 것입니다.기본 문법USE mysql;CREATE USER user_name@% IDENTIFIED BY password;각 구성 요소의 의미는 다음과 같습니다.user_name: 계정을 생성하고자 하는 사용자의 이름입니다.password: 해당 사용자 계정에 설정할 비밀번호입니다. MySQL 서버는 이 비밀번호를 통해 사용자를 식별하고 인증합니다
이해를 돕기 위해 customerdetail이라는 테이블에 저장된 다음 데이터를 사용하겠습니다.mysql> Select * from Customerdetail; +----------------------+----------------------+----------+---------------------+ | Name | FName | Address | Emailid | +----------------------+---------------------
mysqladmin으로 MySQL 서버 버전 확인하기MySQL 서버의 버전을 확인하는 가장 간단한 방법 중 하나는 mysqladmin 프로그램을 사용하는 것입니다. mysqladmin은 MySQL에 기본으로 포함된 관리 도구로, 명령줄(터미널)에서 간단한 명령어 한 줄만 입력하면 서버 버전은 물론 다양한 운영 상태 정보까지 확인할 수 있습니다.명령어 실행 방법명령줄에서 다음과 같이 입력합니다.C:\mysql\bin>mysqladmin -u root version-u root는 root 계정으로 접속한다는 의미입니다. 비밀번호가
mysqladmin을 이용한 MySQL 서버 종료MySQL 서버를 종료하는 가장 간단하고 확실한 방법은 mysqladmin 유틸리티를 사용하는 것입니다. mysqladmin은 MySQL과 함께 기본으로 제공되는 관리 도구로, 서버 시작·종료는 물론 상태 확인 등 다양한 관리 작업을 명령줄에서 수행할 수 있습니다.종료 명령어 실행 방법명령 프롬프트(터미널)에서 아래와 같이 입력하면 MySQL 서버를 종료할 수 있습니다.C:\mysql\bin>mysqladmin -u root shutdown실행 후 화면에 아무것도 표시되지 않는
MySQL의 CHAR_LENGTH() 함수는 지정된 문자열의 길이를 반환하는 데 사용됩니다. 이 함수는 단순히 문자의 개수만 세기 때문에, 해당 문자가 싱글 바이트(single-byte)인지 멀티 바이트(multi-byte)인지는 구분하지 않습니다.또한 MySQL에서는 CHARACTER_LENGTH() 함수가 CHAR_LENGTH() 함수의 동의어(synonym)로 제공됩니다. 즉, 두 함수는 완전히 동일한 기능을 수행하며 어떤 것을 사용해도 결과는 같습니다.CHAR_LENGTH() 함수 문법CHAR_LENGTH(Str)여기서 St
MySQL 데이터베이스는 MySQL 서버를 효율적으로 운영하고 관리할 수 있도록 다양한 관리용 프로그램을 제공합니다. 각 프로그램의 역할과 특징을 하나씩 자세히 살펴보겠습니다.1. mysqldmysqld는 MySQL 서버 데몬이라고도 불리며, MySQL 설치 환경에서 가장 핵심적인 역할을 담당하는 메인 프로그램입니다. MySQL 서버를 시작하려면 반드시 이 프로그램을 사용해야 하며, 서버 구동 시점에 다양한 옵션을 지정해 동작 방식을 세부적으로 설정할 수 있습니다.2. mysqladminmysqladmin은 관리 작업을 수행하기 위
MySQL 서버 상태 확인하기MySQL 서버가 정상적으로 작동하고 있는지 확인하려면 mysqladmin 유틸리티와 함께 status 옵션을 사용하면 됩니다. 이 명령어는 서버의 가동 시간, 스레드 수, 처리된 쿼리 수 등 핵심 운영 지표를 한눈에 보여주기 때문에 서버 관리 시 매우 유용합니다.명령어 사용 예시명령줄(커맨드 라인)에서 다음과 같이 입력하면 MySQL 서버의 현재 상태를 즉시 확인할 수 있습니다.C:\mysql\bin>mysqladmin -u root status Uptime: 3865 Threads: 1 Ques