ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 102. [MySQL] DML - 데이터 관리 언어
    IT 공부방 [기본지식 정리]/데이터베이스 (DB) 2025. 3. 26. 16:28

    1. SELECT 

    1) 정의

    데이터를 조회하는 데 사용되는 가장 기본적인 SQL 명령어 (검색, 조회, 반환)

    비슷한 예로 print문이랑 유사하다. 

     

    2) 사용 예시

    - select * from [DB명].[테이블명]

    - select [컬럼명1], [컬럼명2] from [테이블명]

    # Q1. 대출 횟수가 20회 이상인 도서들의 식별번호, isbn, 제목, 대출횟수 정보를 조회화세요.
    select bk_idx, isbn, title, rent_cnt from book where rent_cnt >= 20;
    
    # Q3. 카테고리가 "B001"이고 대출횟수가 8회인 도서의 식별번호, isbn, 제목, 대출횟수 정보를 조회하세요.
    select bk_idx, isbn, title, rent_cnt from book where rent_cnt = 8 and category like "B001";
    
    # Q12. 등급이 'ROLE_ADMIN'인 사용자 중 탈퇴하지 않은 사용자만 조회하세요. 
    select * FROM member where grade like "ROLE_ADMIN" and IS_LEAVE = 0 is not null;
    
    # Q16. 등급이 'ROLE_USER'이면서 퇴사하지 않은 사용자 중에서 전화번호의 4번째 숫자가 2이고 id가 E로 시작하는 사용자를 구하시오 
    select * from member where grade = "ROLE_USER" and tell regexp("...2") and USER_ID regexp("^E");

     

    2. INSERT

    새 데이터 레코드(=튜플, 인스턴스)를 생성할 때

    기존 데이터에 영향을 주지 않고 새 데이터를 추가할 때

    -- 레코드 추가
    INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3)
    VALUES (값1, 값2, 값3);
    
    -- 레코드 여러개 추가
    INSERT INTO employees (name, age, department)
    VALUES 
    ('김철수', 25, '개발팀'),
    ('이영희', 28, '디자인팀');
    
    -- 값이 컬럼 순서와 갯수 전부 충족하면 컬럼명은 생략 가능
    INSERT INTO employees
    VALUES ('김민수', 35, '경영팀');
    
    -- 본 테이블 컬럼 순서는 지킬필요 없지만, 쿼리에 명시된 순서는 지켜야 한다.
    INSERT INTO employees (department, age)
    VALUES ('마케팅', 30);

     

    3. UPDATE

    기존 테이블의 데이터를 수정할 때 사용됨. (Where절 없으면, 전체 변경되니 주의)

    -- 예시 구문
    UPDATE 테이블명
    SET 컬럼1 = 값1, 컬럼2 = 값2, ...
    WHERE 조건;
    
    -- 사용 예시1
    UPDATE employees
    SET department = '총무팀'
    WHERE name = '홍길동';
    
    -- 사용 예시2
    UPDATE employees
    SET age = 31, department = '연구소'
    WHERE name = '이수연';

     

    4. DELETE

    특정 조건에 맞는 데이터를 삭제할 때 사용됨. (Where절 없으면, 전체 삭제되니 주의)

    -- 기본 구문
    DELETE FROM 테이블명
    WHERE 조건;
    
    -- 사용 예시1
    DELETE FROM employees
    WHERE name = '홍길동';
    
    -- 사용 예시2
    DELETE FROM employees
    WHERE age > 30 AND department = '개발팀';
    
    -- 사용 예시3
    DELETE FROM employees;

     

    5. MERGE

    조건에 따라 데이터를 삽입, 수정, 삭제하는 복합 작업을 한 번에 수행하는 명령어

    주로 데이터 동기화나 병합 작업에 사용됨.

    -- [예시 구문]
    MERGE INTO 대상테이블 t
    USING 소스테이블 s
    ON (조건)
    WHEN MATCHED THEN
        -- 대상과 소스가 일치할 때 수행
        -- UPDATE 또는 DELETE
    WHEN NOT MATCHED THEN
        -- 대상에 없을 때 수행
        -- INSERT
      
      
    -- [사용 예시 1]
    MERGE INTO employees t
    USING new_employees s
    ON (t.id = s.id)
    WHEN MATCHED THEN
        UPDATE SET t.name = s.name, t.department = s.department
    WHEN NOT MATCHED THEN
        INSERT (id, name, department) VALUES (s.id, s.name, s.department);
        
    # new_employees에 있는 데이터를 employees에 병합
    # 일치하는 ID가 있으면 업데이트 없으면 새로 삽입

    'IT 공부방 [기본지식 정리] > 데이터베이스 (DB)' 카테고리의 다른 글

    107. 서브쿼리  (0) 2025.03.28
    106. 프로시저 함수  (0) 2025.03.28
    105. MySQL - 윈도우 함수  (0) 2025.03.26
    110. [MySQL] 테이블 생성 타입표  (0) 2025.03.26
    100.MySQL [8.0x]  (0) 2025.03.26
Designed by Tistory.