MySQL에서 시스템 변수를 확인할 때 SHOW VARIABLES 명령어를 사용합니다. 그런데 특정 이름 패턴을 가진 변수만 골라서 보고 싶거나, 서로 다른 여러 그룹의 변수를 동시에 조회하고 싶다면 어떻게 해야 할까요? 이때 WHERE 절과 LIKE 연산자를 OR 조건과 함께 사용하면 됩니다.기본 문법여러 개의 변수를 한 번에 표시하는 기본 문법은 다음과 같습니다.show variables where Variable_name like yourVariable1% or Variable_name like yourVariable2%, .
MySQL에서 하나의 컬럼에 쉼표(,)로 구분된 여러 개의 ID가 저장되어 있을 때, 그중 특정 ID를 포함하는 행을 찾아야 하는 경우가 있습니다. 이럴 때 유용하게 사용할 수 있는 함수가 바로 FIND_IN_SET()입니다. 이 글에서는 실제 예제를 통해 FIND_IN_SET() 함수의 사용법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 쉼표로 구분된 ID 목록을 저장할 테이블을 생성합니다.mysql> create table DemoTable-> (-> ListOfIds varchar(200)-> );Q
MySQL에서 ALTER TABLE 없이 이미 생성된 테이블에 새로운 열을 추가하고 싶다면, SELECT 문에서 리터럴 값과 별칭(Alias)을 활용하는 방법을 사용할 수 있습니다. 이 방법은 실제 테이블 구조를 변경하지 않으면서 조회 결과에만 가상의 열을 만들어 줍니다. 1. 테이블 생성 먼저 예제로 사용할 테이블을 생성해 보겠습니다. mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> N
MySQL에서 점수처럼 숫자 형태의 데이터를 varchar 타입 컬럼에 저장한 경우, 단순히 비교 연산자(>, <)만 사용하면 문자열 기준으로 비교되기 때문에 의도와 다른 결과가 나올 수 있습니다. 예를 들어 문자열 비교에서는 100이 90보다 작다고 판단됩니다. 이러한 문제를 해결하려면 CAST() 함수를 사용해 문자열을 숫자로 변환한 후 비교해야 합니다. 아래 예제를 통해 자세히 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable &
문자열 형태로 저장된 날짜 값을 str_to_date() 함수로 변환한 뒤 특정 일수를 더하고 싶다면, MySQL에서 제공하는 DATE_ADD() 함수를 활용하면 됩니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 배송 날짜를 문자열(varchar)로 저장하는 테이블을 생성합니다.mysql> create table DemoTable-> (-> ShippingDate varchar(100)-> );Query OK, 0 rows affected (0.67 sec)2.
파일 시스템 경로처럼 슬래시(/)가 포함된 문자열을 저장하는 열에서, 마지막 / 뒤에 있는 부분만 다른 값으로 교체해야 하는 경우가 종종 있습니다. 예를 들어 폴더 이름이 변경되었을 때 전체 경로 중 마지막 세그먼트만 갱신하고 싶다면, MySQL의 SUBSTRING_INDEX() 함수와 CONCAT() 함수를 조합하면 손쉽게 처리할 수 있습니다.1. 테이블 생성하기먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable -> ( &nbs
MySQL에서 두 개 이상의 열에 저장된 시간 값 사이의 차이를 계산하려면 TIMEDIFF() 함수와 TIME_FORMAT() 함수를 함께 사용하면 됩니다. 아래 예제에서는 직원의 출근 시간, 퇴근 시간, 점심시간이 저장된 테이블에서 실제 근무 시간을 계산하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 출근 시간(PunchIn), 퇴근 시간(PunchOut), 점심시간(Launch)을 저장할 테이블을 생성합니다.mysql> create table DemoTable -> ( -> PunchIn
```html MySQL에서 테이블의 AUTO_INCREMENT 값을 처음부터 다시 시작하도록 초기화하려면 TRUNCATE TABLE 명령어를 사용하면 됩니다. TRUNCATE는 테이블의 모든 데이터를 삭제할 뿐만 아니라 자동 증가 카운터도 1로 되돌려 줍니다.TRUNCATE TABLE yourTableName;단순히 DELETE 문으로 데이터를 삭제하는 것과 달리, TRUNCATE는 AUTO_INCREMENT 값까지 함께 초기화한다는 점이 핵심입니다.1. 테스트용 테이블 생성먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql
MySQL에서 특정 사용자에게 부여된 권한(Grant) 목록을 확인하고 싶다면 SHOW GRANTS 문을 사용하면 됩니다. 이 명령어는 해당 계정에 적용된 모든 권한 설정을 한눈에 보여주므로, 권한 관리나 보안 점검 시 매우 유용합니다.SHOW GRANTS 기본 문법SHOW GRANTS FOR 사용자이름@호스트이름;여기서 호스트 이름(HostName)은 %(모든 호스트 허용) 또는 localhost(로컬 접속만 허용)로 지정할 수 있습니다.루트(root) 계정 권한 조회 예제실제로 루트 계정에 부여된 권한을 확인하려면 아래와 같이
MySQL에서 현재 날짜(CURDATE())부터 3개월 전까지의 기간에 해당하는 데이터를 조회하려면 BETWEEN 연산자와 INTERVAL 키워드를 함께 사용하면 됩니다. 이 방법은 최근 3개월 이내에 등록된 기록만 필터링할 때 특히 유용합니다.테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable -> ( -> AdmissionDate date &nbs
MySQL에서는 UPDATE 문과 SET 절을 사용하여 하나의 행에 있는 여러 열의 값을 동시에 수정할 수 있습니다. 이 글에서는 실제 예제를 통해 특정 조건에 맞는 한 개의 행에서 두 개 이상의 열을 업데이트하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable-> (-> FirstName varchar(100),-> Age int,-> Score int-> );Query OK, 0 rows affected
MySQL에서 GROUP BY 절과 조건을 함께 사용하면 각 그룹별로 NULL 또는 빈 문자열()이 아닌 값만 효율적으로 추출할 수 있습니다. 이 글에서는 실제 예제를 통해 단계별로 그 방법을 살펴보겠습니다.1. 샘플 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable-> (-> Id varchar(100),-> Message varchar(200)-> );Query OK, 0 rows affected (1.17 sec)2. 데이터 삽입INSERT 명령을
MySQL에서 영숫자가 섞인 문자열 열을 단순히 ORDER BY로 정렬하면 의도한 순서대로 결과가 나오지 않는 경우가 많습니다. 예를 들어 S/TU/10, S/TU/100, S/TU/1000 같은 값은 문자열 비교 방식 때문에 숫자 크기 순서대로 정렬되지 않습니다. 이럴 때 LIKE 연산자와 SUBSTRING() 함수를 함께 활용하면 원하는 순서대로 정렬할 수 있습니다.1. 테이블 생성먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable -> (&n
MySQL에서 NULL 값을 무시하고 특정 열의 값 개수를 계산하려면 COUNT() 함수를 사용하면 됩니다. COUNT() 함수는 기본적으로 NULL 값을 집계에서 제외하기 때문에 별도의 조건 처리 없이 간단하게 원하는 결과를 얻을 수 있습니다.실제 예제를 통해 확인해 보겠습니다. 먼저 테이블을 생성합니다.mysql> create table DemoTable-> (-> Name varchar(100),-> CountryName varchar(100)-> );Query OK, 0 rows affected (
MySQL에서 LIMIT은 조회하고자 하는 레코드의 개수를 지정하는 반면, OFFSET은 지정된 위치+1번째부터 레코드를 반환합니다. 즉, OFFSET 값이 3이면 4번째 레코드부터 결과를 가져오게 됩니다.이 두 절을 함께 사용하면 페이징 처리나 특정 범위의 데이터 조회에 매우 유용합니다. 실제 예제를 통해 동작 방식을 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable-> (-> Name varchar(100)-> );Query OK, 0
MySQL에서 여러 행이 공유하는 동일한 열 값을 찾으려면 GROUP BY 절과 HAVING 절을 함께 사용하면 됩니다. 이 글에서는 예제 테이블을 직접 만들어 보면서 단계별로 쿼리를 작성하는 방법을 살펴보겠습니다. 1단계: 예제 테이블 생성 먼저 학생 정보를 담을 테이블을 생성합니다. mysql> create table DemoTable -> ( -> StudentId int, -> StudentMarks int -> ); Query OK, 0 rows affected (4
MySQL에서 두 개의 조건으로 카운트 집계하기MySQL에서 두 개의 서로 다른 조건을 기준으로 레코드 수를 집계하려면 CASE 문을 활용하는 것이 가장 효과적입니다. CASE 문은 조건에 따라 서로 다른 값을 반환할 수 있기 때문에, GROUP BY 절과 함께 사용하면 특정 조건을 만족하는 행만 골라 합산하는 조건부 집계를 간단하게 구현할 수 있습니다.아래 예제에서는 학생 점수(StudentMarks)별로 레코드를 그룹화하고, 점수가 45점인 경우에는 유효 여부(isValid)가 1인 행만 카운트하며, 그 외의 점수는 모든 행을
MySQL에서 datetime 타입의 데이터에서 분(Minute) 값만 추출하고 싶다면 MINUTE() 함수를 사용하면 됩니다. 아래에서 예제 테이블 생성부터 분 추출까지 전체 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성하기먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable -> ( -> ShippingDate datetime -> ); Query OK, 0 rows affected (0.52 sec)2. 샘플 데이터
MySQL에서는 INSERT ... SELECT 구문을 사용하면 한 테이블에서 특정 필드를 조회한 결과를 그대로 다른 테이블에 삽입할 수 있습니다. 조건(WHERE 절)을 함께 사용하면 원하는 행만 골라서 복사하는 것도 가능합니다.아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.1. 첫 번째 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1 -> ( -> StudentId int, -> StudentName varchar(20)
MySQL에서 DATE 타입의 열과 TIME 타입의 열에 각각 저장된 값을 하나의 DATETIME 열로 합치려면 CONCAT() 함수를 사용하면 됩니다. 이 함수는 여러 문자열을 하나로 연결해 주기 때문에, 날짜와 시간 사이에 공백만 넣어주면 손쉽게 datetime 형식의 값을 만들 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable-> (-> ShippingDate date,-> ShippingTime time,-> ShippingDatetim