반응형
DML - SELECT
가장 많이 사용되는 명령문
- 일반 형식
# 표기 형식
SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, ...] [그룹함수 (속성명) [AS 별칭]] [, WINDOW함수 OVER (PARTITION BY 속성명1, 속성명2, ... ORDER BY 속성명3, 속성명4, ...)] FROM 테이블명[, 테이블명, ...] [WHERE 조건] [GROUP BY 속성명, 속성명, ...] [HAVING 조건] [ORDER BY 속성명 [ASC | DESC]];
SELECTPREDICATE : 검색할 튜플 수를 제한하는 명령어 기술
DISTICT : 중복된 튜플이 있으면 그 중 첫 번째 한 개만 표시속성명 : 검색을 통해 불러올 속성(열) 또는 속성을 이용한 수식 지정AS : 속성이나 연산의ㅡ 이름을 다른 이름으로 표시하기 위해 사용
FROM : 검색할 데이터가 들어있는 테이블 이름을 기술
WHERE : 검색할 조건 기술
ORDER BY : 데이터를 정렬하여 검색할 때 사용속성명 : 정렬의 기준이 되는 속성명 기술
ASC : 오름차순 정렬
DESC : 내림차순 정렬생략 : 오름차순 정렬그룹함수 : GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 함수 기술WINDOW 함수 : GROUP BY절을 이용하지 않고 속성의 값을 집계할 함수 기술
PARTITION BY : WINDOW 함수의 적용 범위가 될 속성 지정
ORDER BY : PARTITION 안에서 정렬 기준으로 사용할 속성 지정
GROUP BY : 특정 속성을 기준으로 그룹화하여 검색할 때 사용
HAVING : GROUP BY와 함께 사용되며, 그룹에 대한 조건 지정
- 조건 연산자
- 비교 연산자
의미 같다 같지 않다 크다 작다 크거나 같다 작거나 같다 - 논리 연산자 : NOT, AND, OR
- LIKE 연산자
의미 모든 문자를 대표함 문자 하나를 대표함 숫자 하나를 대표함 - 기본 검색
- SELCET 절에 원하는 속성을 지정하여 검색
- 조건 지정 검색
- WHERE 절에 조건을 저징하여 조건에 만족하는 튜플만 검색
- 정렬 검색
- ORDER BY 절에 특정 속성을 지정해 지정된 속성으로 자료를 정렬 후 검색
- 하위 질의
- 조건절에 주어진 질의를 먼저 수행 후 그 검색 결과를 조거ㅏㄴ절의 피연산자로 사용
- 복수 테이블 검색
- 여러 테이블을 대상으로 검색 수행
- 그룹 함수
함수 기능
COUNT(속성명) | 그룹별 튜플 수를 구하는 함수 |
SUM(속성명) | 그룹별 합계를 구하는 함수 |
AVG(속성명) | 그룹별 평균을 구하는 함수 |
MAX(속성명) | 그룹별 최대값을 구하는 함수 |
MIN(속성명) | 그룹별 최소값을 구하는 함수 |
STDDEV(속성명) | 그룹별 표준편자를 구하는 함수 |
ROLLUP(속성명, 속성명,...) | n개의 속성을 n+1레벨까지 하위레벨에서 상위레벨 순으로 데이터를 집계해 그룹별 소계를 구하는 함수 |
CUBE(속성명, 속성명, ...) | n개의 속성을 2n레벨까지 상위레벨에서 하위레벨 순으로 데이터를 집계해 모든 조합의 그룹별 소계를 구하는 함수 |
- WINDOW 함수
- ROW_NUMBER() : 윈도우별로 각 레코드에 대한 일련번호 반환RANK() : 윈도우별로 순위를 반환하며, 공동 순위 반영DENSE_RANK() : RANK()와 같지만 공동순위를 무시하고 순위를 부여
- WINDOW 함수 이용 검색GROUP BY절을 이용하지 않고 함수의 인수로 지정한 속성을 범위로 하여 속성의 값을 집계
- 그룹 지정 검색GROUP BY절에 지정한 속성을 기준으로 자료를 그룹화하여 검색
- 집합 연산자를 이용한 통합 질의집합 연산자를 사용해 2개 이상의 테이블의 데이터를 하나로 통합UNION(합집합) : 두 SELECT문의 조회 결과를 통합 후 중복된 행은 한번만 출력하고 그 외는 모두 출력UNION ALL(합집합) : UNION과 동일하지만 중복된 행도 그대로 출력INTERSECT(교집합) : 두 SELECT문의 조회 결과 중 고옹된 행만 출력EXCEPT(차집합) : 첫 번째 SELECT문의 조회 결과에서 두 번째 SELECT문의 조회 결과를 제외한 행을 출력
- # 표기 형식 SELECT 속성명1, 속성명2, ... FROM 테이블명 UNION | UNION ALL | INTERSECT | EXCEPT SELECT 속성명1, 속성명2, ... FROM 테이블명 [ORDER BY 속성명 [ASC | DESC]];
DML - JOIN
연관된 튜플을 결합하여, 하나의 새로운 릴레이션 반환
- INNER JOIN
- EQUI JOIN공통 속성을 기준으로 '='(equal) 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN 방법
# NATURAL JOIN절을 이용한 표기 형식 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 NATURAL JOIN 테이블명2;
# JOIN~USING절을 이용한 표기 형식 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 JOIN 테이블명2 USING(속성명);
- # WHERE절을 이용한 표기 형식 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2, ... WHERE 테이블명1.속성명 = 테이블명2.속성명;
- NON-EQUI JOIN'='조건이 아닌 나머지 비교 연산자를 사용하는 JOIN 방법
- # 표기 형식 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2, ... WHERE (NON-EQUI JOIN 조건);
- EQUI JOIN공통 속성을 기준으로 '='(equal) 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN 방법
- OUTER JOINJOIN 조건에 만족하지 않는 튜플도 출력하기 위한 JOIN 방법
- LEFT OUTER JOININNER JOIN의 결과를 구한 후 좌측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여 결과에 추가
# 표기 형식 2 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명 = 테이블명2.속성명(+);
- # 표기 형식 1 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 LEFT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
- RIGHT OUTER JOININNER JOIN의 결과를 구한 후 우측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여 결과에 추가
# 표기 형식 2 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명(+) = 테이블명2.속성명;
- # 표기 형식 1 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 RIGHT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
- FULL OUTER JOINLEFT 방법과 RIGHT 방법을 합친 것
- # 표기 형식 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 FULL OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
- LEFT OUTER JOININNER JOIN의 결과를 구한 후 좌측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여 결과에 추가
데이터 사전
- 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보의 집합체
- 데이터 사전 테이블
테이블명 메타 데이터 DBMS
TABLES | 테이블에 대한 정보 | My-SQL, Oracle |
VIEWS | 뷰에 대한 정보 | My-SQL, Oracle |
COLUMNS | 속성에 대한 정보 | My-SQL |
TAB_COLUMNS | 속성에 대한 정보 | Oracle |
TRIGGERS | 트리거에 대한 정보 | My-SQL, Oracle |
- My-SQL의 조회테이블들이 모여있는 INFORMATION SCHEMA로 이동 후 SHOW 명령으로 스키마 내의 테이블 목록을 확인USE INFORMATION_SCHEMA;'INFORMATION_SCHEMA'로 이동SHOW TABLES;'INFORMATION_SCHEMA'에 저장된 데이터 사전 테이블들의 목록을 조회메타 데이터를 저장하고 있는 데이터 사전 테이블이 조회SELECT * FROM [테이블];테이블에 있는 모든 속성 조회
- # 표기 방식 USE INFORMATION_SCHEMA; SHOW TABLES; SELECT * FROM [테이블];
- Oracle의 조회'영역'을 지정하여 정보 조회SELECT * : 모든 속성 표시FROM [영역][테이블] : <[영역][테이블]>에 해당하는 정보 조회영역 : DBA, ALL, USER 중 필요한 접근 권한 입력테이블 : 조회할 메타 데이터가 저장된 테이블 입력
- # 표기 형식 SELECT * FROM [영역]_[테이블];
반응형
'License > 정보처리산업기사 실기' 카테고리의 다른 글
[정보처리산업기사 실기] 어플리케이션 테스트 (1) | 2025.03.29 |
---|---|
[정보처리산업기사 실기] 프로그래밍 언어 활용 - 4 (1) | 2025.03.29 |
[정보처리산업기사 실기] 프로그래밍 언어 활용 - 3 (0) | 2025.03.29 |
[정보처리산업기사 실기] 프로그래밍 언어 활용 - 2 (0) | 2025.03.29 |
[정보처리산업기사 실기] 프로그래밍 언어 활용 - 1 (0) | 2025.03.29 |