CRUD 작업하기
CRUD는 Create, Read, Update, Delete의 첫 글자를 모은 두문자이며 데이터베이스에서 많이 수행하는 데 네 가지 작업을 일컫습니다. 그 방법만 익혀도 웬만한 프로그램은 다 만들 수 있을 정 도로 CRUD 작업은 많이 사용됩니다. SQL문 위주로 진행하지만, SQL에 익숙하지 않다면 워크벤치로 진행해도 됩니다.
Create(생성)
Create(생성)는 데이터를 생성해서 데이터에 넣는 작업입니다.
mysql> use nodejs;
Database changed
mysql> INSERT INTO nodejs.users (name, age, married, comment) VALUES ('zero', 24, 0, '자기소개1');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO nodejs.users (name, age, married, comment) VALUES ('nero', 32, 1, '자기소개2');
Query OK, 1 row affected (0.00 sec)
데이터를 넣는 명령어는 INSERT INTO [테이블명] ([컬럼1], [컬럼2], .. .) VALUES ([값1], [값 2], ...)입니다. 즉, name에 zero, age에 24, married에 0, comment에 자기소개1이 들어가는 것입니다. id는 AUTO_INCREMENT에 의해, created_at은 DEFAULT 값에 의해 자동으로 들어갑니다.
mysql> INSERT INTO nodejs.comments (commenter, comment) VALUES (1, '안녕하세요. zero의 댓글입니다');
Query OK, 1 row affected (0.02 sec)
Read(조회)
Read(조회)는 데이터베이스에 있는 데이터를 조회하는 작업입니다.
mysql> SELECT * FROM nodejs.users;
+----+------+-----+---------+---------------+---------------------+
| id | name | age | married | comment | created_at |
+----+------+-----+---------+---------------+---------------------+
| 1 | zero | 24 | 0 | 자기소개1 | 2025-08-18 10:01:27 |
| 2 | nero | 32 | 1 | 자기소개2 | 2025-08-18 10:02:19 |
+----+------+-----+---------+---------------+---------------------+
2 rows in set (0.00 sec)
이 구문이 users 테이블의 모든 데이터를 조회하는 SQL문이며 SELECT * FROM [테이블명] 형식입니다. 우분투에서는 위 SQL문을 mysql 프롬프트에 입력하면 됩니다. comments 테이블도 비슷한 SQL문으로 조회할 수 있습니다.
mysql> SELECT * FROM nodejs.comments;
+----+-----------+------------------------------------------+---------------------+
| id | commenter | comment | created_at |
+----+-----------+------------------------------------------+---------------------+
| 1 | 1 | 안녕하세요. zero의 댓글입니다 | 2025-08-18 10:04:15 |
+----+-----------+------------------------------------------+---------------------+
1 row in set (0.00 sec)
특정 컬럼만 조회할 수도 있습니다. 조회를 원하는 컬럼을 SELECT 다음에 넣으면 됩니다. 이름과 결혼 여부만 조회하고 싶다면 다음과 같이 합니다.
mysql> SELECT name, married FROM nodejs.users;
+------+---------+
| name | married |
+------+---------+
| zero | 0 |
| nero | 1 |
+------+---------+
2 rows in set (0.00 sec)
WHERE 절을 사용하면 특정 조건을 가진 데이터만 조회할 수 있습니다. 다음은 결혼을 했도 나이가 30세 이상인 사용자를 조회하는 SQL문입니다. AND로 야러 조건을 묶어줄 수도 있습니다.
mysql> SELECT name, age FROM nodejs.users WHERE married = 1 AND age > 30;
+------+-----+
| name | age |
+------+-----+
| nero | 32 |
+------+-----+
1 row in set (0.01 sec)
AND가 조건들을 모두 만족하는 데이터를 찾는다면 OR는 조건들 중 어느 하나라도 만족하는 데이터를 찾습니다.
mysql> SELECT id, name FROM nodejs.users WHERE married = 0 OR age > 30;
+----+------+
| id | name |
+----+------+
| 1 | zero |
| 2 | nero |
+----+------+
2 rows in set (0.00 sec)
ORDER BY [컬럼명] [ASC|DESC] 키워드를 사용하면 정렬도 가능합니다. 나이가 많은 순서대로 정렬해보겠습니다. DESC는 내림차순, ASC는 오름차순이므로 DESC를 사용하면 됩니다.
mysql> SELECT id, name FROM nodejs.users ORDER BY age DESC;
+----+------+
| id | name |
+----+------+
| 2 | nero |
| 1 | zero |
+----+------+
2 rows in set (0.01 sec)
조회할 로우 개수를 설정할 수도 있습니다. LIMIT [숫자] 키워드를 사용합니다. 하나만 조회하려면 LIMIT 1을 SQL문 끝에 붙이면 됩니다.
mysql> SELECT id, name FROM nodejs.users ORDER BY age DESC LIMIT 1;
+----+------+
| id | name |
+----+------+
| 2 | nero |
+----+------+
1 row in set (0.00 sec)
로우 개수를 설정하면서 몇 개를 건너뛸지 설정할 수도 있습니다. 이는 게시판 등의 페이지네이션 기능을 구현할 때 유용합니다. 예를 들어 첫 번째 페이지에서 1~20번 게시물을 조회했다면, 두 번째 페이지에서는 21~40번 게시물을 조회해야 합니다. 이때 처음 20개를 건너뛰고 다음 20개 게시물을 조회하라는 식의 명령이 가능합니다. OFFSET [건너뛸 숫자] 키워드를 사용합니다.
mysql> SELECT id, name FROM nodejs.users ORDER BY age DESC LIMIT 1 OFFSET 1 ;
+----+------+
| id | name |
+----+------+
| 1 | zero |
+----+------+
1 row in set (0.00 sec)
Update(수정)
Update(수정)는 데이터베이스에 있는 데이터룰 수정하는 작업입니다.
mysql> UPDATE nodejs.users SET comment = '바꿀 내용' WHERE id = 2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
수정 명령어는 UPDATE [테이블명] SET [컬럼명=바꿀 값] WHERE [조건]입니다. 위의 명령어처럼 WHERE id = 2로 id가 2인 로우(nero)의 컬럼을 수정할 수 있습니다. users 테이블에서 id가 2인 로우의 comment를 주어진 내용으로 바꾸라는 뜻입니다. 조건도 AND나 OR로 여러 개를 동시에 사용할 수 있습니다.
Delete(삭제)
Delete(삭제)는 데이터베이스에 있는 데이터를 삭제하는 작업입니다.
mysql> DELETE FROM nodejs.users WHERE id = 2;
Query OK, 1 row affected (0.01 sec)
삭제 명령어는 DELETE FROM [테이블명] WHERE [조건]입니다. 조건이 WHERE id = 2인데, 이는 users 테이블에서 id가 2인 로우(nero)를 제거하라는 뜻입니다. 삭제 조건 역시 AND나 OR로 여러 개를 동시에 사용할 수 있습니다.
'프로그래밍 언어 > NODE JS' 카테고리의 다른 글
| MySQL 연결하기 (0) | 2025.08.24 |
|---|---|
| 시퀄라이즈 사용하기 (0) | 2025.08.21 |
| 데이터베이스 및 테이블 생성하기 (6) | 2025.08.15 |
| 워크벤치 커넥션 생성하기 (0) | 2025.08.12 |
| MySQL 설치하기 (6) | 2025.08.08 |