SELECT 문의 구문
SELECT문은 네 개의 DML문 중에서 가장 많이 쓰이는 구문입니다. 그리고 UPDATE, INSERT, DELETE 문 내에서 서브쿼리로써 존재할 수 있습니다. SELECT 문은 최소한 다음의 두 요소로 구성됩니다.
SELECT LIST : 검색될 열의 LIST
FROM 구 : 행을 검색하기 위한 TABLE
그럼 간단한 예를 보죠. 다음은 student란 Table에서 이름(name)을 검색하는 쿼리입니다.
SELECT name FROM student ;
결과는 다음과 같이 나오겠죠.
NAME
----------
김정민
정완교
박범길
유현승
……
학생의 이름과 나이를 알고싶으면 희망하는 순서로 열을 나열하면 됩니다.
SELECT name, age FROM student ;
결과는 다음과 같이 나옵니다.
NAME age
---------- ---
김정민 27
정완교 28
이해준 26
최종혁 27
박범길 24
테이블의 모든 열을 검색하려면 *을 사용하면 됩니다.
SELECT * FROM student ;
| NAME | AGE | ENG_SCORE | KOR_SCORE | ... | AVR_SCORE |
| ---------- | --- | ---------- | ---------- | ... | ---------- |
| 정완교 | 28 | 90 | 85 | ... | 93 |
| 이해준 | 26 | 70 | 90 | ... | 80 |
| 최종혁 | 27 | 30 | 10 | ... | 20 |
| 박범길 | 24 | 100 | 100 | ... | 100 |
| 최선재 | 23 | 90 | 90 | ... | 90 |
| 조관현 | 28 | 85 | 100 | ... | 87.5 |
| ... | ... | ... | ... | ... | ... |
| 김정민 | 27 | 0 | 10 | ... | 5 |
| NAME | ENG_SCORE | KOR_SCORE | (ENG_SCORE+KOR_SCORE)/2 |
| ---------- | ------------ | ------------- | ----------------------- |
| 정완교 | 90 | 85 | 87.5 |
| 이해준 | 70 | 90 | 80 |
| 최종혁 | 30 | 10 | 20 |
| 박범길 | 100 | 100 | 100 |
| 최선재 | 90 | 90 | 90 |
| 조관현 | 85 | 100 | 87.5 |
| ... | ... | ... | ... |
| 김정민 | 0 | 10 | 5 |
WHERE
| NAME | ENG_SCORE | KOR_SCORE |
| ---------- | ----------- | ---------- |
| 조관현 | 85 | 100 |
| 최종혁 | 30 | 10 |
| NAME | AGE | ENG_SCORE | KOR_SCORE | ... | AVR_SCORE |
| ---------- | --- | ---------- | ---------- | ... | ---------- |
| 박범길 | 24 | 100 | 100 | ... | 100 |
| 최선재 | 23 | 90 | 90 | ... | 90 |
| 조관현 | 28 | 85 | 100 | ... | 87.5 |
| NAME | AGE |
| ---------- | --- |
| 김정민 | 27 |
| 박범길 | 24 |
| 이해준 | 26 |
| 정완교 | 28 |
| 조관현 | 28 |
| 최선재 | 23 |
| 최종혁 | 27 |
| NAME | AGE |
| ---------- | --- |
| 최종혁 | 27 |
| 최선재 | 23 |
| 조관현 | 28 |
| 정완교 | 28 |
| 이해준 | 26 |
| 박범길 | 24 |
| 김정민 | 27 |
| COUNT(*) |
| -------- |
| 4 |
| NAME | ENG_SCORE | KOR_SCORE | (ENG_SCORE+KOR_SCORE)/2 |
| ---------- | ------------ | ------------- | ----------------------- |
| 정완교 | 90 | 85 | 87.5 |
| 이해준 | 70 | 90 | 80 |
| 최종혁 | 30 | 10 | 20 |
| 박범길 | 100 | 100 | 100 |
| 최선재 | 90 | 90 | 90 |
| 조관현 | 85 | 100 | 87.5 |
| ... | ... | ... | ... |
| 김정민 | 0 | 10 | 5 |
| NAME | ENG_SCORE | KOR_SCORE | AVERAGE |
| ---------- | ------------ | ------------- | ----------------------- |
| 정완교 | 90 | 85 | 87.5 |
| 이해준 | 70 | 90 | 80 |
| 최종혁 | 30 | 10 | 20 |
| 박범길 | 100 | 100 | 100 |
| 최선재 | 90 | 90 | 90 |
| 조관현 | 85 | 100 | 87.5 |
| ... | ... | ... | ... |
| 김정민 | 0 | 10 | 5 |
| NAME | ENG_SCORE | KOR_SCORE |
| ---------- | --------- | ---------- |
| 이해준 | 70 | 90 |
| 최종혁 | 30 | 10 |
| ... | ... | ... |
| 김정민 | 0 | 10 |
| NAME | ENG_SCORE | KOR_SCORE |
| ---------- | --------- | ---------- |
| 정완교 | 90 | 85 |
| 박범길 | 100 | 100 |
| 최선재 | 90 | 90 |
| 조관현 | 85 | 100 |
| ... | ... | ... |
| NAME | ENG_SCORE |
| ---------- | --------- |
| 최종혁 | 30 |
| NAME | ENG_SCORE |
| ---------- | --------- |
| 박범길 | 100 |
| 최선재 | 90 |
| 조관현 | 85 |
| NAME |
| ---------- |
| 박범길 |
| 최선재 |
| 조관현 |
| NAME | AGE |
| ---------- | --- |
| 김정민 | 28 |
| 정완교 | 29 |
| 이해준 | 26 |
| 최종혁 | 50 |
| ... | .... |