-
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