본문 바로가기

Programming/DataBase

sql - select 문

SELECT문은 자료 기본검색시 사용되는 SQL 문이다.

 

SELECT문 작성법

 

  SELECT [DISTINCT] * or  열 이름 or  열 이름  as [ ALIAS]

  FROM 테이블

  WHERE 조건

  ORDER BY 열 expr [ASC 나 DESC] ;

 

-  예약어를 이용하여 작성된 내용은 SQL 버퍼에 저장된다.

- 산술식을 포함하여 검색 가능하다.

 

ex) 열이름으로 검색시 열 이름 순서로 나타낸다.

 

열의 ALIAS 사용법

 

- 합성 연산자:  (||) 로 열과 문자를 연결한다.

ex)  SELECT  name || ',' || title as "staff"

        FROM staff ;

 

- 중복행: distinct 를 쓰면 모든 열의 조합에 중복된 행을 제거한다.

ex) SELECT distinct id, title

        FROM staff ;

 

 - ORDER BY: 출력 결과 정렬 오름차순이 default.

ex) SELECT distinct name, title

        FROM staff

        ORDER BY id;

 

검색 조건 사용법

 

-WHERE + 조건식

      문자열:  ( ' )로 표현

      비교 연산자:  =, >, >=, <>

      SQL 비교 연산자:  (NOT)  BETWEEN.. AND, IN(list), (NOT) LIKE, IS (NOT) NULL

      논리 연산자: AND, OR, NOT

 

ex) SELECT name, title FROM staff 

       WHERE date BETWEEN '01/01/01' AND '01/12/31'; (BETWEEN.. AND 값의 범위)

 

      SELECT name   FROM staff 

       WHERE id IN (11, 33) ; (IN 연산자: 값의 포함 여부 체크, 11 OR 33이 id 인 name )

 

     SELECT name, start   FROM staff 

       WHERE name like '%E%' ; (LIKE 연산자: E를 포함하는 직원이름 검색) 혹은

       WHERE name like '_E%' ; (LIKE 연산자: 이름의 두번째가E인 직원이름 검색)

       WHERE date like '01%' ; (LIKE 연산자: 01년에 입사한 직원이름 검색)

 

   SELECT name   FROM staff 

       WHERE comission is null ; ( IS  NULL 연산자: 널값 체크 )

 

- 다중 조건 표현

 

ex) SELECT id, name, salary

        FROM staff 

       WHERE id = 22 and/or salary > 2000;  (22번 부서에서 월급 2000불 이상 받는 직원 검색 )


그룹 검색 GROUP BY 와 함께 쓰이며 COUNT,MAX, MIN, SUM, AVG 가있다.

* 그룹 함수에 대한 조건을 제한 하기 위해서는 반드시 HAVING절을 사용한다.

ex) SELECT 부서, AVG(기본급) AS 평균

FROM 사원

GROUP BY 부서

ORDER BY 부서 ASC;


*SELECT절에 그룹 속성(GROUP BY절에 명시된 속성)이나 그룹 함수가 나온 경우에는 일반 속성을 함께 사용할 수 없습니다. 즉, 'SELECT 부서,이름, 생일, AVG(기본급) AS 평균'과 같이 '이름'이나 '생일'처럼 그룹과 관계없는 속성을 SELECT절에 사용할 수 없습니다.


*AVG(기본급) AS 평균 : '기본급' 속성에 있는 값들의 평균을 구하되'평균'이라는 속성명으로 표시한다.


통합 질의 (UNION) : 통합은 일반 집합 이론에서의 합집합과 같다. 따라서 UNION을 사용하여 두 테이블을 합치면 두 테이블에 모두 속해 있는 튜플은 중복이 제거되어 1개만 표시된다.

'Programming > DataBase' 카테고리의 다른 글

SQL - DML  (0) 2013.06.26
SQL - JOIN  (0) 2013.06.26
SQL - DDL(Data Define Language)  (0) 2013.06.26
관계대수(Relational Algebra)  (0) 2013.06.26
뷰(View)의 개념  (0) 2013.06.26