지난 포스팅에서 MySQL을 직접 설치하고 실행해보았다.
그러면 이제 직접 데이터를 삽입해보자. 데이터를 DB에 삽입하기 위해서는 먼저 테이블을 만들어야 하는데, 테이블을 만들기 위해선 database를 먼저 만들어야한다.
(사진 출처: 생활코딩 Node.js 로 Database 다루기 소개와 웹애플리케이션 만들기)
위 그림처럼 topic
이라는 테이블은 o2
라는 database 안에 담겨있는 구조이다. 따라서 database를 먼저 생성하고, 테이블을 생성하는 것이 순서이다. (논외로database server와 database는 다른 개념이다. database server는 소프트웨어 그 자체를 말하는 것이고, database는 table들을 그룹핑하는 일종의 폴더 같은 것이다.)
일단 CREATE DATABASE o2;
명령어로 o2
라는 이름의 database를 생성하자. CREATE DATABASE o2 CHARACTER SET utf8 COLLATE utf8_general_ci;
으로 인코딩값을 설정해도 좋지만 이 내용은 생략해도 된다.
위와 같이 Query OK 가 뜨면 성공.
SHOW DATABASES;
를 입력해서 현재 존재하는 database들을 살펴보자.
내가 생성했던 database 목록이 뜬다.
이 중, o2라는 database를 사용할 것이므로 use o2;
를 입력해서 database를 바꿔준다.
database가 준비되었으니 그 안에 담길 table을 생성해보자.
CREATE TABLE `topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`description` text NOT NULL,
`author` varchar(30) NOT NULL,
PRIMARY KEY (id)
);
위 명령어를 통해 PK가 id
인 topic
이라는 table을 생성하였다.
잘 생성되었나 확인하기 위해 SHOW TABLES;
를 입력하면...
topic
이라는 테이블이 생성되었고, 이제 데이터를 삽입할 일만 남았다.
다음과 같은 명령어를 통해 데이터를 topic에 INSERT 해보자.
INSERT INTO topic (title, description, author) VALUES('JavaScript', 'Computer language for web.', 'kkongji');
INSERT INTO topic (description, title, author) VALUES('Package manager', 'NPM', 'leezche');
DBMS에서는 기본적으로 CRUD라고 하여 데이터를 크게 4가지 정도로 다루고 있다. Create(생성), Read(조회), Update(갱신), Delete(삭제)가 그것이다. 우리는 방금 명령어를 통해 데이터를 생성하는 과정을 거쳤다. 그러면 이제 데이터를 조회해보자.
SELECT * FROM topic;
topic의 내용은 SELECT * FROM
으로 모두 조회할 수 있다. 우리가 INSERT한 것이 보이는 것을 확인할 수 있다.
만약 id가 2인 데이터만을 조회하고 싶다면 SELECT * FROM topic WHERE id=2;
처럼 WHERE 문을 사용하면 된다.
아직 UPDATE 와 DELETE 가 남아있다. TABLE topic에서 id값이 2인 행의 title 값을 바꾸려고 한다면 다음과 같이 입력한다.
UPDATE topic SET title='npm' WHERE id=2;
그 후, SELECT문으로 변경사항을 확인해보면...
topic 테이블의 id값이 2인 행을 지우려고 한다면
DELETE FROM topic WHERE id=2;
이렇게 입력하면 된다.
(id=2인 행이 DELETE 된 모습)
이 때, 각별히 주의할 점은 WHERE를 꼭 써주어야 한다는 것이다. 행여 실수로 WHERE문을 빠뜨린다면 전체 레코드가 변경, 혹은 삭제될 수 있는 재앙이 초래될 수 있다... 따라서 백업을 자주하고, sql문을 신중히 작성하는 것이 필요하다.