데이터베이스 #3 SQL 기초

jjinny_0609·2023년 2월 25일
0

데이터베이스

목록 보기
3/17
post-custom-banner

목차
1. SQL 학습을 위한 준비
2. SQL 개요
3. 데이터 조작어 - 검색
4. 데이터 정의어
5. 데이터 조작어 - 삽입, 수정, 삭제

SQL 학습을 위한 준비

SQL 개요

SQL 기능에 따른 분류

데이터 정의어(DDL): 테이블이나 관계의 구조를 생성하는 데 사용하며 CREATE, ALTER DROP 문이 있음

데이터 조작어(DML): 테이블에 데이터를 검색, 삽입, 수정, 삭제하는 데 사용하며 SELECT, INSERT, DELETE, UPDATE 문 등이 있음. 여기서 SELECT 문은 특별히 질의어(query)라고 함.

데이터 제어어(DCL): 데이터의 사용 권한을 관리하는 데 사용하며 GRANT, REVOKE 문 등이 있음.

데이터 조작어 - 검색

  1. SELECT 문
  2. 집계 함수와 GROUP BY
  3. 두 개 이상 테이블에서 SQL 질의

SELECT문의 구성 요소

※ 추가 문법
모든 속성 표현 => *(asterisk)를 사용 (열의 개수가 많거나 열의 이름을 모를 때 사용됨)
중복 제거 => DISTINCT 사용
조건검색 => WHERE

SELECT/FROM

WHERE 조건

  • WHERE 절에 조건으로 사용할 수 있는 술어

와일드 문자 종류

집계 함수




질의에서 (~ 별로) 나오면 => GROUP BY 사용
예시) 고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오.
SELECT custid, COUNT(*) AS 도서수량, SUM(saleprice) AS 총액
FROM Orders
GROUP BY custid;

GROUP BY와 HAVING 절의 문법과 주의사항


조인

Costomer 테이블을 Orders 테이블과 조건 없이 연결한다면 만약 Costomer 과 Orders의 튜플 갯수가 5개 10개이면 5*10 해서 50개의 튜플이 나오게 된다. 따라서 조인에의한 조건을 걸어주면 효과적으로 테이블을 select 할 수 있다.




부속질의 _SQL문 내에 또 다른 SQL문을 작성해보자




집합연산

EXISTS

데이터 정의어

  1. CREATE문
  2. ALTER문
  3. DROP문

1. CREATE문

테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령이다.

PRIMARY KEY는 기본키를 정할 때 사용하고 FOREIGN KEY는 외래키를 지정할 때 사용하며, ON UPDATE와 ON DELETE는 외래키 속성의 수정과 튜플 삭제 시 동작을 나타낸다.





외래키 제약조건을 명시할 때는 반드시 참조되는 테이블(부모 릴레이션)이 존재해야 하며 참조되는 테이블의 기본키여야 한다. 외래키 지정시 ON DELETE 또는 ON UPDATE 옵션은 참조되는 테이블의 튜플이 삭제되거나 수정될 때 취할 수 있는 동작을 지정한다. NO ACTION은 어떠한 동작도 취하지 않는다.

ALTER 문

ALTER 문은 생성된 테이블의 속성과 속성에 관한 제약을 변경하며, 기본키 및 외래키를 변경한다. ADD, DROP은 속성을 추가하거나 제거할 때 사용한다. MODIFY는 속성의 기본값을 설정하거나 삭제할 때 사용한다. 그리고 ADD <제약이름>, DROP <제약이름>은 제약사항을 추가하거나 삭제할 때 사용한다.

DROP문

DROP문은 테이블을 삭제하는 명령. DROP문은 테이블의 구조와 데이터를 모두 삭제하므로 사용해 주의해야 한다. (데이터만 삭제하려면 DELETE문을 사용한다.)

데이터 조작어 - 삽입, 수정, 삭제

  1. INSERT
  2. UPDATE
  3. DELETE

INSERT 문

테이블에 새로운 튜플을 삽입하는 명령이다.

UPDATE 문

UPDATE 문은 특정 속성 값을 수정하는 명령이다.

DELETE 문

테이블에 있는 기존 튜플을 삭제하는 명령이다.

profile
뉴비 개발자 입니다. velog 주소 : https://velog.io/@jjinny_0609 Github 주소 :
post-custom-banner

0개의 댓글