JUST GO

[구조] 레코드 본문

DBMS/학습내용

[구조] 레코드

root_go 2022. 10. 5. 09:25

레코드

  • C : 삽입하기

· 어떠한 테이블에 레코드를 삽입하기 위해 아래와 같이 명령한다.

INSERT INTO `스키마`.`테이블` (`열 이름`,...) VALUES (값,...);
 

· 값을 삽입할 때에는 테이블이 가지고 있는 열의 순서와 무관하게 테이블 이름 뒤 괄호 안에 명시하는 순서대로 값이 삽입된다.

· VALUES 뒤에 오는 괄호 세트 하나는 하나의 레코드를 의미하며 콤마로 구분하여 한 쿼리에 여러 레코드를 삽입 할 수 있다.

· 명시한(열 이름,...)의 순서와 (값,...)의 순서가 반드시 일치해야 한다.


  • R : 선택하기

· 어떠한 테이블에 존재하는 레코드를 선택(조회)하기 위해 아래와 같이 명령한다.

SELECT [`열` 혹은 값 [AS `별명`]?],...
FROM `스키마`.`테이블` AS `별명`
[[LEFT|RIGHT|FULL OUTER|INNER] JOIN `대상 스키마`.`대상 테이블` AS `별명` ON `조건`]?...
[WHERE 조건]?
[GROUP BY [`열 이름`,..]]?
[ORDER BY[`열 이름` ASC|DESC],...]?
[LIMIT 개수 OFFSET 개수]?;
 

· 선택하고자 하는 테이블에 있는 열을 콤마를 이용하여 여러개 정의할 수 있다. 이 때 테이블에 존재하는 열의 순서와 관계 없이 SELECT 뒤에 적는 순서가 유의미하다.

· 열을 명시하지 않고 선택하는 테이블에 존재하는 모든 열을 사용하고자 할 때 별표(*)로 대신할 수 있다.

(대신 별명을 못지어서 자바랑 연동할 때 힘듬)

· 열이 아니더라도 리터럴 값을 명시할 수 있는데, 리터럴 값은 그 값이 선택되는 레코드의 개수 만큼 반복된다.

· 열 혹은 값에 대해 함수를 사용할 수 있다.

 

· JOIN 은 현재 SELECT 하는 대상이 되는 테이블이 가지고 있지 않은 정보를 다른 외부 테이블에서 가져오기 위해 사용.

    · OUTER JOIN

        · LEFT JOIN : JOIN 키워드 기준 왼쪽에 있는 테이블(SELECT 대상이 되는 테이블)을 기준으로 한다.

        · RIGHT JOIN : JOIN 키워드 기준 오른쪽에 있는 테이블(JOIN 대상이 되는 테이블)을 기준으로 한다.

    · INNER JOIN : SELECT 대상이 되는 테이블과 JOIN 대상이 되는 테이블 둘을 기준으로 한다.

 

· GROUP BY 는 통계함수 사용시 통합 시킬 기준 값을 가지는 열(들)이다. 명시하지 않는다면 결과상의 모든 레코드를 통합한다.

 

· ORDER BY는 [열 이름 ASC|DESC] 로 구성된 정렬 기준을 콤마로 구분하여 여러개 지정할 수 있으며

가장 앞에 나오는 기준을 최우선으로 한다. 여기서 ASC는 Ascending(오름차순)이고 DESC 는 Descending(내림차순) 정렬이다. 정렬 순서 생략시 ASC 를 사용한다.

 

· LIMIT x 는 제한되지 않은 상태에서의  SELECT 결과 상에서 생략할 레코드의 개수를 지정한다.

 

· OFFSET x 는 제한되지 않은 상태에서의 SELECT 결과 상에서 생략할 레코드의 개수를 지정한다.


  • U : 수정하기

· 어떠한 테이블에 존재하는 레코드가 가진 값을 열 별로 수정하기 위해 아래와 같이 명령한다.

UPDATE `스키마`.`테이블`
SET [`열 이름` = 변경할 값],...
[WHERE 조건]?
[LIMIT x]? ;
 

· UPDATE 키워드는 대상이 되는 테이블에 존재하는 레코드를 기본적으로 모두 수정하려 한다. 하지만 DBMS에 기본적으로 안전 장치가 있음으로 작동하지 않는다.

· SET 키워드 뒤에는 [열 이름 = 값] 쌍을 콤마로 구분하여 수정할 열과 값을 여러개 지정할 수 있다.

· 이 때 수정하고자 하는 레코드를 WHERE 조건을 이용하여 제한할 수 있다.

· 마찬가지로, 조건 유무와 관계 없이 수정되는 레코드의 개수 자체를 LIMIT 키워드를 이용하여 제한할 수 있다.

· WHERE와 LIMIT은 선택 사항이지만 그 순서는 반드시 지켜야 한다. 즉, LIMIT 가 먼저오고 뒤에 WHERE 가 오면 안된다.


  • D : 삭제하기

· 어떠한 테이블에 존재하는 레코드를 삭제하기 위해 아래와 같이 명령한다.

DELETE
FROM `스키마`.`테이블`
[WHERE 조건]?
[LIMIT x]?;
 

· DELETE 키워드는 대상이 되는 테이블에 존재하는 레코드를 기본적으로 모두 삭제하려 한다. 하지만 DBMS에 기본적으로 안전 장치가 있으므로 작동하지 않는다.

· 이 때 삭제하고자 하는 레코드를 WHERE 조건을 이용하여 제한 할 수 있다.

· 마찬가지로, 조건 유무와 관계 없이 삭제되는 레코드의 개수 자체를 LIMIT 키워드를 이용하여 제한할 수 있다.

· WHERE 와 LIMIT는 선택 사항이지만 그 순서는 반드시 지켜야 한다. 즉, LIMIT 가 먼저오고 뒤에 WHERE 가 오면 안 된다.

'DBMS > 학습내용' 카테고리의 다른 글

[공통] 페이징  (0) 2022.10.07
[공통] 연산자와 함수  (0) 2022.10.05
[구조] 테이블과 열  (1) 2022.10.05
[구조] 사용자  (0) 2022.10.05
[구조] 스키마  (0) 2022.10.05