데이터 검색
데이터 검색
기본 검색
SELECT
[ALL | DISTINCT]
속성명_목록
FROM
테이블명;- 속성명의 목록은 쉼표로 구분한다.
- 예시
SELECT NAME, MOBILE_NO FROM MEMBER
- 예시
- 모든 속성을 조회하고 싶을 때는 *(아스타리스크) 기호를 사용한다.
- 예시
SELECT * FROM MEMBER
- 예시
- 조회 결과의 중복 여부를 지정할 수 있다.
- ALL
- 중복 허용
- DISTINCT
- 중복 제거
- ALL
- AS 키워드를 통해 해당 속성을 다른 이름으로 출력할 수도 있다.
- 예시
SELECT NAME AS USERNAME, MOBILE_NO FROM MEMBER
- 예시
조건 검색
- 조건을 만족하는 데이터만 검색한다.
- 기본 형식
SELECT
[ALL | DISTINCT]
속성명_목록
FROM
테이블명
[WHERE 조건];- 연산자
- 비교 연산자
- A = B
- A는 B와 같다.
- A <> B
- A는 B와 같지 않다.
- A < B
- A는 B보다 작다.
- A > B
- A는 B보다 크다.
- A <= B
- A는 B보다 작거나 같다.
- A >= B
- A는 B보다 크거나 같다.
- A = B
- 논리 연산자
- A AND B
- A와 B를 모두 만족한다.
- 예시
SELECT NAME, MOBILE_NO FROM MEMBER WHERE GENDER = 'M' AND AGE >= 15
- A OR B
- A 또는 B를 만족한다.
- 예시
SELECT NAME, MOBILE_NO FROM MEMBER WHERE GENDER = 'M' OR AGE >= 15
- NOT A
- A를 만족하지 않는다.
- 예시
SELECT NAME, MOBILE_NO FROM MEMBER WHERE NOT GENDER = 'M'
- A AND B
- 비교 연산자
LIKE 검색
- 부분적으로 일치하는 데이터를 검색한다.
- 관련 기호
- %
- 0개 이상의 문자
- 문자의 내용과 개수는 상관이 없다.
- -
- 1개의 문자
- 문자의 내용은 상관이 없다.
- %
- 사용 예시
SELECT * FROM MEMBER WHERE NAME LIKE '김%'; /* 이름이 '김'으로 시작하는 회원 검색 */
SELECT * FROM MEMBER WHERE NAME LIKE '%상%'; /* 이름 중에 '상'이 포함된 회원 검색 */
SELECT * FROM MEMBER WHERE NAME LIKE '_진_'; /* 이름이 3글자면서 두번째 글자가 '진'인 회원 검색 */NULL 관련 검색
- 키워드를 통해 NULL 여부를 판단한다.
- IS NULL
- 대상 속성에 대해서 입력된 값이 NULL인 데이터를 조회한다.
- IS NOT NULL
- 대상 속성에 대해서 입력된 값이 NULL이 아닌 데이터를 조회한다.
- 사용 예시
SELECT * FROM MEMBER WHERE MOBILE_NO IS NULL; /* 연락처가 NULL인 회원 검색 */
SELECT * FROM MEMBER WHERE MOBILE_NO IS NOT NULL; /* 연락처가 NULL이 아닌 회원 검색 */정렬 검색
- SELECT문의 검색 결과 테이블은 일반적으로 DBMS가 정한 순서대로 출력된다.
- 결과 테이블의 내용을 사용자가 원하는 순서로 출력하려면 ORDER BY 키워드를 사용한다.
- 기본 형식
SELECT
[ALL | DISTINCT]
속성명_목록
FROM
테이블명
[WHERE 조건]
[ORDER BY 속성명_목록 [ASC | DESC]];- 속성명 목록은 쉼표를 통해 구분한다.
- 예시
SELECT * FROM MEMBER ORDER BY GENDER, AGE;
- 예시
- ASC는 오름차순, DESC는 내림차순을 의미한다.
- 예시
SELECT * FROM MEMBER ORDER BY GENDER DESC, AGE ASC;
- 예시
- ASC는 디폴트 값이라서 명시하지 않아도 된다.
집계 함수를 이용한 검색
- 집계 함수(aggregate function)란?
- 특정 속성 값을 통계적으로 계산한 결과를 검색하기 위한 함수
- 열 함수(column function)라고도 부른다.
- 종류
- 모든 데이터형에 사용 가능
- COUNT
- 속성 값의 개수
- DISTINCT 키워드를 통한 중복 제거 가능
- MAX
- 속성 값의 최댓값
- MIN
- 속성 값의 최솟값
- COUNT
- 숫자 데이터형에만 사용 가능
- SUM
- 속성 값의 합계
- DISTINCT 키워드를 통한 중복 제거 가능
- AVG
- 속성 값의 평균
- DISTINCT 키워드를 통한 중복 제거 가능
- SUM
- 모든 데이터형에 사용 가능
- 사용 예시
SELECT MAX(AGE) AS OLDER_AGE FROM MEMBER; /* 회원 테이블에서 가장 높은 나이 검색 */
SELECT AVG(AGE) FROM MEMBER WHERE GENDER = 'M'; /* 회원 테이블에서 남자 회원의 평균 나이 검색 */그룹별 검색
- 특정 속성의 값이 같은 투플을 모아 그룹을 만들고, 그룹별로 검색을 한다.
- 기본 형식
SELECT
[ALL | DISTINCT]
속성명_목록
FROM
테이블명
[WHERE 조건]
[GROUP BY 속성명목록 [HAVING 조건]]
[ORDER BY 속성명_목록 [ASC | DESC]];- GROUP BY 키워드는 그룹을 나누는 기준이 되는 속성 목록을 지정한다.
- HAVING 키워드는 그룹에 대한 조건을 지정한다.
- 사용 예시
SELECT GENDER, AVG(AGE) FROM MEMBER GROUP BY GENDER; /* 성별 나이 평균을 검색한다. */
SELECT CITY, AVG(AGE) FROM MEMBER GROUP BY CITY HAVING COUNT(*) <= 1000000; /* 인구가 100만명이 안 되는 도시의 평균 나이를 검색한다. */ 이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.