데이터 검색
포스트
취소

데이터 검색

기본 검색

SELECT  
    [ALL | DISTINCT]
    속성명_목록
FROM
    테이블명;
  • 속성명의 목록은 쉼표로 구분한다.
    • 예시
      • SELECT NAME, MOBILE_NO FROM MEMBER
  • 모든 속성을 조회하고 싶을 때는 *(아스타리스크) 기호를 사용한다.
    • 예시
      • SELECT * FROM MEMBER
  • 조회 결과의 중복 여부를 지정할 수 있다.
    • ALL
      • 중복 허용
    • DISTINCT
      • 중복 제거
  • 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 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'

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
        • 속성 값의 최솟값
    • 숫자 데이터형에만 사용 가능
      • SUM
        • 속성 값의 합계
        • DISTINCT 키워드를 통한 중복 제거 가능
      • AVG
        • 속성 값의 평균
        • DISTINCT 키워드를 통한 중복 제거 가능
  • 사용 예시
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 라이센스를 따릅니다.