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 |