정보처리기사/Database

정처기 수준에서의 데이터베이스 - SQL(DML)

mostlyjinsonit 2018. 10. 4. 21:54
반응형

DML(Date Manipulation Language)

SELECT *DISTINT = 중복된 값을 제거

INSERT

DELETE

UPDATE

 

조건 지정 검색 

1. '이거나' 라는 조건을 검색할 떄, '똑같은 속성안에 있는 검색 조건이여야 IN을 쓸 수 있다 그게 아니라면 OR

2. SELECT *

    FROM 학생

    WHERE 성명 LIKE '이_ _; 

 

=> 와일드 카드 _, % _ = 한글자, % = 문자열

    LIKE 'A%'  = 'A'로 시작하는 데이터만 검색

    LIKE '%A' = 'A'로 끝나는 데이터만 검색   

    LIKE '%KIM%'  =  'KIM' 문자가 있는 데이터 들만 검색

    LIKE '%K%I%' = 'K' 문자와 'I'문자가 있는 데이터 들만 검색

    LIKE '_A%' = 'A'문자가 두 번째 위치한 데이터 들만 검색

 

3. BETWEEN 이상 AND 이하

4. ORDER BY 속성 ASC, 속성 DESC 

5. IS NULL / IS NOT NULL

 

그룹 지정 검색

1. SELECT 학번, AVG(성적) AS 평균성적 => 평균성적이란 속성을 만들어 그 밑에 평균을 넣어라

   FROM 수강

   GROUP BY 학번

 

2. SELECT 과목코드, COUNT(*) AS 학생수 => 테이블에서 2명 이상 등록한 과목의 과목코드와 학생수를 검색할 떄,

    FROM 수강                                                 GROUP BY로 과목코드 별로 묶고 그 갯수를 HAVING절로 조건을 걸어 카운트 한 후,

    GROUP BY 과목코드;                                   학생수라는 새로운 속성을 만들어 그 밑에 과목코드와 학생수를 넣는다.

    HAVING COUNT(*) >= 2;

   

부속 질의 검색 = 테이블 두개에서 검색할때

1. in과 exist => where 속성 in (), where exist() 

2. UNION 과 EXCEPT => UNION은 합집합, EXCEPT은 차집합.

 

조인 질의

EX) 전기 학과 학생의 학번과 성명, 수강하고 있는 과목코드를 검색하시오.

      SELECT a.학번, a.성명, b.과목코드

      FROM 학생 a, 수강 b

      WHERE a.학번=b.학번 AND a.학과='전기';

 

      SELECT a.학번, a.성명, b.과목코드

      FROM 학생 a, JOIN 수강 b ON(a.학번=b.학번)

      WHERE a.학과='전기';

 

      SELECT a.학번, a.성명, b.과목코드

      FROM 학생 a, LEFT OUTER JOIN 수강 b *LEFT OUTER JOIN을 하면 조건에 만족하지 못하더라도 널값으로 들어간다 

      ON (a.학번=b.학번)

      WHERE a.학과='전기'; 

          ...

INSERT INTO 테이블명(속성명1, 속성명2..)

VALUES(데이터1, 데이터2, ...);

 

DELETE FROM 테이블명

WHERE 조건;

 

UPDATE 테이블명

SET 속성명=데이터,

WHERE 조건;

 

 

반응형