학습 로그/c# c++

D+62[C+MySQL] Workbench 예제 실습을 통한 이해

goodjob^^ 2026. 7. 6. 18:59

ㅇ 일 자 : 2026년 7월 6일(월) 
ㅇ 주 제 : MySQL DataBase  예제 실습 하기


1. MySQL 개념  

MySQL은 데이터를 효율적으로 저장하고 관리하는 오픈소스 관계형 데이터베이스 관리 시스템(DBMS)
데이터를 읽고, 쓰고, 수정하고, 삭제하는 모든 과정은 구조화 질의 언어(SQL)를 통해 이루어 진다
 
1.1. 주요 핵심 용어의 의미

  • 주요 핵심 용어 정리데이터베이스 (Database, DB) : 데이터가 저장되는 공간
  • 테이블 (Table) : 행(Row)과 열(Column)로 이루어진 데이터의 저장 단위
  • 열 / 필드 (Column / Field) : 데이터의 속성 (예: 이름, 나이)
  • 행 / 레코드 (Row / Record) : 테이블에 저장되는 실제 데이터 묶음
  • 기본 키 (PK, Primary Key) : 테이블 내에서 각 행을 고유하게 식별하는 값, 중복 불가, 빈 값 불가
  • 외래 키 (FK, Foreign Key) : 다른 테이블의 기본 키와 연결하여 테이블 간의 관계를 맺는 열

2. MySQL 핵심 문법  

※ 오늘 수업에서는 SELECT 관련 DB조회 문법만
실습함. 나머지 핵심문법은 지속 학습예정.

2.1.  핵심 SQL 문법 (CRUD) DML (데이터 조작어) - 데이터 관리데이터를 조회, 삽입, 수정, 삭제할 때 사용

가. DB 명령어 사용     * 명령의 종료시에는 세미콜론(;) 로 명령어 종료를 의미한다.
    - 정렬하기 : ORDER BY
    - 내림차순 : DESC;
    - 오름차순 : ASC;    * ASC명령어를 미기록해도 오름차순으로 기본으로 인식한다.
    - SELECT (데이터 조회) : SELECT 컬럼1, 컬럼2  FROM 테이블이름 WHERE 조건;
    - INSERT (데이터 삽입) :  INSERT INTO 테이블이름 (컬럼1, 컬럼2) VALUES (값1, 값2);
    - UPDATE (데이터 수정) : UPDATE 테이블이름 SET 컬럼 = 새값 WHERE 조건;
    - DELETE (데이터 삭제) : DELETE FROM 테이블이름 WHERE 조건;

나. 자주 사용하는 확장 문법
    - WHERE (조건문) 및 연산자 조건 : = (같음),        !=  또는  <> (다름) 
    - LIKE (문자열 패턴) 논리 
    - AND (그리고), OR (또는), NOT (부정)범위 : BETWEEN  A  AND  (A와 B 사이), IN (값1, 값2) 
      * 예시 (이름에 '김'이 포함된 사람 조회) SELECT * FROM users WHERE name LIKE '%김%';
    - ORDER BY (정렬) : 데이터를 오름차순(ASC) 또는 내림차순(DESC)으로 정렬
      SELECT * FROM users ORDER BY age DESC;
    - LIMIT (결과 제한) 조회할 데이터의 개수를 제한 한다. SELECT * FROM users LIMIT 10;
    - GROUP BY (그룹화)특정 기준을 바탕으로 데이터를 그룹으로 묶는다. 주로 집계 함수와 함께 쓰인다.
      * 예시:  COUNT(), SUM(), AVG())   SELECT age, COUNT(*) AS 인원수 FROM users GROUP BY age;
    - JOIN (테이블 결합)두 개 이상의 테이블을 논리적으로 연결하여 하나의 데이터처럼 조회한다.
      * INNER JOIN : 두 테이블에 모두 일치하는 데이터만 결합
      * LEFT JOIN : 왼쪽 테이블의 데이터는 모두 출력하고, 오른쪽은 일치하는 것만 결합
         SELECT users.name, orders.product FROM users LEFT JOIN orders ON users.id = orders.user_id;


※ 데이터는 정렬되지 않은 상태의 데이터를 저장한다. 원하는 데이터만 정렬해서 사용하기 때문이다. 

 
2. MySQL Workbench

작성한 자료 내보내기 (CSV, JSON) : 작성한 파일에서 마우스 우클릭후 Table Data Exprot 선택 후 진행

 
2.1. 터미널에서 실행 방법    
       mysql -u root -p   -  비번입력 -  mysql> _____   -> ; (세미콜론은 명령어 종료 의미, 터미널 종료시는 exti)     
- 워크벤치 화면 : 파일을 작성하기 위한 이름 설정하기 

Workbench 화면 : 스키마 이름 설정

 
- 자료 입력후 코드 적용하기(Apply) 클릭

DB 입력 APPLY

- 입력한 자료에서 행삭제시 Database 화면

삭제행에 대한 Database

- 터미널에서 자료 조회하기 
  부서(DEPT) 테이블에 저장된 모든 데이터(행)와 모든 열(컬럼)을 조회 : SELECT * FROM DEPT;    
  260706스키마에서 멤버 조회하기 : SELECT * new_schema_260706.member; 

터미널에 코드 입력후 DB 조회하기

 
- 부서(DEPT) 테이블에서 부서 이름(DNAME) 데이터만 조회 : SELECT DNAME FROM DEPT;
- DEPT (부서) 테이블에서 부서 이름(DNAME)과 부서 위치(LOC) 데이터를 조회하는 명령어
  SELECT DNAME, LOC FROM DEPT;

SELECT 구문 활용 DB조회

 
- EMP 테이블에서 급여(SAL)가 1000 미만인 사원들의 이름(ENAME)만 조회하는 명령 
  SELECT ENAME FROM EMP WERE SAL < 1000;

DB 선별하여 조회하기

 
- 'EMP'(직원) 테이블에서 직원의 이름(ENAME) 조건을 만족하는 모든 데이터를 조회  
   SELECT * FROM EMP WHERE ENAME LIKE '_ _I% ';

저장된 DB를 USE 사용하여 사용하도록 명령하기

- 데이터베이스 (TEST)를 사용한다 : USE TEST
- 'EMP'(직원) 테이블에서 직원의 이름(ENAME) 조건 ('_ _M%') 을 만족하는 모든 데이터를 조회 : 
  SELECT * FROM EMP WHERE ENAME LIKE '_ _M% ';

EMP 전체 데이터에서 이름이 세번째 글자가 M이고 뒤에는 모든값이 있는 번호 사람 조회하기

 
- 내림차순(DESC) 정렬하기 : SELECT * FROM EMP ORDER BY EMPNO DESC;
- 오름차순(ASC) 정렬하기 : SELECT * FROM EMP ORDER BY EMPNO ASC;

오름차순(ASC) 정렬하기, 내림차순(DESC) 정렬하기

 
- 이름순, 오름차순으로 정렬하기 : SELECT * FROM EMP ORDER BY ENAME;

이름순으로 정렬하기

 
- "EMP(사원) 테이블의 모든 데이터를 조회하여 입사일(HIREDATE)을 기준으로 오름차순(과거 -> 최근 순) 정렬 출력 :
   SELECT * FORM EMP ORDER BY HIREDATE;

입사일 기준으로 정렬하기

 
- "EMP(직원) 테이블에서 급여가 2000 미만인 직원의 이름, 입사일, 급여를 조회하되, 입사일이 빠른 순서대로 정렬하기
  SELECT ENAME, HIREDATE, SAL FROM EMP WHERE SAL < 2000 ORDER BY HIREDATE ASC;

복합적인 DB 조회하기

끝.