정보처리기사 실기 DML-SELECT1 (15)

미룬이·2024년 7월 25일
0

정보처리기사 실기

목록 보기
15/30

!주의! : 이 게시물은 정보성 게시물이 아닌 개인 공부 복기용 게시물 입니다. 정확하지 않을 수 있습니다.



🤗훈수는 언제나 환영입니다🤗


SQL응용 DML-SELECT1


일반 형식

SELECT[PREDICATE] [테이블명] 속성명 [AS 별칭][, [테이블명.]속성명,]
FROM 테이블명[, 테이블명,]
[WHERE 조건]
[GRouP BY 속성명, 속성명]
[HAVING 조건]
[ORDER BY 속성명[ASC|DESC]];

SELECT 절

  • DISTINCT : 중복된 튜플이 있으면 그 중 첫 번째 한개만 표시함
  • 속성명 : 검색하여 불러올 속성 또는 속성을 이용한 수식을 지정함
  • AS : 속성이나 연산의 이름을 다른 이름으로 표시하기 위해 사용함

FROM절

  • 검색할 데이터가 들어있는 테이블 이름을 기술함

WHERE절

  • 검색할 조건을 기술함

ORDER BY절

  • 데이터를 정렬하여 검색할 때 사용함
  • [ASC|DESC] : 정렬 방식으로, 'ASC'는 오름차순 'DESC'는 내림차순이다 생략시 자동으로 ASC 지정됨

조건 연산자

  • = : 같다
  • <> : 같지 않다
  • > : 크다
  • < : 작다
  • <= : 작거나 같다
  • >= : 크거나 같다

논리 연산자

  • NOT
  • OR
  • AND

LIKE 연산자

  • 대표 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색하기 위해 사용된다

기본 검색

  • SELECT 절에 원하는 속성을 지정하여 검색한다
  • 예) <사원>테이블의 모든 튜플을 검색하시오
SELECT FROM 사원;
  • 예) <사원> 테이블에서 '주소'만 검색하되 같은 '주소'는 한 번만 출력하시오
SELECT DISTINCT 주소 
  FROM 사원;
  • 예) <사원> 테이블에서 '기본급'에 특별수당 10을 더한 월급을 "xx부서의 xxx의 월급 xxx"형태로 출력하시오
SELECT 부서 + '부서의' AS 부서2, 이름 +'의 월급' AS 이름2, 기본급 + 10 AS 기본급2
    FROM 사원;

조건 지정 검색

  • WHERE 절에 조건을 지정하여 조건에 만족하는 튜플만 검색한다
  • 예) <사원> 테이블에서 '기획'부의 모든 튜플을 검색하시오
    SELECT 
    FROM 사원
    WHERE 부서 = '기획';
  • 예) <사원>테이블에서 "기획" 부서에 근무하면서 "대흥동"에 사는 사람의 튜플을 검색하시오
    SELECT *
    FROM 사원
    WHERE 부서 = '기획' AND 주소 = '대흥동';
  • 예) <사원>테이블에서 '부서'가 '기획'이거나 '인터넷' 인튜플을 검색하시오
    SELECT *
    FROM 사원
    WHERE 부서 = '기획' OR 부서 = '인터넷';
  • 예) <사원>테이블에서 성이 '김'인 사람의 튜플을 검색하시오
    SELECT *
    FROM 사원
    WHERE 이름 LIKE '김%';
  • 예) <사원>테이블에서 '생일'이 '01/01/69'에서 '12/31/73'사이인 튜플을 검색 하시오
    SELECT *
    FROM 사원
    WHERE 셍일 BETWEEN #01/01/69# AND 
    #12/31/73#;
  • 예) <사원>테이블에서 '주소'가 NULL인 튜플을 검색하시오
    SELECT *
    FROM 사원
    WHERE 주소 IS NULL;

정렬 검색

  • 예) <사원>테이블에서 '주소'를 기준으로 내림차순 정렬시켜 상위 2개 튜플만 검색하시오
SELECT TOP 2 *
    FROM 사원
    ORDER BY 주소 DESC;
  • 예) <사원>테이블에서 '부서'를 기준으로 오름차순 정렬하고, 같은'부서'에 대해서는 '이름'을 기준으로 내림차순 정렬시켜서 검색하시오
    SELECT *
    FROM 사원
    ORDER BY 부서 ASC , 이름 DESC;

하위 질의

  • 주어진 잘의를 먼저 수행하여 그 검색 결과를 조건절의 피연산자로 사용한다
  • 예) '취미'가 '나이트댄스'인 사원의 '이름'과'주소'를 검색하시오
SELECT 이름,주소
    FROM 사원
    WHERE 이름 = (SELECT 이름 FROM 여가활동 WHERE 취미 = '나이트댄스');
  • 예) 취미활동을 하지 않는 사원들을 검색하시오
SELECT *
    FROM 사원
    WHERE 이름 NOT IN (SELECT 이름 FROM 여가활동);
  • 예) '망원동'에 거주하는 사원들의 '기본급'보다 적은'기본급'을 받는 사원의 정보를 검색하시오
SELECT 이름,기본급,주소
    FROM 사원
    WHERE 기본급 < ALL (SELECT 기본급 FROM 사원 WHERE 주소 = '망원동');

복수 테이블 검색

  • 여러 테이블을 대상으로 검색을 수행함
  • 예) '경력'이 10년 이상인 사원의 '이름', '부서', '취미', '경력'을 검색하시오
    SELECT 사원.이름, 사원.부서, 사원.취미, 사원.경력
    FROM 사원, 여가활동
    WHERE 여가활동.경력 >= 10 AND 사원.이름 = 여가활동.이름;
 
profile
미룬이

0개의 댓글