2021년도 정기기사 3회 정보처리기사 필기시험에 드디어.. 합격을 하고 실기시험을 준비중이다. 준비중에 SQL문 관련 문제가 항상 3문제 정도 나오는데 모두 맞추기 위해 총 정리를 한 번 해볼까한다.
1. 정보처리기사 실기 준비를 위한 SQL문 총정리 및 SQL문 정리 사이트
1-1. DDL(Data Define Language, 데이터 정의어)
- DDL은 SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어.
- 논리적 데이터 구조와 물리적 데이터 구조의 사상을 정의
- 데이터베이스 관리자나 데이터베이스 설계자가 사용함.
명령어 |
기능 |
CREATE |
SCHEMA, DOMAIN, TABLE, VIEW, INDEX 정의 ex) CREATE |
ALTER |
TABLE에 대한 정의를 변경 |
DROP |
SCHEMA, DOMAIN, TABLE, VIEW, INDEX 삭제 |
1-2. DML(Data Manipulation Language, 데이터 조작어)
- DML은 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용하는 언어.
- 데이터베이스 사용자와 데이터베이스 관리 시스템 간의 인터페이스를 제공.
명령어 |
기능 |
SELECT |
테이블에서 조건에 맞는 튜플 검색 |
INSERT |
테이블에 새로운 튜플 삽입 |
DELETE |
테이블에서 조건에 맞는 튜플 삭제 |
UPDATE |
테이블에서 조건에 맞는 튜플의 내용을 변경 |
1-3. DCL(Data Manipulation Language, 데이터 제어어)
- DCL은 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용되는 언어.
- 데이터 베이스 관리자가 데이터 관리를 목적으로 사용
명령어 |
기능 |
COMMIT |
명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌 |
ROLLBACK |
데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래 상태로 복구 |
GRANT |
데이터베이스 사용자의 사용 권한 부여 |
REVOKE |
데이터베이스 사용자의 사용 권한 취소 |
2. DML(Data Manipulation Language, 데이터 조작어) 더 자세히
- 정보처리기사 실기 시험에서는 주로 실질적으로 데이터를 처리하는 문제가 주로 나오기 때문에 DML을 더 자세히 알아보도록 하자!
1-1. SELECT
- 테이블에서 조건에 맞는 튜플 검색
- SELECT문 예제
Query문 |
SELECT 컬럼명 FROM 테이블명; |
설명 |
해당 테이블에 속하는 컬럼의 데이터들을 검색 |
Query문 |
SELECT 컬럼명 FROM 테이블명 WHERE 조건; |
설명 |
해당 테이블에 속하는 컬럼 중 조건에 맞는 데이터들을 검색 |
Query문 |
SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 ASC or DESC |
설명 |
해당 테이블에 속하는 컬럼 중 조건에 맞는 데이터들의 검색결과를 ASC(오른차순) or DESC(내림차순) 정렬 |
Query문 |
SELECT 컬럼명 FROM 테이블명 WHERE 조건 ORDER BY 컬럼명 ASC or DESC LIMIT 개수 |
설명 |
Limit으로 개수를 제한 |
- Where절에서 사용되는 조건연산자와 연산자 우선순위
연산자 |
= |
<> |
> |
< |
>= |
<= |
의미 |
같다 |
같지 않다 |
크다 |
작다 |
크거나 같다 |
작거나 같다 |
- 논리 연산자 : NOT, AND, OR
- LIKE 연산자 : 대표 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색하기 위해 사용됨.
대표 문자 |
% |
_ |
# |
의미 |
모든 문자를 대표함 |
문자 하나를 대표함 |
숫자 하나를 대표함 |
종류 |
연산자 |
우선순위 |
산술 연산자 |
*, /, +, - |
왼쪽에서 오른쪽으로 갈수록 낮아짐. |
관계 연산자 |
=, <>, > , <, >=, <= |
모두 같음 |
논리 연산자 |
NOT, AND, OR |
왼쪽에서 오른쪽으로 갈수록 낮아짐. |
※ 산술, 관계, 논리 연산자가 함께 사용되었을 때는 산술> 관계 > 논리 연산자 순서로 연산자 우선순위가 정해짐.
- 그룹함수 : GROUP BY절에 지정된 그룹별 속성의 값을 집계할 때 사용
- WINDOW 함수 : GROUP BY절을 이용하지 않고 속성의 값을 집계할 함수를 기술
그룹함수 |
설명 |
COUNT(속성명) |
그룹별 튜플 수를 구하는 함수 |
SUM(속성명) |
그룹별 합계를 구하는 함수 |
AVG(속성명) |
그룹별 평균을 구하는 함수 |
MAX(속성명) |
그룹별 최대값을 구하는 함수 |
MIN(속성명) |
그룹별 최소값을 구하는 함수 |
STDEV(속성명) |
그룹별 표준편차를 구하는 함수 |
VARIANCE(속성명) |
그룹별 분산을 구하는 함수 |
1-2. INSERT
- 테이블에 새로운 튜플 삽입
- INSERT문 예제
Query문 |
INSERT INTO 테이블명(칼럼명1, 칼럼명2, 칼럼명3) VALUES(값1, 값2, 값3); |
설명 |
테이블명에 있는 컬럼명에 순서에 맞게 값 입력(단, 칼럼명과 값의 개수는 동일해야함.) |
Query문 |
INSERT INTO 테이블명 VALUES(값1, 값2, 값3); |
설명 |
칼럼명을 입력하지 않은 경우, 테이블에 모든 칼럼에 값을 입력한다는 의미!(단, 칼럼명과 값의 개수는 동일해야함.) |
1-3. UPDATE
- 테이블에서 조건에 맞는 튜플의 내용을 변경
- UPDATE문 예제
Query문 |
UPDATE 테이블명 SET 컬럼명 = 변경할 값; |
설명 |
테이블에 있는 모든 데이터의 컬럼 값 변경 |
Query문 |
UPDATE 테이블명 SET 컬럼명 = 변경할 값 WHERE 조건; |
설명 |
WHERE절 조건에 해당하는 데이터만 변경 |
Query문 |
UPDATE 테이블명 SET 컬럼명1 = 변경할 값1, 컬럼명2 = 변경할 값2 WHERE 조건; |
설명 |
변경할 컬럼이 여러 개일 경우 콤마(,)를 사용해 여러 개의 값을 변경 가능 |
1-4. DELETE
- 테이블에서 조건에 맞는 튜플 삭제
- DELETE문 예제
Query문 |
DELETE FROM 테이블명; |
설명 |
테이블에 있는 모든 데이터 삭제 |
Query문 |
DELETE FROM 테이블명 WHERE 조건; |
설명 |
WHERE절 조건에 해당하는 데이터만 삭제 |
SQL문 정리 사이트
- http://www.dpriver.com/pp/sqlformat.htm