자격증

정보처리기능사 - 7. SQL 활용

Beekei 2025. 3. 16. 14:24
반응형

SQL의 개념

SQL(Structured Query Language)의 개요

데이터베이스의 표준 질의어데이터 구조 정의, 데이터 조작, 데이터 제어 기능을 수행(DBMS의 기능)

SQL의 분류

사용 용도에 따라다 DDL, DML, DCL로 구분

DDL(Data Define Language, 데이터 정의어)

SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경, 삭제할 때 사용하는 언어

데이터베이스 관리자나 데이터베이스 설계자가 사용

명령어 기능 표기 형식
CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX 정의 CREATE TABLE {테이블명};
ALTER TABLE에 대한 정의 변경 ALERT TABLE {테이블명} ADD {속성명} {data-type};
DROP SCHEMA, DOMAIN, TABLE, VIEW, INDEX 삭제 DROP TABLE {테이블명} [CASCADE | RESTRICT];
- CASCADE: 삭제할 요소를 참조하는 다른 모든 개체를 함께 삭제
- RESTRICT: 삭제할 요소를 다른 개체가 참조중일 때는 삭제를 취소

DML(Data Manipulation Language, 데이터 조작어)

데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 처리하는 데 사용하는 언어

데이터베이스 사용자와 데이터베이스 관리 시스템(DBMS) 간의 인터페이스 제공

명령어 기능
SELECT 테이블에서 조건에 맞는 튜플(레코드)을 검색
INSERT 테이블에 새로은 튜플(레코드)을 삽입
UPDATE 테이블에 조건에 맞는 튜플(레코드)의 내용을 변경(갱신)
DELETE 테이블에 조건에 맞는 튜플(레코드)을 삭제

DCL(Data Control Language, 데이터 제어어)

데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용하는 언어

데이터베이스 관리자가 데이터 관리를 목적으로 사용

명령어 기능
COMMIT 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료되었음을 알려줌
ROLLBACK 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구
GRANT 데이터베이스 사용자에게 사용 권한 부여
REVOKE 데이터베이스 사용자의 사용 권한을 취소

데이터 조작어[DML] - SELECT

SELECT [DISTINCT] {필드명} [AS 별명]
FROM {테이블명}
[WHERE 조건식]
[GROUP BY 필드명]
[HAVING 그룹조건식]
[ORDER BY 필드명 정렬방식]
  • DISTINCT: 중복되는 레코드는 검색 시 한 번만 표시(중복 제거)
  • 필드명: 모든 필드를 검색할 경우 "*"을 입력, 특정 필드를 검색할 경우 필드명을 쉼표( , )로 구분하여 표시
  • AS: 특정 필드나 테이블의 별명(Alias)을 지정
  • WHERE 조건식: 조건을 입력하여 조건에 맞는 레코드만 검색
    • 비교 연산자: =, <>, >, >=, <, <=,  IN
    • 논리 연산자: NOT, AND, OR
    • LIKE: 특정 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플(레코드)만 검색
  • GROUP BY: 특정 필드를 기준으로 그룹화하여 검색
  • HAVING: 그룹에 대한 조건을 지정
    • 그룹 함수의 종류
      • COUNT(속성명): 그룹별 튜플 수를 구하는 함수
      • MAX(속성명): 그룹별 최댓값을 구하는 함수
      • MIN(속성명): 그룹별 최솟값을 구하는 함수
      • SUM(속성명): 그룹별 합계를 구하는 함수
      • AVG(속성명): 그룹별 평균을 구하는 함수
  • ORDER BY: 특정 필드를 기준으로 레코드를 정렬
  • 정렬방식: 오름차순은 ASC, 내림차순은 DESC
💡 외우기
DISTINCT: 중복제거
*: 전체 필드 검색
GROUP BY: 그룹화
HAVING: 그룹화의 조건
ORDER BY: 정렬(ASC: 오름차순, DESC: 내림차순)

데이터 조작어[DML] - INSERT,  UPDATE, DELETE

INSERT(삽입문)

새로운 튜플(레코드)을 삽입할 때 사용

INSERT INTO {테이블명}(속성명1, 속성명2, ... ) VALUES (데이터1, 데이터2, ... )
  • 대응하는 속성과 데이터는 개수와 데이터 형식이 일치해야 함
  • 테이블의 모든 속성을 사용할 때는 속성명을 생략할 수 있음(데이터는 속성에 순서에 따라 순서대로 표기)

UPDATE(갱신문)

튜플(레코드)의 내용을 변경시킬 때 사용

UPDATE {테이블명} SET 속성명1=데이터1, 속성명2=데이터2 ... [WHERE 조건식]

DELETE(삭제문)

튜플(레코드)을 삭제시킬 때 사용

DELETE FROM {테이블명} [WHERE 조건식]
  • 모든 튜플(레코드)을 삭제할 때는 WHERE문 생략
  • DELETE -> 튜플(레코드 삭제), DROP -> 테이블 삭제
💡 외우기
SELECT(검색): SELECT ~ FROM ~ WHERE ~
INSERT(삽입): INSERT ~ INTO ~ VALUES ~
UPDATE(갱신): UPDATE ~ SET ~ WHERE ~
DELETE(삭제): DELETE ~ SET ~ WHERE ~
반응형