안녕하세요~ 오늘은 화요일이네요 ㅎ
아침부터 병원에서 피검사를 받느라 피를 좀 빼서 그런지 정신이 몽롱하네요 ㅎㅎ
이번 포스팅만 빨리 하고 한숨 자던지 해야겠네요 ㅎ
저번시간에 이어서 다양한 예제를 살펴보도록 할께요~!!ㅎ
음~ 만약 올해의선수로 선정된 선수의 이름과 팀명, 평균평점을 검색하라는것이 있으면 어떻게 해야할까요~?
SELECT 이름, 팀, 평균평점
FROM 축구선수
WHERE 이름 IN (SELECT 이름 FROM 올해의선수)
라고 나타내면 되는것이죠 ㅎ
하지만 여기서 알아야할것은 이 문제는 테이블이 하나인 문제는 아니고!! 2개의 테이블을 연결시킨것이에요 ㅎ
무슨말이냐~?
축구선수라는 테이블이 있고~ 올해의선수 테이블이 따로 있는것이죠!!
SELECT 이름 FROM 올해의선수는 올해의선수 테이블에서 이름을 추려서 그 이름이 축구선수 테이블에 있으면 그선수의 이름, 팀, 평균평점을 가져오라는 말이에요 ㅎ
따라서 이 문제는 두개의 테이블에서 연산이 수행되는것이에요 ㅎ
자!! 다음 예제는
책명이 운영체제인 책의 가격을 검색하시오 라는게 있으면 어떻게 해야 할까요~?
SELECT 가격
FROM 도서가격
WHERE 책번호=
(SELECT 책번호 FROM 도서 WHERE 책명='운영체제') 라고 쓸수 있겠지요?ㅎ
여기서 테이블은 도서가격과 도서 두테이블이라고 볼수 있는데요 ㅎ
먼저 도서라는 테이블로 가서 책명이라고 하는 속성에서 운영체제인놈들만 찾아서 그놈들의 책번호를 가져오는것이에요 ㅎ
그 책번호를 가지고 도서가격테이블에서 그번호해당하는 놈의 가격을 출력하는것이에요 ㅎ
다음으로는 축구선수 테이블과 국가대표 테이블의모든 튜플을 중복 없이 하나의 결과로 검색하시오 라는게 있으면
SELECT * FROM 축구선수
UNION
SELECT * FROM 국가대표 라고 하면 되겠지요 ㅎ
여기서 UNION이라는 것은 중복을 허용하지 않는다라는 의미로 두테이블에서 중복된 결과값이 있을때 한번만 보여준다는것이에요 ㅎ
그럼 중복을 허용하는 명령어는 뭐일까요~? 바로 UNION ALL 이라고 쓰면 중복된 데이터를 여러번 가지고 온다는 소리가 되는것이에요 ㅎ
이렇게 SELECT문에 대한걸 마무리 할텐데요 ㅎ
정리를 해보자면
SELECT 이후에 속성명이 쫘악~ 나오는데 이속성명을 다보여 달라고 할때 * 를 쓰면 되는것이구요 ㅎ
중복된 데이터결과를 다보여달라고 하는것은 생략가능한 ALL 이있고~ 이 반대로 중복을 제거해서 가지고 오라는것이 DISTINCT옵션이에요~
그다음 FROM 테이블명이 나오구요!!
WHERE 이라고 하는 조건이 나오게 되구요~ 이 조건에는 AND, OR, BETWEEN A AND B, LIKE 라는걸 쓸수 있지요 ㅎ
뭔가를 묶어서 가지고 올때 GROUP BY라는걸 쓰게 되구요 ㅎ
GROUP BY의 조건을 쓸때 HAVING이라는걸 쓰면 되는것이에요 ㅎ
HAVING 뒤에 오는 조건에는 COUNT, SUM, AVG, MAX, MIN 이 있구요 ㅎ
그다음으로 정렬해서 보여달라는 ORDER BY라는게 있지요 ㅎ
오름차순은 ASC, 내림차순은 DESC 이라고 말했지요!!ㅎ
SELECT에서는 이정도만 알고 있으면 될것같아요 ㅎ
오늘은 여기까지만 하고~ 내일 또 여러분과 함께 공부해보도록 할께요^^
즐거운 화요일 보내세요 ㅎ
'엥엥이의 유용한정보' 카테고리의 다른 글
엥엥이와 함께하는 정보처리기사 #28 [데이터베이스1-27] (0) | 2016.12.08 |
---|---|
엥엥이와 함께하는 정보처리기사 #27 [데이터베이스1-26] (0) | 2016.12.07 |
엥엥이와 함께하는 정보처리기사 #25 [데이터베이스1-24] (0) | 2016.12.05 |
엥엥이와 함께하는 정보처리기사 #24 [데이터베이스1-23] (0) | 2016.12.02 |
엥엥이와 함께하는 정보처리기사 #23 [데이터베이스1-22] (0) | 2016.12.01 |