목차
1. SQL 학습을 위한 준비
2. SQL 개요
3. 데이터 조작어 - 검색
4. 데이터 정의어
5. 데이터 조작어 - 삽입, 수정, 삭제
SQL 기능에 따른 분류
데이터 정의어(DDL): 테이블이나 관계의 구조를 생성하는 데 사용하며 CREATE, ALTER DROP 문이 있음
데이터 조작어(DML): 테이블에 데이터를 검색, 삽입, 수정, 삭제하는 데 사용하며 SELECT, INSERT, DELETE, UPDATE 문 등이 있음. 여기서 SELECT 문은 특별히 질의어(query)라고 함.
데이터 제어어(DCL): 데이터의 사용 권한을 관리하는 데 사용하며 GRANT, REVOKE 문 등이 있음.
SELECT문의 구성 요소
※ 추가 문법
모든 속성 표현 => *(asterisk)를 사용 (열의 개수가 많거나 열의 이름을 모를 때 사용됨)
중복 제거 => DISTINCT 사용
조건검색 => WHERE
질의에서 (~ 별로) 나오면 => GROUP BY 사용
예시) 고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오.
SELECT custid, COUNT(*) AS 도서수량, SUM(saleprice) AS 총액
FROM Orders
GROUP BY custid;
Costomer 테이블을 Orders 테이블과 조건 없이 연결한다면 만약 Costomer 과 Orders의 튜플 갯수가 5개 10개이면 5*10 해서 50개의 튜플이 나오게 된다. 따라서 조인에의한 조건을 걸어주면 효과적으로 테이블을 select 할 수 있다.
테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령이다.
PRIMARY KEY는 기본키를 정할 때 사용하고 FOREIGN KEY는 외래키를 지정할 때 사용하며, ON UPDATE와 ON DELETE는 외래키 속성의 수정과 튜플 삭제 시 동작을 나타낸다.
외래키 제약조건을 명시할 때는 반드시 참조되는 테이블(부모 릴레이션)이 존재해야 하며 참조되는 테이블의 기본키여야 한다. 외래키 지정시 ON DELETE 또는 ON UPDATE 옵션은 참조되는 테이블의 튜플이 삭제되거나 수정될 때 취할 수 있는 동작을 지정한다. NO ACTION은 어떠한 동작도 취하지 않는다.
ALTER 문은 생성된 테이블의 속성과 속성에 관한 제약을 변경하며, 기본키 및 외래키를 변경한다. ADD, DROP은 속성을 추가하거나 제거할 때 사용한다. MODIFY는 속성의 기본값을 설정하거나 삭제할 때 사용한다. 그리고 ADD <제약이름>, DROP <제약이름>은 제약사항을 추가하거나 삭제할 때 사용한다.
DROP문은 테이블을 삭제하는 명령. DROP문은 테이블의 구조와 데이터를 모두 삭제하므로 사용해 주의해야 한다. (데이터만 삭제하려면 DELETE문을 사용한다.)
테이블에 새로운 튜플을 삽입하는 명령이다.
UPDATE 문은 특정 속성 값을 수정하는 명령이다.
테이블에 있는 기존 튜플을 삭제하는 명령이다.