안녕하세요. 하루인생입니다.
벌써 시험이 17일 정도 남았는데요. 오늘도 열심히 해서 합격에 가까워지길 바라요!
데이터베이스 4일 차
오늘은 DML을 공부해볼 건데요.
DML은 SQL 언어 문제 중 가장 자주 출제되는 문제이고, DML의 빈칸 채우기 문제보다는
풀 코딩으로 자주 출제되므로 직접 적어보고 익혀야 합니다.
DML은 SELECT, INSERT, UPDATE, DELETE 이렇게 네 가지로 구성되어있습니다.
하나하나씩 알아가 보도록 하겠습니다.
① SELECT : 원하는 자료를 검색하기 위해 사용
SELECT [DISTINCT] 속성이름 // DISTINCT : 중복을 제거
FROM 테이블이름
[WHERE 조건]
[GROUP BY 속성이름 [HAVING 그룹조건] ]
[ORDER BY 속성이름 [ASC | DESC] ]; // ASC : 오름차순, DESC : 내림차순
여기서 SELECT *을 하게 되면 모든 속성의 자료를 검색할 수 있습니다.
WHERE의 조건에는 =, <, >, <, >, <=, >= 와 NOT, AND, OR 등의 연산자를 사용할 수 있습니다.
예를 들어보겠습니다.
// 문제: 학생테이블에서 수강과목이 '데이터베이스'인 튜플 중 학번과 성명을 출력하라.
SELECT 학번,성명
FROM 학생
WHERE 수강과목='데이터베이스';
WHERE절에는 BETWEEN A AND B 구문을 사용할 수도 있습니다.
A 이상 B 이하인 경우에 사용합니다!! (A 초과 B미만 아닙니다)
또 IN을 사용할 수도 있는데요. 이해하기 쉽게 한 번에 정리해드리겠습니다.
학년이 3~4학년인 튜플은?
= WHERE 학년 IN(3,4);
= WHERE 학년=3 OR 학년=4;
= WHERE 학년 BETWEEN 3 AND 4;
GROUP BY절 사용하기
GROUP BY는 HAVING과 같이 사용됩니다. 이유는 HAVING은 그룹에 대한 조건을 설정하기 때문이죠.
// '학생'테이블에서 학년으로 그룹을 묶고 그 수가 2개 이상인 그룹의 학년을 출력하라.
SELECT 학년
FROM 학생
GROUP BY 학년
HAVING COUNT(*)>=2;
부속 질의문 : 메인 질의문 후 이어서 질의문을 사용
=, IN, EXISTS로 연결
'=' - 하나의 결과 값일 때 사용
'IN' - 여러 가지 결과 값을 출력할 때 사용
부분 매치 질의문 : 조건문 작성 시 자료의 일부를 가지고 비교하여 검색하는 질의문
LIKE와 함께 ' % ' or ' _ ' 사용
// 7588로 끝나는 연락처를 출력하라.
WHERE 연락처 LIKE '%7588'
NULL값과 비교하는 질의문
IS , IS NOT 사용
// 연락처 테이블에서 이름이 NULL이 아닌 튜플의 학번을 출력하라.
SELECT 학번
FROM 연락처
WHERE 이름 IS NOT NULL;
JOIN 질의문 : 두 개의 테이블을 합침
테이블1 JOIN 테이블2 ON (조인 조건)
SELECT 이름, 학과, 학생수
FROM 학생정보 JOIN 학과인원 ON(학생정보.학과=학과인원.학과);
// USING을 사용하면
// FROM 학생정보 JOIN 학과인원 USING(학과); 과 같다.
② INSERT : 기존 테이블에 새로운 튜플을 삽입하는 경우 사용
INSERT INTO 테이블이름(속성이름...)
VALUES(자료...);
기존의 테이블에 튜플을 삽입하는 것이므로 속성의 값과 자료의 값을 모두 입력해야 합니다.
하지만 모든 속성의 자료를 입력하는 경우라면 속성의 이름을 생략해도 됩니다.
// '학생'테이블에 학번:15115, 이름:'김정미', 학년: 4, 수강과목:'데이터베이스',
// 연락처:'243-0707'를 가진 튜플을 추가하라!
INSERT INTO 학생(학번, 성명, 학년, 수강과목, 연락처)
VALUES(15115, '김정미',4,'데이터베이스','243-0707');
// 만약 여기서 [학번, 성명, 학년, 수강과목, 연처]가
// '학생'테이블의 모든 속성에 해당한다면 생략할 수 있다.
INSERT INTO 학생
VALUES(15115, '김정미',4,'데이터베이스','243-0707');
③ UPDATE : 튜플의 속성 값을 변경하고자 할 때 사용
UPDATE 테이블이름
SET 속성이름=변경내용
[WHERE 조건];
예를 들면
// 학생테이블에서 성명이 이영진인 튜플의 점수 속성을 92점으로 수정하여라.
UPDATE 학생
SET 점수=92;
WHERE 성명='이영진';
④ DELETE : 튜플을 삭제할 경우 사용
DELETE FROM 테이블이름
[WHERE 조건]
예를 들면
// '학생'테이블에서 학년이 2인 튜플을 삭제하여라.
DELETE FROM 학생
WHERE 학년=2;
구분
DELETE(DML)에서 WHERE절 생략 시 -> 빈 테이블!
DROP(DDL)에서 WHERE절 생략 시 -> 테이블 자체가 삭제!
'정보처리기사 실기 > 데이터베이스' 카테고리의 다른 글
[정보처리기사 실기] 데이터베이스 3일 차 (0) | 2019.06.11 |
---|