Select

Concept

Select은 튜플들 중 전체 또는 조건을 만족하는 튜플을 검색

SELECT [PREDICATE] [테이블명.] 속성명 [AS 별칭]
FROM 테이블명
[ WHERE 조건 ]
[ GROUP BY 속성명 ]
[ HAVING 조건 ]
[ ORDER BY 속성명 [ ASC | DESC ];
  • Predicate
    1. ALL: Deafult 값
    2. Distinct : 중복된 튜플 제거

  • 비교 연산자

연산자 = <>
의미 같다 같지 않다

  • LIKE 연산자

대표 문자 * or % ? or _ #
의미 ALL 문자 문자 1개 숫자 1개

Example

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

Select Trim(이름)+”월급은” AS 이름, 기본급+10 AS  기본급 From 사원;

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

Select * From 사원 Oder by 부서 ASC, 이름 DESC

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

Select 부서, AVG(기본급) AS 평균 From 사원 Group by 부서 Order by 부서 ASC;

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

Select 부서, Count(*) AS 사원수 From 사원 Where 기본급 >= 100 Group By 부서 Having Count(*) >= 2;

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

Select 이름, 주소 From 사원 Where 이름 In (Select 이름 From 여가활동 Where 취미=’나이트댄스’);

Q. <학생정보> 테이블의 '학번과 <신청정보> 테이블의 '학번'이 같고, '신청과목이'이 "JAVA"인 학생들만을 대상으로
'이름','전공','신청과목'을 검색한다. 그리고 검색된 데이터는 '이름', '전공', '신청과목'을 기준으로 그룹을 지정하되
'전공'이 "컴퓨터공학"인 그룹만 표시하려 한다.

Select 이름, 전공, 신청과목
From 학생정보, 신청정보
Where 학생정보.학번 = 신청정보.학번
      And 신청과목 = 'JAVA'
Group By 이름, 전공, 신청과목 
Having 전공 = '컴퓨터공학';

Q. <결제> 테이블을 이용하여 결제여부별 학생수를 검색하는 SQL문을 작성하시오. 검색 결과는 다음과 같다.

Select 결제여부, Count(*) AS 학생수
From 결제
Group By 결제여부;