본문

SQL (Structured Query Language)

반응형

# SQL (Structured Query Language)




1. <사원> 테이블에서 부서만 검색하되, 같은 부서는 한 번만 검색하는 SQL문을 작성하시오.


SELECT DISTINCT 부서

FROM 사원;


※ DISTINCT : 중복제거


- 실행결과 예시


부서 

기획 

인터넷 

편집 


2. <사원> 테이블에서 이름에 문자열 "월급은", 기본급에 10을 더한 값을 검색하는 SQL을 작성하시오. 단, '이름' 속성에 있을지 모르는 좌우 공백을 모두 제거하시오.


SELECT Trim(이름)+"월급은" AS 이름, 기본급+10 AS 기본급 

FROM 사원;


- 실행결과 예시


 이름

기본급 

홍길동월급은 

130 


※ 기본급 + 10 AS 기본급

기본급에 10을 더한 다음 '기본급'이라는 속성명으로 표시한다.


3. <사원> 테이블에서 부서가 '기획'인 튜플을 검색하는 SQL문을 작성하시오.


SELECT *

FROM 사원

WHERE 부서 = '기획';


4. <사원> 테이블에서 부서는 '기획'이고, 기본급이 110보다 큰 튜플을 검색하는 SQL문을 작성하시오.


SELECT *

FROM 사원

WHERE 부서='기획' AND 기본급 > 110;


5. <사원> 테이블에서 부서가 '기획'이거나 '인터넷'인 튜플을 검색하는 SQL문을 작성하시오.


SELECT *                                    

FROM 사원                                   

WHERE 부서='기획' OR 부서='인터넷';


SELECT *

FROM 사원

WHERE 부서 IN ('기획','인터넷);


6. <사원> 테이블에서 이름의 첫 번째 글자가 '김'인 모든 튜플을 검색하는 SQL문을 작성하시오.


SELECT *

FROM 사원

WHERE 이름 LIKE '김%';


7. <사원> 테이블에서 기본급이 85에서 95사이인 튜플을 검색하는 SQL문을 작성하시오.


SELECT *

FROM 사원

WHERE 기본급 BETWEEN 85 AND 95;


8. <사원> 테이블에서 주소가 NULL인 튜플을 검색하는 SQL문을 작성하시오.


SELECT *

FROM 사원

WHERE 주소 IS NULL;


9. <사원> 테이블에서 부서가 '기획'인 튜플을 검색하되, 이름을 기준으로 오름차순 정렬하는 SQL문을 작성하시오.


SELECT *

FROM 사원

WHERE 부서='기획'

ORDER BY 이름;


10. <사원> 테이블의 모든 튜플을 검색하되, 부서를 기준으로 오름차순 정렬하고 같은 부서에 대해서는 이름을 기준으로 내림차순 정렬하는 SQL문을 작성하시오.


SELECT *

FROM 사원

ORDER BY 부서 ASC, 이름 DESC;


11. <사원> 테이블에서 부서별로 기본급의 평균을 구하여 부서를 기준으로 오름차순 정렬하는 SQL문을 작성하시오.


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

FROM 사원

GROUP BY 부서    

ORDER BY 부서 ASC;


※ 'GROUP BY 부서'에 의해서 부서별로 그룹을 지정한다.

  

- 실행결과 예시


부서 

평균 

기획 

110 

인터넷

85 

편집 

103.3 


12. <사원> 테이블에서 기본급이 100 이상인 사원이 2명 이상인 부서의 부서명과 사원수를 검색하는 SQL문을 작성하시오.


SELECT 부서, COUNT(*) AS 사원수

FROM 사원

WHERE 기본급 >=100

GROUP BY 부서

HAVING COUNT(*) >=2;


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


- 실행결과 예시


부서

사원수 

기획 

편집 


13. <여가활동> 테이블에서 취미가 '나이트댄스'인 사원에 대해 <사원> 테이블에서 해당 사원의 이름과 주소를 검색하는 SQL문을 작성하시오.


SELECT 이름, 주소

FROM 사원

WHERE 이름 IN (SELECT 이름 FROM 여가활동 WHERE 취미='나이트댄스');


※ 먼저 SELECT 이름 FROM 여가활동 WHERE 취미='나이트댄스' 를 수행하여 <여가활동> 테이블에서 '성춘향'을 찾는다.

SELECT 이름, 주소 FROM 사원 WHERE 이름 IN('성춘향') 과 같이 된다.


- 실행결과 예시


이름 

주소 

성춘향 

후평동 


14. 경력이 10년 이상인 사원의 이름, 부서, 취미, 경력을 검색하는 SQL문을 작성하시오.


SELECT 사원.이름, 사원.부서, 여가활동, 취미, 여가활동.경력

FROM 사원, 여가활동

WHERE 여가활동.경력 >= 10 AND 사원.이름 = 여가활동.이름;


15. 사원들의 명단이 <임원> 테이블과 <직원> 테이블에 저장되어 있다. 두 테이블을 통합하는 SQL문을 작성하시오.

단, 같은 레코드가 중복되어 나오지 않게 하시오.


SELECT *

FROM 임원

UNION SELECT * FROM 직원;


※ UNION은 일반 집합 이론에서의 합집합과 같다. 따라서 UNION을 사용하여 두 테이블을 합치면 

테이블에 모두 속해있는 튜플은 중복이 제거되어 1개만 표시된다.


반응형

공유

댓글