TIL 2020-01-23 (SCHEMA)

nyongho·2021년 1월 28일
0

DATABASE

목록 보기
2/2
post-thumbnail

SCHEMA


TIL List

  • Schema 의 정의

  • Schema 사용법


1) SCHEMA?

이전의 파트에서 데이터베이스를 생성하고, 테이블을 생성했다. 그리고 그 테이블은 어떠한 구조로 이루어져있는지 사진을

통해 간단하게 알아보았다.

지금부터 나는 GAME 이라는 데이터베이스LOL 이라는 테이블을 만들고 역할군에 따른 챔피언 분석을 위해 컬럼으로 , 정글, 미드, 바텀, 서폿 을 생성하고 각 컬럼의 로우탑 : 다리우스, 정글 : 리신 등을 넣을 것이다.

SCHEMA (스키마) 란 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한것입니다.

나는 방금 SCHEMA 를 짠 것이다. 이것이 SCHEMA 이다.


2) SCHEMA 를 짜기 위한 명령어

2-1. 테이블 만들기

먼저 LOL 이란 이름의 테이블을 만들기 위해 다음과 같이 입력한다.

CREATE TABLE `LOL` (
  
);

2-2. 컬럼 만들기

그 다음 LOL 테이블에서 사용할 컬럼들을 생성한다.

CREATE TABLE `LOL` (
 `id` int PRIMARY KEY AUTO_INCREMENT 
 `TOP` varchar(255) not NULL
 `JUG` varchar(255) 
 `MID` varchar(255) 
 `ADC` varchar(255) 
 `SUP` varchar(255) 
);

해당 컬럼들의 뒤에 붙은 것은 제약 조건 을 명시하는 것이다.

예를 들어 id 는 int (숫자) 로 이루어져있고, PRIMARY KEY (기본 키) 값을 가질 것이며 AUTU_INCREMENT (해당 로우가 늘어날 때 마다 자동으로 1씩 증가) 한다고 조건을 명시한 것이다.

그 밑의 varchar(255) 는 255글자의 문자까지 허용한다는 뜻이고 뒤의 not NULL 은 직역 그대로하면 (NULL 값은 안된다.) 즉, 해당 값은 필수적으로 입력되야 한다는 뜻이다.


3) 테이블의 컬럼, 로우에 관한 CRUD

3-1. SELECT

특정 테이블을 선택하고 싶다면 SELECT 를 사용하면 된다.

SELECT * FROM LOL // LOL 테이블의 모든 컬럼, 로우를 조회한다.
                  // * 표시는 all 이라는 뜻이다.

3-2. INSERT

LOL 이란 테이블에 새로운 컬럼, 로우값을 삽입하고 싶다면 INSERT 를 사용하면 된다.

idTOPJUGMIDADCSUP
1가렌리신조이카이사쓰레쉬
2다리우스올라프르블랑레오나
3NULLNULL제드베인노틸러스

INSERT INTO LOL (TOP, JUG) VALUES('이렐리아', '탈리야')

// LOL 테이블의 TOP 컬럼에 이렐리아, JUG 컬럼에 탈리야를 넣는다.
idTOPJUGMIDADCSUP
1가렌리신조이카이사쓰레쉬
2다리우스올라프르블랑레오나
3이렐리아탈리야제드베인노틸러스

3-3. UPDATE

만약, 해당 컬럼의 로우 값을 변경하고 싶다면 UPDATE 를 사용하면 된다.

idTOPJUGMIDADCSUP
1가렌리신조이카이사쓰레쉬
2다리우스올라프르블랑레오나
3이렐리아탈리야제드베인노틸러스

UPDATE LOL SET TOP = '오른', WHERE id = 1;

// LOL 테이블의 TOP 컬럼에 id 가 1번인 값을 오른으로 변경한다.
idTOPJUGMIDADCSUP
1오른리신조이카이사쓰레쉬
2다리우스올라프르블랑레오나
3이렐리아탈리야제드베인노틸러스

뒤에 WHERE 이라는 조건을 달아주지 않으면 TOP 컬럼의 모든 챔피언들이 오른이란 값으로 바뀌게 되므로

특정 값만 업데이트 하고 싶다면 꼭 뒤에 조건을 명시 해줘야 한다.


3-4. DELETE

만약 특정 로우를 삭제하고 싶다면 DELETE 를 사용하면 된다.

idTOPJUGMIDADCSUP
1오른리신조이카이사쓰레쉬
2다리우스올라프르블랑레오나
3이렐리아탈리야제드베인노틸러스
DELETE FROM LOL where id = 3
idTOPJUGMIDADCSUP
1오른리신조이카이사쓰레쉬
2다리우스올라프르블랑레오나

사실 조금 더 자세하게 블로깅을 하려 했는데 이미 정리가 잘 돼있는 블로그가 있어서 링크를 남긴다.

SELECT, INSERT, UPADATE, DELETE

profile
두 줄 소개

0개의 댓글