하루 10분씩 핵심만 골라 마스터하는 SQL (2)

Day 6

와일드 카드( % )

가장 자주 사용되는 와일드 카드로 퍼센트 기호 ( % )가 있다.
검색 문자열 내에서 %를 사용하면 개수에 관계없이 모든 문자를 의미한다.

SELECT 열의 이름 FROM 테이블의 이름 WHERE 열의 이름 LIKE '% + 검색하고자하는 것 + %';

%는 하나 이상의 문자를 의미하는 것이 아니라 0개 이상 문자를 의미하는 것이다. 즉, 해당 위치에 문자가 아예 없는 경우도 있다.


언더스코어( _ ) 와일드 카드

%와 달리, _는 항상 한 개의 문자만 있어야만 조건이 성립.


괄호( [] ) 와일드 카드

[]는 문자의 모음을 지정하는 데 사용.

~ WHERE 열의 이름 LIKE '[JM]%' ~ ;

괄호 내에 있는 문자 중 하나로 시작해야한다. 뒤에 %는 [JM] 뒤로 모든 길이의 모든 문자열이 있을 수 있다는 의미이다.

[]와일드 카드를 부정할 때, ^[JM]으로 사용할 수 있다.



Day 7

필드(열)의 결합

||를 통해 열을 결합시킬 수 있다.

SELECT 열의 이름 || 열의 이름 FROM 테이블의 이름;

또한 괄호() 처리를 할 수 있다.

SELECT ' ( ' || 열의 이름 || ' ) ' FROM 테이블의 이름;

위의 명령어를 출력하면 (USA       )처럼 공백이 생긴다.
이 공백을 제거하는 것이 RTRIM() 함수이다.
이 함수는 오른쪽에 있는 공백을 잘라낸다.


별칭 사용

별칭이란 필드나 값의 대체이름으로 , AS 키워드를 사용해 지정할 수 있다.

SELECT 열의 이름 AS 별칭 FROM 테이블의 이름;


수학적 계산

SELECT 열의 이름 (+-*/) 열의 이름 AS 별칭 FROM 테이블의 이름;


Day 8

함수

LEFT() : 문자열 왼쪽 끝에서부터 지정된 길이만큼 문자를 반환
LENGTH() : 문자열 길이를 반환
LOWER() : 문자열을 소문자로 바꿈
LTRIM() : 문자열 왼쪽에 있는 공백을 잘라냄
RIGHT(), RTRIM() : 방향이 왼쪽의 반대
SOUNDEX() : 문자열 SOUNDEX 값을 반환 (발음이 비슷한 것 반환)
UPPER() : 문자열의 문자를 대문자로 변경

오라클에서는 DATAPART() 함수가 없으므로

SELECT order_num FROM Orders WHERE to_number(to_char(order_date,'YY')) = 2004;


<오라클>
to_char() 함수는 날짜의 일부분을 얻는 데 사용
to_number() 함수는 이를 다시 숫자 값으로 바꾸는 데 사용
to_date() 함수는 문자열을 날짜로 변환하는데 사용


Day 9

집계 함수

1. AVG() 함수

AVG() 함수는 테이블의 열 개수와 각 열의 값을 모두 계산하여, 열 값의 합계를 개수로 나눈 값, 즉 평균값을 반환

2. COUNT() 함수

COUNT() 함수는 개수를 세는 기능인데, 테이블의 행의 개수를 세거나, 틍정조건에 맞는 행의 개수만 세는 것 모두 가능하다.

3. MAX() 함수

MAX() 함수는 지정한 열에서 가장 큰 값을 반환한다.

4. MIN() 함수

MIN() 함수는 MAX() 함수의 반대이다.

5. SUM() 함수

SUM() 함수는 지정한 열의 모든 값을 더한 합계를 계산하는 데 사용


Day 10


데이터 그룹화

데이터 그룹을 만드려면 SELECT 문에서 GROUP BY 절을 사용하면 된다.

SELECT 열의 이름 FROM 테이블의 이름 GROUP BY 열의 이름;

GROUP BY 절은 모든 WHERE 절 뒤에 위치해야하며 ORDER BY 절 앞에 위치해야한다.

필터링 그룹

WHERE 절은 각 행에 대한 것이지 그룹에 대한 것은 아니므로 HAVING 절을 써야한다.

SELECT 열의 이름 FROM 테이블의 이름 GROUP BY 열의 이름 HAVING 필터 조건

WHERE 절에 의해 제외된 행은 그룹에 포함되지 않는다. 따라서 WHERE 절을 사용하여 일단 특정한 대상을 정하고, GROUP BY 절로 그 대상에 한해 그룹화한 다음 HAVING 절로 각 그룹을 다시 필터링하는 것이다.

SELECT 절의 순서 

SELECT : 반드시 필요
FROM : 데이블에서 데이터 선택할 시 필요
WHERE : 행 수준의 필터링
GROUP BY : 그룹 지정
HAVING : 그룹 수준의 필터링
ORDER BY : 결과를 정렬

댓글

이 블로그의 인기 게시물

윈도우 설치에서 파티션 설정 오류(NTFS)

[exploit writing] 1_스택 기반 오버플로우 (1) First

하둡 설치 오류 정리