집계함수
- 수(COUNT), 합계(SUM), 평균(AVG), 최대값(MAX), 최소값(MIN) 등을 구하기 위한 함수구성
예
SELECT AVG(AGE) FROM STUDENT 1개의 행으로 결과가 구해짐
합계 구하는 SUM 함수
- 학생들의 나이 총합 출력하기(예제)
1: SELECT SUM(AGE) AS [나이 총합]
2: FROM STUDENT
평균 구하는 AVG 함수
- 학생들의 나이 총합 출력하기(예제)
1: SELECT AVG (AGE) AS [평균 나이]
2: FROM STUDENT
GROUP BY
- GROUP BY 절 뒤에 해당 칼럼을 기술
SELECT 칼럼 명, 집계함수
FROM 테이블 명
WHERE 조건 (연산자)
GROUP BY 칼럼 명;
- 소속 과정별 평균 연령을 과정 번호와 함께 출력하기(예제)
1: SELECT COU_ID, AVG (AGE) AS [평균 나이] FROM STUDENT
2: GROUP BY COU_ID
HAVING 조건
- 과정별 평균 연령이 25세 이상인 과정의 번호와 평균 연령 구하기(예제)
1: SELECT COU_ID, AVG (AGE) AS [평균 나이]
2: FROM STUDENT
3: GROUP BY COU_ID
4: HAVING AVG(AGE) >= 25
조인
Equi Join
- 조인 대상이 되는 테이블의 공통적으로 존재하는 칼럼 값이 같은 값을 가지는 조건(=)에 대해서 조인 결과를 얻는 것
테이블에 별칭 부여하기
- 서브 쿼리형식
SELECT SELECT_LIST → 메인 쿼리
FROM TABLE_LIST
WHERE COLUMN = (SELECT EXPRESSION → 서브 쿼리
FROM .....
WHERE.....)
서브 쿼리에는 몇 가지 규칙
1. 서브 쿼리 안에 서브 쿼리가 들어갈 수 있다. 이것을 네스팅(nesting)이라고 하며 메모리가 허용하는 한 무제한으로 중첩할 수 있다.
2. 메인 쿼리에서 서브 쿼리의 결과 값을 조건으로 사용할 때 SOME, ANY 또는
ALL 연산자를 사용하지 않는 일반적인 경우에는 서브 쿼리에서는 하나의
레코드 값만 리턴해야 한다. 그러므로 대부분의 경우 서브 쿼리에는 GROUP BY,
HAVING문을 사용할 수 없다.
3. 서브 쿼리에서 ORDER BY문은 TOP 연산자와 함께 있을 때만 사용 가능하다.
4. 서브 쿼리에서 SELECT 하지 않은 칼럼은 주 쿼리에서 사용할 수 없다.
- 단일 행(Single Row) 서브 쿼리는 수행 결과가 오직 하나의 로우(행, row)만을 반환하는 서브 쿼리를 가진 것
다중 행 서브 쿼리
- 서브 쿼리에서 반환되는 결과가 하나 이상의 행일 때 사용하는 서브 쿼리
IN 연산자
- 메인 쿼리의 비교 조건에서 서브 쿼리의 출력 결과와 하나라도 일치하면 메인 쿼리의 WHERE 절이 참이 되도록 하는 연산자
INSERT문의 기본 형식
INSERT INTO table_name (column_name, …)
VALUES(column_value, …) ;
1: INSERT INTO COURSE
2:(COU_ID, COU_NAME, TEA_NAME)
3: VALUES(50, ‘보안’, ‘주상면’)
4:
5: SELECT * FROM COURSE
UPDATE문의 기본 형식
UPDATE table_name
SET column_name1 = value1, column_name2 = value2, …
WHERE conditions;
- 과정 번호가 10번인 학생의 과정 번호를 그0번으로 수정(예제)
UPDATE문의 형식
1: UPDATE STUDENT
2: SET COU_ID=30
3: WHERE COU_ID=10
4:
5: SELECT * FROM STUDENT
과정 번호(COU_ID)가 10인 자료를 과정 번호 30으로 수정한다.
DELETE문의 기본 형식
- 30번 과정 소속 학생을 삭제(예제)
1: DELETE STUDENT
2: WHERE COU_ID=30
3:
4: SELECT * FROM STUDENT
'SQL' 카테고리의 다른 글
뷰와 저장 프로시저 - 2 (0) | 2017.06.15 |
---|---|
뷰와 저장 프로시저 - 1 (0) | 2017.06.15 |
SQL 기본 - 3 (0) | 2017.06.11 |
SQL 기본 - 2 (0) | 2017.05.24 |
SQL 기본 (0) | 2017.05.24 |