본문 바로가기
정보처리기사

데이터조작어(DML)

by 두두리안 2022. 7. 3.
728x90

목차

1.데이터 조작어(DML: Data Manipulation Language)
2.SELECT 활용

1.데이터 조작어(DML: Data Manipulation Language)

1-1. DML 명령어 종류

구분 DDL 명령어 설명
데이터 사입 INSERT 테이블에 내용 삽입
데이터 수정 UPDATE 테이블의 내용 수정
데이터 삭제 DELETE 테이블의 내용 삭제
데이터 조회 SELECT 테이블의 내용 조회

1-2. INSERT

1. 필드명을 지정하여 삽입
    * INSERT INTO 테이블명 (필드) VALUE (값)
2. 필드명을 지정하지 않고 삽입
    * INSERT INTO 테이블명 VALUE (값)
3. 다른 테이블 내용 복사
    * INSERT INTO 테이블명 (필드) SELECT 필드 FROM 원본테이블

1-3. UPDATE

* 조건식에 대응되는 튜플들의 값을 갱신
* UPDATE 테이블명 SET 필드=값 WHERE 조건식

1-4. DELETE

* 조건식에 대응되는 튜플을 삭제
* DELETE FROM 테이블명 WHERE 조건식

1-5 SELECT

* SQL 중 가장 많이 사용되는 조회 명령어
* SELECT [DISTINCT] 필드 FROM 테이블명
  [WHERE 조건식] GROUP BY 필드 [HAVING 조건식]
  [ORDER BY 필드 [ASC|DESC]]

2.SELECT 활용

2-1. SELECT 명령어 옵션

1. DISTINCT: 중복 튜플을 제거하여 조회
2. *: 모든 필드를 조회
3. GROUP BY: 지정된 필드의 데이터를 기준으로 튜플을 그룹화
4. HAVING: 그룹별 조건을 만족하는 튜플들을 조회
5. ORDER BY: 지정된 필드를 기준으로 튜플을 정렬

2-2. 집계함수와 AS

1. AS
    * SELECT SUM(영어점수) AS '영어 합계' FROM 성적
2. 필드와 AS
    * SELECT 주민등록번호 AS 주민번호, 이름 FROM 사원
3. 계산식과 AS
    * SELECT 시험점수-5 AS 조정점수 FROM 성적
4. 집계함수
    * COUNT: 개수
    * SUM: 합계
    * AVG: 평균
    * MAX: 최대값
    * MIN: 최소값
    * STDEV: 표준편차
    * VAR: 분산

2-3. 조건식 지정방식

1. AND
    * 국어와 영어점수 모두 80점 이상
    * SELECT * FROM 성적 WHERE 국어 >= 80 AND 영어 >= 80
2. OR
    * 1반 또는 3반 출력
    * SELECT * FROM 성적 WHERE 반="1반" OR 반="3반"
3. IN
    * 1반 또는 3반 출력
    * SELECT * FROM 성적 WHERE 반 IN("1반","3반")
4. IS NULL
    * 벌점 필드가 비어있는 튜플 출력
    * SELECT * FROM 성적 WHERE 벌점 IS NULL
5. LIKE
    * 이름이 정으로 시작되는 튜플
    * SELECT * FROM 성적 WHERE 이름 LIKE 정%
6. BETWEEN
    * 평균이 80점 출력
    * SELECT * FROM 성적 WHERE 평균 BETWEEN 80 AND 89

2-4. 하위 질의(Sub query)

1. 서브쿼리의 개념
    * 서브쿼리를 포함하고 있는 쿼리문을 메인쿼리(Main query)
    * 포함된 또 하나의 쿼리를 서브쿼리(Sub query)
2. 서브쿼리 활용시 유의사항
    * 서브쿼리는 비교연산자의 오른쪽에 기술해야하고 반드시 소괄호 안에서 사용
    * 서브쿼리는 ORDER BY절을 사용하지 않는다
    * 단일 행 비교 연산자로 비교되는 서브쿼리의 결과는 1건 이하여야 한다
3. 단일 행 (Single Row) 서브쿼리
    * SELECT * FROM 성적 WHERE 학과 =
        (SELECT 학과 FROM 성적 WHERE 성명 = '홍길동')
    * SELECT * FROM 성적 WHERE 점수 >
        (SELECT 점수 FROM 성적 WHERE 성명 = '홍길동')
4. 다중 행 (Multiple Row) 서브쿼리
    * 서브쿼리에서 반환되는 결과가 여러행이 반환되는 쿼리
    * IN, ANY, SOME, ALL, EXISTS 사용
    * SELECT 성명, 학년 FROM 데이터베이스 WHERE 학번 IN
        (SELECT 인공지능, 학번 FROM 인공지능)
    * SELECT 성명, 학년 FROM 데이터베이스 WHERE exists
        (SELECT * FROM 인공지능 WHERE 데이터베이스.학번 = 인공지능.학번)

2-5. 정렬

1. 오름차순 정렬
    * SELECT * FROM 성적 ORDER BY 성별 ASC
2. 내림차순 정렬
    * SELECT * FROM 성적 ORDER BY 성별 DESC

2-6. 그룹화

1. 그룹과 요약
    * SELECT 성별, COUNT(*) FROM 성적 GROUP BY 성별
2. 그룹과 조건 지정
    * SELECT 성별, COUNT(*) FROM 성적 GROUP BY 성별 HAVING 평균 >= 80

2-7. 조인(JOIN)

1. INNER JOIN
    * SELECT * FROM 학생 JOIN 과목 ON 학생.과목코드 = 과목.과목코드
2. LEFT JOIN
    * SELECT * FROM 학생 LEFT JOIN 과목 ON 학생.과목코드 = 과목.과목코드
3. RIGHT JOIN
    * SELECT * FROM 학생 RIGHT JOIN 과목 ON 학생.과목코드 = 과목.과목코드

참고자료 : 이기적 환상콤비 정보처리기사

728x90

'정보처리기사' 카테고리의 다른 글

정규화  (0) 2022.07.04
데이터제어어(DCL)  (0) 2022.07.03
데이터정의어(DDL)  (0) 2022.07.02
E-R 다이어그램  (0) 2022.07.02
논리 데이터 모델링  (0) 2022.07.01