학습 로그/c# c++

D+64[C+MySQL] Workbench (핵심 문법정리 & 예제 실습)

goodjob^^ 2026. 7. 8. 17:36

ㅇ 일  자 : 2026년 7월 8일(수)
ㅇ 주  제 : MySQL 기본, 고급문법 정리 및 Workbench 예제 실습
 
1. MySQL 핵심 문법 정리 

구분명령어
(구문)
 기본 문법 및 형식주요 설명
DML

(데이터 조작)
SELECT조회SELECT 컬럼1, 컬럼2 FROM 테이블이름 WHERE 조건;특정 테이블에서 원하는 조건의 데이터를 조회
INSERT입력INSERT INTO 테이블이름 (컬럼1, 컬럼2) VALUES (값1, 값2);테이블에 새로운 행(데이터)을 삽입
UPDATE기본적
미허용
"수정"
UPDATE 테이블이름 SET 컬럼1 = 값1 WHERE 조건;조건에 맞는 기존 데이터를 수정
(WHERE 생략 시 전체 변경 주의)
DELETE기본적
미허용
"삭제"
DELETE FROM 테이블이름 WHERE 조건;조건에 맞는 기존 데이터를 삭제
(행 단위 삭제, 복구 가능) . 특정 툴에서 실행한다
DDL

(데이터 정의)
CREATE생성CREATE TABLE 테이블이름 (컬럼1 데이터타입, ...);새로운 테이블이나 데이터베이스를 생성
ALTER수정ALTER TABLE 테이블이름 ADD 컬럼명 데이터타입;기존 테이블의 구조(컬럼 추가, 수정, 삭제 등)를 변경
DROP삭제DROP TABLE 테이블이름;테이블 자체를 완전히 삭제 (구조와 데이터 모두 삭제)
TRUNCATE초기화TRUNCATE TABLE 테이블이름;테이블의 모든 데이터를 최초 생성 상태로 초기화
(구조는 남기고 데이터만 고속 삭제, 복구 불가)
DCL

(데이터 제어)
GRANT권한부여GRANT 권한 ON 대상 TO 사용자;특정 사용자에게 데이터베이스 객체에 대한 권한부여 (예: SELECT, INSERT 등)
REVOKE권한회수REVOKE 권한 ON 대상 FROM 사용자;특정 사용자에게 부여했던 *권한을 회수(취소)*
TCL

(트랜잭션 제어)
COMMIT작업완료COMMIT;트랜잭션의 변경 내용을 데이터베이스에 최종 반영
ROLLBACK작업취소ROLLBACK;트랜잭션의 변경 내용을 취소, 이전 상태로 되돌리기
고급
문법
윈도우 함수

(Window Functions)
ROW_NUMBER(), RANK(), DENSE_RANK()SELECT 행번_함수() OVER (PARTITION BY 그룹컬럼 ORDER BY 정렬컬럼) FROM 테이블명;행과 행 간의 관계를 정의하여 순위를 매기거나 집계를 수행합니다. PARTITION BY로 그룹을 나누고 ORDER BY로 순서대로 정렬하여 계산합니다.
CTE

(공통
테이블 식)
WITHWITH 임시테이블명 AS (SELECT ... ) SELECT * FROM 임시테이블명;복잡한 쿼리를 단순화하기 위해 서브쿼리를 마치 하나의 임시 테이블처럼 정의해 사용하는 문법입니다. 재귀적(Recursive) 호출도 가능합니다.
서브쿼리
확장
ANY, ALLSELECT * FROM 테이블명 WHERE 컬럼 > ANY / ALL (서브쿼리);ANY는 서브쿼리의 결과 중 하나라도 만족하면 참(OR 조건), ALL은 서브쿼리의 모든 결과를 만족해야 참(AND 조건)이 됩니다.
인덱스 제어FORCE INDEXSELECT * FROM 테이블명 FORCE INDEX (인덱스명) WHERE 조건;MySQL 옵티마이저가 다른 실행 계획을 세우더라도, 개발자가 지정한 특정 인덱스를 강제로 사용하도록 지정합니다.
피벗 변환

(행을 열로)
CASE WHENSELECT 행컬럼, MAX(CASE WHEN 열컬럼 = '값' THEN 데이터 END) FROM 테이블명 GROUP BY 행컬럼;MySQL은 공식 PIVOT 명령어가 없으므로, 집계 함수(MAX, SUM)와 CASE WHEN 문을 결합하여 행 데이터를 열 데이터로 전환합니다.
동적 SQLPREPARE, EXECUTEPREPARE 템플릿명 FROM '쿼리문';

EXECUTE 템플릿명 USING @변수;
쿼리 문장을 문자열 형태로 준비해 두고, 실행 시점에 변수를 바인딩하여 동적으로 쿼리를 실행할 수 있게 합니다.
프로시저CREATE PROCEDUREDELIMITER //

CREATE PROCEDURE 이름(IN/OUT 파라미터) BEGIN 쿼리... END //

DELIMITER ;
여러 개의 SQL 문을 하나의 함수처럼 묶어서 서버에 저장하고, CALL 프로시저명()으로 호출하여 실행하는 객체입니다.
트리거CREATE TRIGGERCREATE TRIGGER 트리거명 BEFORE/AFTER INSERT/UPDATE/DELETE ON 테이블명 FOR EACH ROW BEGIN ... END;특정 테이블에 데이터가 추가, 수정, 삭제될 때 자동으로 연쇄 실행되는 로직을 정의합니다. (OLD, NEW 키워드로 변경 전후 데이터 접근 가능)

 

쿼리핵심문법_260708.ods
0.03MB

 
 
 
2.MySQLWorkbench 예제 실습
2. 1. 새로운 쿼리를 작성후 리프레시를 하여 좌측 메뉴에서 Schemas 목록을 확인 한다. 

 
2. 2. 실습 문제 : SELECT  DB 조회

buy DB 조회
member DB 조회