Cohe

7-1. SQL 응용 - DML 본문

자격증 공부/정보처리기사 실기

7-1. SQL 응용 - DML

코헤0121 2024. 9. 24. 21:07
728x90

1. 데이터 조작어 (DML) : 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어이다.

2. DML 명령어 : SELECT, INSERT, UPDATE, DELETE

3. SELECT 명령어 및 관련 개념

1. SELECT 명령어 구조

  • 구성: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY 절
  • 주요 절 설명:
    • FROM: 조회할 테이블 지정
    • WHERE: 검색 조건 지정
    • GROUP BY: 그룹화 기준 지정
    • HAVING: 그룹화 후 조건 지정
    • ORDER BY: 정렬 기준 지정 (ASC/DESC)

2. WHERE 절 조건

  • 비교: =, <>, <, <=, >, >=
  • 범위: BETWEEN
  • 집합: IN, NOT IN
  • 패턴 매칭: LIKE (%, _, [ ], [^])
  • NULL 검사: IS NULL, IS NOT NULL
  • 복합 조건: AND, OR, NOT

3. 조인 (Join)

  • 개념: 두 개 이상의 테이블을 연결하여 데이터 검색
  • 유형:
    • 내부 조인 (Inner Join)
    • 왼쪽 외부 조인 (Left Outer Join)
    • 오른쪽 외부 조인 (Right Outer Join)
    • 완전 외부 조인 (Full Outer Join)
    • 교차 조인 (Cross Join)
    • 셀프 조인 (Self Join)

 

        
SELECT x.no AS NO,
       x.date AS DATE,
       w.description AS DESC,
       x.status AS STATUS,
FROM PT x
JOIN DEPT d ON d.no = x.no
JOIN USERS u ON u.id = x.by
JOIN DTL w ON w.TYPE = 'HOUSE' AND w.code = x.house;

4. 서브쿼리 (Subquery)

  • 개념: SQL 문 안에 포함된 또 다른 SQL 문
  • 유형:
    • FROM 절 서브쿼리 (인라인 뷰)
    • WHERE 절 서브쿼리 (중첩 서브쿼리)

5. 집합 연산자

  • 개념: 여러 질의 결과를 하나로 결합
  • 종류:
    • UNION: 중복 제거 후 합집합
      • 예시:결과: 두 테이블의 모든 고유한 employee_id를 반환
      • SELECT employee\_id FROM employees1 **UNION SELECT employee\_id FROM employees2;**
    • UNION ALL: 중복 포함 합집합
      • 예시:결과: 두 테이블의 모든 employee_id를 반환 (중복 포함)
      • SELECT employee\_id FROM employees1 UNION ALL SELECT employee\_id FROM employees2;
    • INTERSECT: 교집합
      • 예시:결과: 두 테이블에 모두 존재하는 employee_id만 반환
      • SELECT employee\_id FROM employees1 INTERSECT SELECT employee\_id FROM employees2;
    • EXCEPT: 차집합
      • 예시:결과: employees1에는 있지만 employees2에는 없는 employee_id를 반환
      • SELECT employee\_id FROM employees1 EXCEPT SELECT employee\_id FROM employees2;
  • 실제 사용 예시:이 쿼리는 두 테이블의 부서별 직원 수를 비교할 수 있게 해준다
SELECT department, COUNT(_) as emp\_count, 'employees1' as source 
FROM employees1 
GROUP BY department 
UNION ALL 
    SELECT department, 
        COUNT(_) as emp\_count, 
        'employees2' as source 
    FROM employees2 
GROUP BY department 
ORDER BY department, source;

4. INSERT(데이터 삽입) 명령어

  • INSERT는 데이터의 내용을 삽입할 때 사용하는 명령어이다.
    • INSERT INTO 테이블명 (속성명1, ...) VALUES (데이터1,…)
    • 속성과 데이터 개수, 데이터 타입이 일치해야 함
    • 속성명은 생략 가능
    • 속성의 타입이 숫자인 경우 데이터는 따옴표를 붙이지 않아도 되며, 문자열인 경우 따옴표를 붙여야 함

5. UPDATE(데이터 변경) 명령어

  • UPDATE는 데이터의 내용을 변경할 때 사용하는 명령어이다
    • UPDATE 테이블명 SET 속성명 = 데이터, WHERE 조건;
    • UPDATE 명령문은 WHERE 절을 통해 어떤 조건이 만족할 경우에만 특정 컬럼의 값을 수정하는 용도로 자주 사용

6. DELETE(데이터 삭제) 명령어

  • DELETE는 데이터의 내용을 삭제할 때 사용하는 명령어이다
    • DELETE FROM 테이블명 WHERE 조건;
    • 모든 레코드를 삭제할 때는 WHERE 절 없이 DELETE만 사용
    • 레코드를 삭제해도 테이블 구조는 남아 있어서 디스크에서 테이블을 완전히 삭제하는 DROP 명령과는 다름

'자격증 공부 > 정보처리기사 실기' 카테고리의 다른 글

7-1. SQL 응용 - 기출문제  (1) 2024.09.26
7-1. SQL 응용 - DCL  (1) 2024.09.25
7-1. SQL 응용 - DDL  (0) 2024.09.24
7-1. SQL 응용 - 트랜잭션  (0) 2024.09.24
6. 프로그래밍 언어 활용 - Python 편 (1)  (0) 2024.09.21