본문 바로가기

컴퓨터활용능력/필기

3과목_데이터베이스(3)

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 BYSUM, 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