여러 개의 테이블에 저장된 레코드를 하나의 테이블로 가져오려면 INSERT INTO SELECT 문을 사용하면 됩니다. 이 글에서는 두 개의 테이블에 있는 데이터를 세 번째 테이블로 삽입하는 과정을 단계별로 살펴보겠습니다.1단계: 첫 번째 테이블 생성 및 데이터 입력먼저 이름(Name)을 저장할 첫 번째 테이블을 생성합니다.mysql> create table DemoTable1943 ( Name varchar(20) ); Query OK, 0 rows affected (0.00 sec)insert 명령으로
MySQL에서 특정 날짜의 레코드 수 세기MySQL 테이블에 저장된 데이터 중 특정 날짜가 몇 번 등장하는지 확인하고 싶다면 COUNT(*) 함수와 WHERE 절을 함께 사용하면 됩니다. 이번 글에서는 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 날짜를 저장할 테이블을 생성합니다.mysql> create table DemoTable1946 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2단계: 샘플 데이터 삽입INSERT 명령어를
MySQL에서는 DELETE 대상 테이블을 서브쿼리에서 직접 참조할 수 없습니다. 이 경우 You cant specify target table for update in FROM clause라는 오류가 발생합니다. 이를 해결하려면 서브쿼리 결과를 파생 테이블(Derived Table)로 한 번 더 감싸야 합니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1947 ( Id int, Name varc
영숫자(alphanumeric) 문자열이 저장된 컬럼에서 숫자 부분만을 기준으로 정렬하고 싶다면, ORDER BY 절과 함께 RIGHT() 함수를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 그 방법을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1948 ( StudentCode varchar(20) ); Q
MySQL에서 COALESCE() 함수는 여러 컬럼의 값을 순서대로 검사하여 NULL이 아닌 첫 번째 값을 반환하는 함수입니다. 이 기능을 활용하면 두 개 이상의 컬럼 중 실제 데이터가 존재하는 값을 손쉽게 추출할 수 있습니다.1. 샘플 테이블 생성먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1927 ( StudentName varchar(20), St
MySQL에서 저장 프로시저(Stored Procedure)를 활용하면 반복적인 INSERT 작업을 하나의 프로시저로 묶어 손쉽게 처리할 수 있습니다. 이 글에서는 저장 프로시저를 생성하고, 이를 호출하여 테이블에 데이터를 삽입하는 전체 과정을 단계별로 살펴보겠습니다.저장 프로시저의 기본 문법테이블에 데이터를 삽입하는 저장 프로시저의 기본 문법은 다음과 같습니다.create procedure yourProcedureName(OptionalParameter) begin insert into yourTableName()
MySQL 기본 키 재설정 개요MySQL에서 AUTO_INCREMENT로 설정된 기본 키 값을 초기화하려면 TRUNCATE 문으로 테이블을 비운 뒤, ALTER TABLE 문으로 자동 증가 시작값을 1로 지정하면 됩니다. 이 방법은 테스트 데이터를 반복적으로 생성할 때 특히 유용합니다.1단계: 테이블 생성하기먼저 AUTO_INCREMENT 속성을 가진 기본 키가 포함된 테이블을 생성해 보겠습니다.mysql> create table DemoTable1929 ( &nbs
MySQL에서 저장된 날짜(datetime) 값에 45일을 더하고, 그 결과를 기존 열과 함께 새로운 열에 출력하려면 date_add() 함수를 사용하면 됩니다. date_add()는 지정한 날짜·시간 값에 원하는 간격(interval)만큼 더한 값을 반환하는 함수로, 날짜 계산에 매우 유용하게 활용됩니다.1. 샘플 테이블 생성하기먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable1930 ( DueTime datetime ); Query OK,
MySQL에서 날짜 데이터로부터 특정 형식의 월과 연도를 추출하려면 DATE_FORMAT() 함수와 STR_TO_DATE() 함수를 함께 사용하면 됩니다. 이 두 함수를 조합하면 문자열로 저장된 날짜를 원하는 형식으로 손쉽게 변환할 수 있습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1931 ( ShippingDate varchar(40) ); Query OK, 0 rows affected (0.00 sec)2. 데이터 삽입하기
MySQL에서 특정 레코드를 우선 표시하고 나머지를 날짜순으로 정렬하기MySQL에서는 ORDER BY 절을 활용하면 특정 조건에 해당하는 레코드를 최상단에 고정하고, 나머지 레코드들은 다른 컬럼(예: 날짜)을 기준으로 정렬할 수 있습니다.기본 문법은 다음과 같습니다.select * from yourTableName order by yourColumnName1=yourValue desc,yourColumnName2;여기서 핵심은 yourColumnName1=yourValue라는 불리언 표현식입니다. 조건이 참인 레코드는 1, 거짓인
MySQL에서는 SELECT 문을 저장 프로시저(Stored Procedure) 안에 넣어두고, 필요할 때마다 간단한 CALL 명령으로 테이블의 전체 레코드를 손쉽게 조회할 수 있습니다. 이번 글에서는 테이블 생성부터 저장 프로시저 작성 및 호출까지 전체 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable1933 ( ClientName varchar(20) ); Query OK, 0 rows affected
개요MySQL에서 평균값을 구할 때는 AVG() 함수를 사용합니다. 만약 중복된 레코드를 제외하고 고유한(distinct) 값만 대상으로 평균을 계산하고 싶다면, AVG() 함수와 함께 DISTINCT 키워드를 활용하면 됩니다.이번 글에서는 서브쿼리를 이용해 중복 데이터를 먼저 제거한 뒤, 남은 고유 레코드의 평균을 구하는 방법을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable1934 ( StudentName varchar(
MySQL에서 하나의 컬럼에 대해 여러 단어(값)를 동시에 매칭하여 레코드를 필터링하려면 RLIKE 연산자를 사용하면 됩니다. RLIKE는 정규 표현식 기반으로 동작하며, |(OR) 기호를 이용해 여러 검색어를 한 번에 처리할 수 있습니다.기본 문법select * from yourTableName where yourColumnName rlike yourValue1|yourValue2;예제 테이블 생성먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable1935 ( Su
MySQL에서 여러 개의 레코드를 하나의 쿼리로 동시에 삽입하려면 INSERT INTO ... SELECT 구문과 UNION을 함께 사용할 수 있습니다. 각 SELECT 절이 반환하는 한 행씩이 테이블에 삽입되며, UNION으로 여러 SELECT를 연결하면 원하는 만큼의 행을 한 번에 추가할 수 있습니다.기본 문법여러 개의 데이터를 삽입할 때 사용하는 기본 문법은 다음과 같습니다.insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,..N) &
데이터가 테이블에 삽입되기 이전에 특정 로직을 실행해야 하는 경우, MySQL의 BEFORE INSERT 트리거를 사용하면 됩니다. 이 트리거는 INSERT 문이 실제로 실행되기 전에 자동으로 호출되므로, 조건 검사나 데이터 검증 등의 작업을 수행하는 데 매우 유용합니다.BEFORE INSERT 트리거 기본 문법삽입 작업 전에 트리거를 생성하는 기본 문법은 다음과 같습니다.delimiter //create trigger yourTriggerName before insert on yourTableName  
MySQL 오류 1396(HY000)이란?MySQL에서 사용자를 생성하거나 삭제할 때 ERROR 1396 (HY000): Operation CREATE USER failed라는 오류 메시지가 나타나는 경우가 있습니다. 이 오류는 주로 다음과 같은 원인으로 발생합니다.생성하려는 사용자가 이미 존재하는 경우mysql.user 테이블의 행을 직접 DELETE로 삭제하여 사용자 정보가 불완전하게 남아 있는 경우DROP USER 없이 시스템 테이블을 수동으로 조작한 경우이 문제를 해결하는 가장 확실한 방법은 CREATE USER와 DROP
MySQL에서 DECLARE를 사용한 변수 선언 MySQL에서 DECLARE 문은 저장 프로시저(Stored Procedure)나 저장 함수 내부에서 지역 변수를 선언할 때 사용됩니다. 주의할 점은 DECLARE를 일반 SQL문이나 클라이언트 세션에서 직접 사용할 수 없으며, 반드시 BEGIN ... END 블록 안에 작성해야 한다는 것입니다. 기본 문법 declare yourVariableName yourDataType; 필요하다면 선언과 동시에 기본값을 지정할 수도 있습니다. declare yourVariableName you
학생별 점수를 그룹화하려면 MySQL의 GROUP BY 절을 사용하고, 점수의 합계를 계산하려면 SUM() 함수를 사용합니다. 이 글에서는 실제 예제를 통해 학생 이름별로 점수를 묶고 각 학생의 총점을 한 번에 조회하는 방법을 단계별로 살펴보겠습니다. 1. 예제 테이블 생성하기 먼저 학생 이름과 점수를 저장할 테이블을 생성합니다. mysql> create table DemoTable1920 ( StudentName varchar(20), &
MySQL에서 특정 행의 값을 항상 상단에 고정하고, 나머지 행들은 무작위(랜덤) 순서로 표시하고 싶다면 RAND() 함수와 ORDER BY 절을 함께 활용하면 됩니다.테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1921 ( Number int );Query OK, 0 rows affected (0.00 sec)데이터 삽입하기INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.mysql> in
개요MySQL에서 여러 레코드를 한 번에 삭제해야 할 때 IN() 연산자를 사용하면 단일 DELETE 쿼리로 간편하게 처리할 수 있습니다. IN()은 괄호 안에 지정된 값 목록 중 하나라도 일치하는 모든 행을 대상으로 작동하기 때문에, OR 조건을 여러 번 나열하는 방식보다 코드가 훨씬 간결하고 가독성도 뛰어납니다.테이블 생성하기먼저 예제에 사용할 테이블을 생성하겠습니다.mysql> create table DemoTable1922 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY