Schema 의 정의
Schema 사용법
이전의 파트에서 데이터베이스를 생성하고, 테이블을 생성했다. 그리고 그 테이블은 어떠한 구조로 이루어져있는지 사진을
통해 간단하게 알아보았다.
지금부터 나는 GAME 이라는 데이터베이스에 LOL 이라는 테이블을 만들고 역할군에 따른 챔피언 분석을 위해 컬럼으로 탑, 정글, 미드, 바텀, 서폿 을 생성하고 각 컬럼의 로우로 탑 : 다리우스, 정글 : 리신 등을 넣을 것이다.
SCHEMA (스키마) 란 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한것입니다.
나는 방금 SCHEMA 를 짠 것이다. 이것이 SCHEMA 이다.
먼저 LOL 이란 이름의 테이블을 만들기 위해 다음과 같이 입력한다.
CREATE TABLE `LOL` (
);
그 다음 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 값은 안된다.) 즉, 해당 값은 필수적으로 입력되야 한다는 뜻이다.
특정 테이블을 선택하고 싶다면 SELECT 를 사용하면 된다.
SELECT * FROM LOL // LOL 테이블의 모든 컬럼, 로우를 조회한다.
// * 표시는 all 이라는 뜻이다.
LOL 이란 테이블에 새로운 컬럼, 로우값을 삽입하고 싶다면 INSERT 를 사용하면 된다.
id | TOP | JUG | MID | ADC | SUP |
---|---|---|---|---|---|
1 | 가렌 | 리신 | 조이 | 카이사 | 쓰레쉬 |
2 | 다리우스 | 올라프 | 르블랑 | 진 | 레오나 |
3 | NULL | NULL | 제드 | 베인 | 노틸러스 |
INSERT INTO LOL (TOP, JUG) VALUES('이렐리아', '탈리야')
// LOL 테이블의 TOP 컬럼에 이렐리아, JUG 컬럼에 탈리야를 넣는다.
id | TOP | JUG | MID | ADC | SUP |
---|---|---|---|---|---|
1 | 가렌 | 리신 | 조이 | 카이사 | 쓰레쉬 |
2 | 다리우스 | 올라프 | 르블랑 | 진 | 레오나 |
3 | 이렐리아 | 탈리야 | 제드 | 베인 | 노틸러스 |
만약, 해당 컬럼의 로우 값을 변경하고 싶다면 UPDATE 를 사용하면 된다.
id | TOP | JUG | MID | ADC | SUP |
---|---|---|---|---|---|
1 | 가렌 | 리신 | 조이 | 카이사 | 쓰레쉬 |
2 | 다리우스 | 올라프 | 르블랑 | 진 | 레오나 |
3 | 이렐리아 | 탈리야 | 제드 | 베인 | 노틸러스 |
UPDATE LOL SET TOP = '오른', WHERE id = 1;
// LOL 테이블의 TOP 컬럼에 id 가 1번인 값을 오른으로 변경한다.
id | TOP | JUG | MID | ADC | SUP |
---|---|---|---|---|---|
1 | 오른 | 리신 | 조이 | 카이사 | 쓰레쉬 |
2 | 다리우스 | 올라프 | 르블랑 | 진 | 레오나 |
3 | 이렐리아 | 탈리야 | 제드 | 베인 | 노틸러스 |
뒤에 WHERE 이라는 조건을 달아주지 않으면 TOP 컬럼의 모든 챔피언들이 오른이란 값으로 바뀌게 되므로
특정 값만 업데이트 하고 싶다면 꼭 뒤에 조건을 명시 해줘야 한다.
만약 특정 로우를 삭제하고 싶다면 DELETE 를 사용하면 된다.
id | TOP | JUG | MID | ADC | SUP |
---|---|---|---|---|---|
1 | 오른 | 리신 | 조이 | 카이사 | 쓰레쉬 |
2 | 다리우스 | 올라프 | 르블랑 | 진 | 레오나 |
3 | 이렐리아 | 탈리야 | 제드 | 베인 | 노틸러스 |
DELETE FROM LOL where id = 3
id | TOP | JUG | MID | ADC | SUP |
---|---|---|---|---|---|
1 | 오른 | 리신 | 조이 | 카이사 | 쓰레쉬 |
2 | 다리우스 | 올라프 | 르블랑 | 진 | 레오나 |
사실 조금 더 자세하게 블로깅을 하려 했는데 이미 정리가 잘 돼있는 블로그가 있어서 링크를 남긴다.