3과목_데이터베이스
3. 데이터베이스 질의
3-1 단순조회 질의
SELECT [DISTINCT] 필드이름
FROM 테이블이름
[WHERE 조건식]
- SQL문에서는 대- 소문자를 구분하지 않으며, 마지막에 ‘;’ 을 입력해 SQL문의 끝임을 알린다.
- DISTINCT SELECT 문에 'DISTINCT'를 입력하면 검색의 결과가 중복되는 레코드는 검색시 한 번만 표시된다.
- 필드 이름 : 테이블의 모든 필드를 검색할 경우에는 필드이름 대신 ‘*’를 입력하고, 특정 필드들만 검색할 경우 필드와 필드는 쉼표(,)로 구분하여 표시한다.
- WHERE 조건식 : 조건을 입력하여 특정 조건에 맞는 레코드만 검색할 때 사용한다.
3-2 정렬
SELECT [DISTINCT] 필드이름
FROM 테이블이름
[WHERE 조건식]
[ORDER BY 필드이름, 정렬방식, …]
- ORDER BY 문 : 특정 필드를 기준으로 레코드를 정렬하여 검색할 때 사용한다.
- 정렬 방식 : 'ASC'와 'DESC'가 있으며 'ASC'는 오름차순, 'DESC'는 내림차순을 의미한다.
정렬 방식을 지정하지 않으면 기본적으로 오름차순(ASC) 정렬이 수행된다.
3-3 그룹지정
SELECT [DISTINCT] 필드이름
FROM 테이블 이름
[WHERE 조건식]
[GROUP BY 필드이름]
[HAVING 그룹조건식]
- GROUP BY 절 : 특정 필드를 기준으로 그룹화하여 검색할 때 사용한다.
- HAVING은 그룹에 대한 조건을 지정할 때 사용한다.
- 일반적으로 GROUP BY는 SUM, AVG, COUNT와 같은 그룹 함수와 함께 사용된다.
3-4 날짜/시간 처리 함수
NOW() | 현재 날짜와 시간을 표시한다. |
DATE() | 현재 날짜를 표시한다. |
TIME() | 현재시간을 표시한다. |
WEEKDAY(날짜) | 지정된 날짜의 요일에 해당하는 숫자를 표시한다. |
DATEPART(형식, 날짜) | 지정된 날짜에서 형식에 제시된 값만 표시한다. |
DATEADD(형식, 값, 날짜) | 지정된 날짜에서 형식(연, 월, 일)을 지정한 값만큼 표시한다. |
DATEDIFF(형식, 날짜1, 날짜2) | 두 날짜 사이의 형식(연, 월, 일)의 경과 값을 표시한다. |
YEAR(날짜) | 지정된 날짜에서 연도만 표시한다. |
MONTH(날짜) | 지정된 날짜에서 월만 표시한다. |
DAY(날짜) | 지정된 날짜에서 일만 표시한다. |
HOUR(시간) | 지정된 날짜에서 시만 표시한다. |
MINUTE(시간) | 지정된 날짜에서 분만 표시한다. |
SECOND(시간) | 지정된 날짜에서 초만 표시한다. |
3-5 문자 처리 함수
LEFT(문자열, 자릿수) | 왼쪽에서 주어진 자릿수만큼 추출한다. |
MID(문자열, 시작값, 자릿수) | 시작 위치에서 주어진 자릿수만큼 추출한다. |
RIGHT(문자열, 자릿수) | 오른쪽에서 주어진 자릿수만큼 추출한다. |
TRIM(문자열) | 문자열의 좌우공백을 제거한다. |
LTRIM(문자열) | 왼쪽에 있는 공백을 제거한다. |
RTRIM(문자열) | 오른쪽에 있는 공백을 제거한다. |
STRCOMP(문자열1, 문자열2) | 문자열1과 문자열2가 비교하여 같으면 0, 다르면 1을 반환 한다. |
LEN(문자열) | 문자열의 길이를 반환한다. |
LENB(문자열) | 문자열의 길이를 바이트로 반환한다. |
LCASE(문자열) | 문자열을 모두 소문자로 반환한다. |
UCASE(문자열) | 문자열을 모두 대문자로 반환한다. |
REPLACE(문자열1, 시작위치, 개수, 문자열2) | 문자열1의 시작 위치에서 개수로 지정된 문자열을 문자열2로 반환한다. |
SPACE(개수) | 지정한 수만큼의 공백을 추가한다. |
STRING(개수, 문자) | 문자를 지정한 수만큼 반복해서 표시한다. |
3-6 선택함수
IIF(조건, 실행1, 실행2) | 조건이 참이면 실행1을, 거짓이면 실행2를 수행한다. |
CHOOSE(색인번호, 실행1, 실행2) | 색인번호가 1이면 실행1, 2이면 실행2, …를 수행한다. |
SWITCH(조건1, 실행1, 조건2, 실행 2, …) | 조건1이 참이면 실행1을, 조건2가 참이면 실행2를, …를 수행한다. |
3-7 그룹함수
AVG(필드명) | 필드의 평균을 구한다. |
SUM(필드명) | 필드의 합계를 구한다. |
COUNT(필드명) | 필드의 레코드 수를 구한다. |
MIN(필드명) | 필드에서 최소값을 구한다. |
MAX(필드명) | 필드에서 최대값을 구한다. |
3-8 특수 연산자를 이용한 질의/하위 질의
IN | - 필드의 값이 IN 연산자의 인수로 지정된 값과 같은 레코드만 검색한다. - 문법 : WHERE 필드 또는 필드를 나타내는 식 IN(값1, 값2, …) |
BETWEEN | - 필드의 값이 Between 연산자의 범위로 지정된 값 이내에 포함되는 레코드만 검색한다. - 문법 : WHERE 필드 또는 필드를 나타내는 식 BETWEEN 값1 AND 값2 |
LIKE | - 대표 문자를 이용해 필드의 값이 패턴과 일치하는 레코드만 검색한다. - 문법 : WHERE 필드 또는 필드를 나타내는 식 LIKE '문자패턴' |
하위 질의 | - 선택질의(SELECT) 혹은 실행질의(INSERT, UPDATE, DELETE) 안에 작성하는 SELECT문 - 하위 질의 내에 또 다른 질의를 만들 수 있다. - 하위 질의를 기본 질의에 IN 연산자로 연결하면, 하위 질의의 결과가 기본 질의의 기본 질의의 조건으로 사용된다. |
3-9 조인
- 2개 이상의 테이블에 나누어져 저장된 정보를 1개의 테이블처럼 사용하기 위해 연결하는 방법을 정의하는 것이다.
- 조인에 사용되는 기준 필드의 데이터 형식은 동일하거나 호환되어야 한다.
- 여러 개의 필드를 조인할 경우 접근 속도 향상을 위해 필드 이름 앞에 테이블 이름을 마침표(.)로 구분하여 사용한다.
1 : 내부 조인
2 : 왼쪽 외부 조인
3 : 오른쪽 외부 조인
내부조인
SELECT 필드이름
FROM 테이블이름1 INNER JOIN 테이블이름2
ON 테이블이름1.필드이름=테이블이름2.필드이름
- 가장 일반적인 조인의 형태이다.
- 관계가 설정된 두 테이블에서 조인된 필드가 일치하는 행만 질의에 포함된다.
왼쪽 외부 조인(Left Join)
SELECT 필드이름
FROM 테이블이름1 LEFT JOIN 테이블이름2
ON 테이블이름1.필드이름=테이블이름2.필드이름
- 왼쪽 테이블에서는 모든 레코드를 포함하고, 오른쪽 테이블에서는 조인된 필드가 일치하는
레코드의 질의만 포함된다.
- 화살표의 방향이 왼쪽에서 오른쪽으로 이동되듯이 표현된다.
오른쪽 외부 조인(Right Join)
SELECT 필드이름
FROM 테이블이름1 RIGHT JOIN 테이블이름2
ON 테이블이름1.필드이름=테이블이름2.필드이름
- 오른쪽 테이블에서는 모든 레코드를 포함하고, 왼쪽 테이블에서는 조인된 필드가 일치하는 레코드
의 질의만 포함된다.
- 화살표의 방향이 오른쪽에서 왼쪽으로 이동되듯이 표현된다.
3-10 카테션 곱
- 일반적으로 2개 이상의 테이블을 조인할 경우 조인 조건을 생략하거나 잘못된 조건을 설정할 경우에 발생한다.
- 2개의 테이블에 조인할 경우 첫 번째 테이블의 모든 필드와 두 번째 테이블의 모든 필드가 조인될 경우에도 카테션 곱이 발생한다.
- 카테션 곱이 발생한 경우 검색되는 레코드의 수는 조인되는 테이블의 레코드를 모두 곱한 개수만큼, 필드는 모두 더한 개수만큼 검색된다.
3-11 실행질의
삽입(INSERT문)
- 테이블에 레코드를 추가할 때 사용한다.
- 값을 직접 지정하여 추가할 수도 있고, 다른 테이블의 레코드를 추출하여 추가할 수도 있다.
- 레코드의 전체 필드를 추가할 경우에는 필드명을 생략할 수 있다.
- 직접 입력하여 추가하기
INSERT INTO 테이블 이름(필드이름1, 필드이름2, …)
VALUES(필드값1, 필드값2, …)
- 테이블로부터 추가하기
INSERT INTO 테이블 이름(필드이름1, 필드이름2, …)
SELECT 필드 이름
FROM 테이블 이름
WHERE 조건
수정(UPDATE문)
UPDATE 테이블 이름
SET 필드이름1=값1, 필드이름2=값2…
WHERE 조건
- 테이블의 필드 값을 변경할 때 사용한다.
- 조건을 지정하여 한 번에 여러 레코드의 필드값을 변경할 수 있다.
- 조건을 지정하지 않으면 테이블 내의 전체 레코드에 대해 변경이 이루어진다.
삭제(DELETE문)
DELETE *
FROM 테이블 이름
WHERE 조건
- 테이블의 레코드를 삭제할 때 사용된다.
- 조건을 지정하여 한 번에 여러 레코드를 삭제할 수 있다.
- 조건을 지정하지 않으면 테이블 내의 전체 레코드가 삭제된다.
3-12 크로스탭 질의
- 테이블의 특정 필드의 요약 값(합계, 개수, 평균 등)을 표시하고 그 값들을 그룹별로, 한 집합은 데이터 시트의 왼쪽에 또 한 집합은 데이터시트의 위쪽에 나열된다.
- 열과 행 방향의 표 형태로 숫자 데이터의 집계를 구한다.
- 스프레드시트 프로그램의 피벗테이블과 유사하다.
3-13 매개변수 질의
- 실행할 때 레코드 검색 조건이나 필드에 삽입할 값과 같은 정보를 대화상자로 입력받아 질의에 사용되는 질의이다.
- 두 가지 이상의 정보를 물어보는 질의를 디자인하여 검색할 수도 있다.
3-14 통합 질의
SELECT 필드 이름
FROM 테이블 이름
UNION SELECT 필드 이름
FROM 테이블 이름
- 성격이 유사한 두 개의 테이블이나 질의의 내용을 합쳐서 하나의 테이블을 만들기 위한 질의이다.
- 같은 레코드는 한 번만 기록된다.
- 두 테이블의 열(필드)의 개수가 다르면 통합되지 않는다.
- 질의의 결과에는 먼저 지정한 테이블의 필드 이름이 표시된다.
'컴퓨터활용능력 > 필기' 카테고리의 다른 글
3과목_데이터베이스(5) (0) | 2018.07.09 |
---|---|
3과목_데이터베이스(4) (0) | 2018.07.08 |
3과목_데이터베이스(1,2) (0) | 2018.07.06 |
2과목_스프레드시트(7) (0) | 2018.07.05 |
2과목_스프레드시트(5,6) (0) | 2018.07.04 |