데이터베이스 작업 중에는 동일한 ID가 여러 번 나타나는 행들의 값을 하나로 합산해야 하는 경우가 자주 발생합니다. MySQL에서는 집계 함수 SUM()을 사용하면 이러한 작업을 손쉽게 처리할 수 있습니다. 지금부터 예제를 통해 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 만들어 보겠습니다.mysql> create table DemoTable850( Id int, Price int);Query OK, 0 rows af
MySQL에서 테이블을 TRUNCATE로 비운 뒤, AUTO_INCREMENT(자동 증가) 시작 값을 원하는 특정 숫자로 변경하고 싶은 경우가 종종 있습니다. 예를 들어, 새로운 데이터를 1번이 아닌 2000번부터 시작하게 만들고 싶다면 ALTER TABLE 문을 활용하면 됩니다. 이 글에서는 전체 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 AUTO_INCREMENT가 적용된 기본키 컬럼을 가진 테이블을 생성합니다. mysql> create table DemoTable825(Value int NOT NULL
개요MySQL에서 BOOLEAN 타입은 내부적으로 TINYINT(1)로 처리됩니다. 그렇기 때문에 데이터를 조회하면 true는 1, false는 0으로 출력됩니다. 이 글에서는 부울 값으로 저장된 성별(Gender) 데이터를 MALE, FEMALE과 같은 문자열로 변환하여 추출하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 Gender 컬럼을 BOOLEAN 타입으로 가지는 테이블을 생성합니다.mysql> create table DemoTable815(Gender BOOLEAN);Query OK, 0 rows aff
이 글에서는 INSERT 쿼리만을 사용하여 날짜 데이터를 삽입하면서 동시에 원하는 만큼 더해진(갱신된) 값을 저장하는 방법을 예제와 함께 살펴보겠습니다. 별도의 UPDATE 문 없이 DATE_ADD() 함수를 활용하면 분, 시간, 일, 월, 년 단위로 날짜를 조정한 상태로 바로 저장할 수 있습니다.1. 테이블 생성하기먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable816(DueDate datetime);Query OK, 0 rows affected (0.45 se
MySQL에서 사용자의 모든 권한(GRANT) 확인하기 MySQL에서 특정 사용자에게 부여된 모든 권한을 한눈에 확인하고 싶다면 INFORMATION_SCHEMA.SCHEMA_PRIVILEGES 테이블을 조회하면 됩니다. 이 테이블에는 데이터베이스(스키마) 수준에서 각 계정에 부여된 권한 정보가 기록되어 있어, 권한 감사나 사용자 관리 작업에 매우 유용합니다. 기본 조회 문법 아래 쿼리를 실행하면 시스템에 등록된 모든 스키마 권한 목록을 확인할 수 있습니다. SELECT * FROM INFORMATION_SCHEMA.SCHEMA_
MySQL에서 특정 컬럼의 NULL 값만 다른 값으로 바꾸고 싶다면 IFNULL() 함수와 UPDATE ... SET 구문을 함께 사용하면 됩니다. IFNULL(값, 대체값)은 첫 번째 인자가 NULL일 때 두 번째 인자로 지정한 값을 반환하고, NULL이 아니면 원래 값을 그대로 유지합니다.실제 동작 과정을 예제와 함께 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 정수 타입 컬럼 하나를 가진 테이블을 만들어 보겠습니다.mysql> create table DemoTable817(Value int); Query OK, 0
MySQL에서 특정 조건을 만족하는 데이터만 추출해야 할 때는 서브쿼리(subquery)를 활용하면 간단하게 해결할 수 있습니다. 이번 글에서는 열 값의 합계가 150 미만이 되는 행만 조회한 뒤, 그 결과를 내림차순으로 정렬하는 방법을 예제와 함께 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable844( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Amount int ); Query OK
MySQL에서 저장된 MD5 암호 해시를 SHA256으로 변환하려면 SHA2() 함수를 사용할 수 있습니다. 이 함수는 SHA-2 계열의 해시 알고리즘(SHA-224, SHA-256, SHA-384, SHA-512)을 지원하며, 두 번째 인자로 원하는 비트 길이를 지정하면 됩니다.1. 테이블 생성먼저 암호를 저장할 테이블을 생성합니다.mysql> create table DemoTable818(UserPassword text); Query OK, 0 rows affected (0.51 sec)2. 샘플 데이터 삽입INSERT 명
MySQL에서 YYYY-MM-DD 날짜를 DD Month, YYYY 형식으로 변환하기MySQL에서는 DATE_FORMAT() 함수를 사용하여 날짜 형식을 자유롭게 변환할 수 있습니다. 이 글에서는 YYYY-MM-DD 형태로 저장된 날짜를 21 January, 2018과 같은 DD Month, YYYY 형식으로 변환하는 방법을 예제와 함께 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable845(AdmissionDate date);Query OK, 0 row
MySQL에서는 WHERE 절에 여러 조건을 AND 연산자로 결합하여 특정 레코드를 정확하게 조회할 수 있습니다. 이번 글에서는 학생 테이블을 만들고, 이름(StudentName)과 아이디(StudentId) 두 가지 조건을 동시에 적용해 원하는 데이터를 선택하는 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 예제로 사용할 테이블을 생성합니다. StudentId는 자동 증가(AUTO_INCREMENT)되는 기본 키로 설정하고, StudentName은 최대 100자의 문자열로 지정합니다. mysql> create
MySQL에서 CREATE DATABASE 명령을 실행하기 전에 해당 사용자에게 충분한 권한이 있는지 먼저 확인하는 것이 좋습니다. 권한 부족으로 인해 오류가 발생하는 것을 미리 방지할 수 있기 때문입니다.사용자 권한(Grants) 조회 기본 문법사용자의 권한 목록을 확인하려면 다음과 같은 문법을 사용합니다.show grants for yourUserName;아래에서 실제 예시를 통해 데이터베이스 생성 전 사용자 권한을 확인하는 방법을 살펴보겠습니다.Case 1: 현재 사용자(root)의 권한 확인현재 로그인된 사용자가 root인
MySQL에서 마지막 5개 레코드만 조회하기MySQL에서 테이블에 저장된 레코드 중 마지막(가장 최근) 5개만 가져오고 싶다면 ORDER BY 절과 LIMIT 절을 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.select * from yourTableName order by yourColumnName DESC LIMIT 5;컬럼을 내림차순(DESC)으로 정렬한 뒤 상위 5개만 제한하면, 결과적으로 가장 나중에 저장된 5개의 레코드를 얻을 수 있습니다. 아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.1단계: 테이블
MySQL에서 특정 조건에 맞는 레코드를 우선적으로 정렬하려면 ORDER BY 절과 LIKE 연산자, 그리고 CASE 표현식을 함께 사용하면 됩니다. 이 방법을 활용하면 원하는 패턴과 일치하는 데이터를 맨 앞으로 보내고, 나머지 데이터는 일반적인 기준으로 정렬할 수 있습니다.1. 예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable808(Value varchar(100)); Query OK, 0 rows affected (0.61 sec)2. 샘플 데이터 삽입하기INS
MySQL에서 현재 날짜보다 이전의 행 선택하기MySQL에서 현재 날짜보다 과거의 데이터를 조회해야 하는 경우가 자주 있습니다. 예를 들어 마감일이 지난 작업을 찾거나 만료된 기록을 필터링할 때 유용합니다. NOW() 함수를 활용하면 간단하게 처리할 수 있습니다.현재 날짜가 2019-08-03이라고 가정하고, 실제 예제를 통해 살펴보겠습니다.1. 테이블 생성먼저 날짜를 저장할 테이블을 생성합니다.mysql> create table DemoTable840(DueDate datetime);Query OK, 0 rows affect
MySQL에서 열의 값을 이전 행의 값과 차례대로 더해 누적 합계(cumulative sum)를 구하려면 세션 변수(session variable)를 활용하는 방법이 가장 간단합니다. 세션 변수는 @ 기호로 선언되며, 한 세션 안에서 값이 계속 유지되기 때문에 각 행마다 이전 결과를 참조할 수 있습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 만들어 보겠습니다. mysql> create table DemoTable809(Price int); Query OK, 0 rows affected (0.53 sec) 2. 데이
MySQL에서는 단일 열뿐만 아니라 두 개 이상의 열을 조합해서도 IN 조건을 사용할 수 있습니다. 이 방식은 행 생성자(row constructor)라고 불리며, 여러 열의 값 조합이 특정 패턴과 일치하는 레코드만 필터링할 때 매우 유용합니다.이 글에서는 예제 테이블을 만들고, 두 개의 열(First, Second)에 대해 IN 조건을 적용해 원하는 레코드만 조회하는 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 두 개의 정수형 열을 가진 테이블을 생성합니다.mysql> create table DemoTable81
MySQL에서는 GROUP BY 절과 COUNT() 함수를 함께 사용하면 특정 열의 값별로 몇 개의 행이 존재하는지 손쉽게 집계할 수 있습니다. 이 글에서는 실제 예제 테이블을 만들고 데이터를 삽입한 뒤, 열 값별 행 개수를 구하는 전체 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. Id 컬럼은 자동 증가(AUTO_INCREMENT) 기본 키로 설정하고, Value 컬럼에는 문자열 값을 저장하도록 구성했습니다.mysql> create table DemoTable841( I
MySQL에서 여러 행을 한 번에 삽입하는 방법네, 가능합니다. MySQL에서는 INSERT 문 하나만으로 두 개 이상의 행(레코드)을 동시에 테이블에 삽입할 수 있습니다. VALUES 절 뒤에 쉼표(,)로 구분하여 여러 개의 값 묶음을 나열하면 됩니다.기본 구문INSERT INTO yourTableName(yourColumnName1, yourColumnName2)VALUES(yourValue1, yourValue2),(yourValue1, yourValue2),.........N;이 방식은 각 행마다 별도의 INSERT 문을 실
네, MySQL 4.0 버전부터 InnoDB는 기본적으로 활성화되어 있습니다. 이 글에서는 MySQL 8.0.12 버전을 기준으로 설명합니다.1. MySQL 버전 확인먼저 현재 사용 중인 MySQL 버전을 확인해 보겠습니다.mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)2. my.ini 설정 파일에서 기본 엔진 확인MySQL 설정 파일인 my.ini를 열어보면 기본
키워드를 기준으로 검색 결과를 표시하려면 MySQL의 LIKE 연산자를 사용하면 됩니다. LIKE 연산자는 특정 문자열 패턴이 포함된 데이터를 찾아주는 강력한 도구로, 간단한 검색 기능을 구현할 때 매우 유용합니다.LIKE 연산자 기본 문법다음은 LIKE 연산자를 사용하여 특정 키워드가 포함된 레코드를 조회하는 기본 문법입니다.select * from yourTableName where yourColumnName LIKE %yourValue%;여기서 %는 와일드카드 문자로, 앞뒤에 어떤 문자열이 와도 상관없다는 의미입니다. 즉, %