MySQL에서 특정 값 목록(집합 배열)에 포함되지 않은 레코드만 조회하고 싶다면 NOT IN() 함수를 사용하면 됩니다. 이 함수는 지정한 값 집합에 해당 컬럼의 값이 속하지 않는 행만 필터링하여 반환합니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable718 ( Id int, FirstName varchar(100), Age int ); Query OK, 0 rows affected (0.59 sec)2. 샘플 데이터 삽입하기INSERT
MySQL에서 슬래시(/) 연산자란?MySQL 쿼리에서 슬래시(/)는 나눗셈(division)을 의미하는 산술 연산자입니다. 이 연산자를 사용하면 두 숫자를 나눌 수 있으며, 특히 두 개의 컬럼에 저장된 값을 서로 나누어 새로운 컬럼에 결과를 표시할 때 유용하게 활용됩니다.이번 글에서는 실제 예제를 통해 슬래시 연산자로 두 컬럼의 값을 나누고, 그 결과를 별도의 컬럼으로 출력하는 방법을 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 나눗셈에 사용할 숫자를 저장할 테이블을 생성합니다.mysql> create table De
MySQL에서는 WHERE 절과 비교 연산자를 활용하여 특정 날짜 이후의 레코드를 손쉽게 조회할 수 있습니다. 이번 글에서는 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable708 ( CustomerName varchar(100), ShippingDate date ); Query OK, 0 rows affected (0.51 sec)고객 이름(CustomerName)과 배송 날짜(ShippingDate) 두 개의 컬
MySQL에서 쿼리를 실행하면서 그 결과를 화면에 출력하지 않아야 하는 경우가 있습니다. 예를 들어 계산 결과만 변수에 저장해 두고 나중에 활용하고 싶을 때 유용합니다. 이때 사용자 정의 변수(User-defined Variable)를 활용하면 간단하게 해결할 수 있습니다.1. 테스트용 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable709 (Amount int); Query OK, 0 rows affected (0.62 sec)2. 데이터 삽입INSERT 명령을 사용하여
MySQL에서 테이블의 최대 ID 값을 구하려면 MAX() 집계 함수를 사용하면 됩니다. MAX() 함수는 지정한 컬럼의 값 중 가장 큰 값을 반환하며, 숫자형 컬럼뿐 아니라 날짜나 문자열 컬럼에도 활용할 수 있습니다.기본 문법SELECT MAX(yourColumnName) AS anyAliasName FROM yourTableName;AS 키워드를 사용해 별칭(alias)을 지정하면 결과 컬럼의 이름을 원하는 대로 표시할 수 있어 가독성이 좋아집니다.예제 테이블 생성먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql>
네, MySQL에서는 DROP 구문을 사용하여 테이블의 기본 키(Primary Key)를 제거할 수 있습니다. 기본 문법은 다음과 같습니다.ALTER TABLE 테이블이름 DROP PRIMARY KEY;1. 예제 테이블 생성하기먼저 실습용 테이블을 하나 만들어 보겠습니다.mysql> CREATE TABLE DemoTable ( UserId int NOT NULL PRIMARY KEY ); Query OK, 0 rows affected (0.58 sec)2. 테이블 구조 확인하기DESC 명령어를 사용하면
MySQL에서 새로운 사용자를 생성할 때 비밀번호에 특수 문자(예: _, @, #, ! 등)를 포함하는 것은 보안을 강화하는 데 매우 중요합니다. 이 글에서는 특수 문자가 포함된 비밀번호를 설정하여 새 MySQL 사용자를 만드는 방법을 단계별로 살펴보겠습니다.기본 문법비밀번호에 특수 문자를 설정하려면 아래와 같은 문법을 사용합니다.create user yourUserName@yourHostName identified by yourSpecialCharacterPassword;실제 적용 예시위의 문법을 실제로 적용하여 새 사용자를 생성
MySQL에서 IFNULL() 함수를 사용하면 NULL 값을 원하는 값(예: 0)으로 대체하여 조회할 수 있습니다. 이 함수는 첫 번째 인자가 NULL이 아니면 그 값을 그대로 반환하고, NULL이면 두 번째 인자로 지정한 대체 값을 반환합니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable (Value int); Query OK, 0 rows affected (1.02 sec)2. 데이터 삽입하기insert 명령을 사용하여 NULL 값과 일반 숫자가 섞인 레코드
ON DUPLICATE KEY UPDATE로 삽입과 업데이트 동시 처리하기네, 가능합니다. MySQL에서는 ON DUPLICATE KEY UPDATE 절을 사용하면 하나의 쿼리에서 삽입(INSERT)과 업데이트(UPDATE)를 동시에 처리할 수 있습니다. 이 절은 새 레코드를 삽입하려는 시점에 기본 키(PRIMARY KEY)나 고유 키(UNIQUE KEY)가 중복될 경우, 에러를 발생시키는 대신 해당 조건에 맞게 기존 레코드를 업데이트합니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create
MySQL 저장 프로시저의 매개변수 이름은 @ 기호로 시작할 수 없습니다. @ 기호는 오직 사용자 정의 변수(User-defined Variable)에만 사용할 수 있습니다.사용자 정의 변수 선언 문법프로시저 내부에서 @ 변수를 사용하려면 다음과 같이 SET 명령어로 값을 할당해야 합니다.SET @yourVariableName = yourValue;올바른 @ 기호 사용 예제위 문법을 실제로 적용하여 저장 프로시저 내부에서 @ 변수를 올바르게 선언하고 사용하는 방법을 살펴보겠습니다.mysql> DELIMITER // mysql&
MySQL 오류 #1064란 무엇인가? MySQL 데이터베이스 오류 #1064는 대부분 잘못된 SQL 구문(syntax) 때문에 발생합니다. 이 오류는 MySQL 서버가 작성된 쿼리를 이해하지 못할 때 나타나며, 흔한 원인 중 하나는 컬럼 정의 끝에 불필요한 쉼표(,)가 남아 있는 경우입니다. 오류가 발생하는 예제 예를 들어, 아래와 같이 테이블을 생성하는 쿼리를 실행한다고 가정해 보겠습니다. mysql> create table DemoTable ( UserId int NOT NULL AUTO_INCREME
MySQL에서 현재 날짜를 기준으로 최근 8개월 이내의 데이터를 조회하려면 INTERVAL 8 MONTH를 활용하면 됩니다. 조건절에 CURRENT_DATE() 함수와 함께 사용하면 손쉽게 원하는 기간의 레코드만 추출할 수 있습니다.기본 쿼리 문법= (CURRENT_DATE() - INTERVAL 8 MONTH);참고: 이 글의 예제에서는 현재 날짜가 2018-02-06이라고 가정합니다. 즉, 2017년 6월 6일 이후의 입학일을 가진 레코드들이 조회됩니다.예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다. 학생 이름과 입
MySQL에서 자동 증분(AUTO_INCREMENT) 열의 시작 값을 0으로 설정하거나 다른 값으로 재설정하려면 ALTER TABLE 문을 사용하면 됩니다.AUTO_INCREMENT 재설정 기본 문법ALTER TABLE 테이블이름 AUTO_INCREMENT=0;위와 같이 값을 0으로 설정하면, 이후 삽입되는 레코드의 자동 증분 값은 1부터 다시 시작됩니다.예제 테이블 생성하기먼저 예제로 사용할 테이블을 생성해 보겠습니다. 아래 예시에서는 자동 증분 시작 값을 109로 지정하여 테이블을 만듭니다.mysql> create tabl
MySQL에서 같은 데이터베이스에 있는 다른 테이블로 한 열의 데이터를 복사하려면 INSERT INTO ... SELECT 문을 사용하면 됩니다. 이 문법은 원본 테이블의 특정 열 값을 조회하여 그대로 대상 테이블의 열에 삽입해 주기 때문에, 별도의 애플리케이션 로직 없이 SQL만으로 데이터를 손쉽게 이동할 수 있습니다.1단계: 원본 테이블 생성하기먼저 복사할 데이터를 담고 있을 첫 번째 테이블을 생성합니다.mysql> create table DemoTable1 (PlayerScore int);Query OK, 0 rows a
MySQL에서 데이터를 삽입(INSERT)하는 과정에서 현재 시간이나 특정 날짜에 분, 시간, 일, 월, 년 등을 더한 값을 함께 저장해야 하는 경우가 종종 있습니다. 이럴 때 DATE_ADD() 함수를 사용하면 별도의 계산 없이 INSERT 쿼리 안에서 바로 원하는 날짜·시간 값을 만들어 저장할 수 있습니다.아래 예제를 통해 실제 사용 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable816 (DueDate dat
MySQL에서 특정 조건에 해당하는 행의 int 필드 값만 수정하고 싶다면, UPDATE 문에서 해당 컬럼 자체를 산술 연산하면 됩니다. 이번 글에서는 실제 예제를 통해 학생 점수(StudentScore) 컬럼의 정수 값을 업데이트하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable702 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, Stu
MySQL에서 테이블을 생성할 때 테이블 이름을 references로 지정하면 오류가 발생합니다. 그 이유는 references가 MySQL의 예약어(reserved keyword)이기 때문입니다. 예약어는 데이터베이스 시스템 내부에서 특별한 의미로 사용되는 단어이므로, 식별자(테이블 이름, 컬럼 이름 등)로 직접 사용할 수 없습니다.해결 방법: 백틱(`)으로 감싸기예약어를 테이블 이름으로 반드시 사용해야 한다면, 이름을 백틱(backtick, `)으로 감싸주면 됩니다. 예를 들어 다음과 같이 작성합니다.`references`예제:
MySQL에서 데이터를 조회할 때 NULL 값이 포함된 레코드를 0으로 변환해야 하는 경우가 자주 발생합니다. 예를 들어, 가격 정보가 비어 있는 상품 데이터를 집계하거나 화면에 표시할 때 NULL 대신 0을 보여주는 것이 더 자연스러울 수 있습니다.이럴 때 가장 대표적으로 사용되는 방법이 바로 CASE 문입니다. 이 글에서는 실제 예제를 통해 NULL 값을 새로운 열에 0으로 반환하는 방법을 단계별로 살펴보겠습니다.1. 테스트용 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. 아래 쿼리는 정수형 Price 열 하나만 가진
MySQL에서 특정 문자열이 컬럼(열)에 몇 번 등장하는지 확인하려면 COUNT(*) 함수와 LIKE 연산자를 함께 사용하면 됩니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable704 (SubjectName text); Query OK, 0 rows affected (0.58 sec)2. 데이터 삽입하기INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 추가합니다.mysql> insert into DemoTa
MySQL에서 datetime 타입의 컬럼에 저장된 여러 날짜 값 중에서 오늘(현재 날짜)과 일치하는 레코드만 조회해야 하는 경우가 자주 있습니다. 이때는 DATE() 함수와 CURDATE() 함수를 함께 사용하면 간단하게 해결할 수 있습니다.예제 시나리오현재 날짜가 다음과 같다고 가정해 보겠습니다.2019-07-221. 테이블 생성먼저 배송 날짜를 저장할 테이블을 생성합니다.mysql> create table DemoTable705 (ShippingDate datetime); Query OK, 0 rows affected (