반응형
오늘 배운 것
SQL의 UPDATE 구문
우선 UPDATE 문법부터 보고 가자. 싱글 테이블과 멀티 테이블 2가지로 나뉘는 것으로 보인다.
#Single-table syntax:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET assignment_list
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
value:
{expr | DEFAULT}
assignment:
col_name = value
assignment_list:
assignment [, assignment] ...
#Multiple-table syntax:
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET assignment_list
[WHERE where_condition]
UPDATE 실습!
ex. UPDATE topic SET author='dacoZZING', title='ORACLE 2' WHERE id=2;
UPDATE / 테이블이름 / SET / 어싸인먼트_리스트(여기서는 author, title 2개 사용) / WHERE / UPDATE할 행 선택(조건)
여기서 중요한 것은 WHERE 을 빼먹으면 모든 항목이 일괄 수정되므로 매우매우 조심해야 한다!
MariaDB [(none)]> use daco;
Database changed
MariaDB [daco]> DESC topic;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(100) | NO | | NULL | |
| description | text | YES | | NULL | |
| created | datetime | NO | | NULL | |
| author | varchar(30) | YES | | NULL | |
| profile | varchar(100) | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
6 rows in set (0.007 sec)
MariaDB [daco]> SELECT * FROM topic;
+----+------------+----------------------------+---------------------+--------+-----------+
| id | title | description | created | author | profile |
+----+------------+----------------------------+---------------------+--------+-----------+
| 1 | MySQL | MySQL is my first database | 2021-08-09 21:07:51 | daco | developer |
| 2 | ORACLE | ORACLE is database | 2021-08-09 21:13:02 | daco | developer |
| 3 | PostgreSQL | PostgreSQL is database | 2021-08-09 21:13:47 | daco | developer |
| 4 | MongoDB | MongoDB is database | 2021-08-09 21:14:05 | daco | developer |
| 5 | SQL Server | SQL Server is database | 2021-08-09 21:14:57 | daco | developer |
+----+------------+----------------------------+---------------------+--------+-----------+
5 rows in set (0.000 sec)
MariaDB [daco]> UPDATE topic SET author='dacoZZING', title='ORACLE 2' WHERE id=2;
Query OK, 1 row affected (0.008 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [daco]> SELECT * FROM topic;
+----+------------+----------------------------+---------------------+-----------+-----------+
| id | title | description | created | author | profile |
+----+------------+----------------------------+---------------------+-----------+-----------+
| 1 | MySQL | MySQL is my first database | 2021-08-09 21:07:51 | daco | developer |
| 2 | ORACLE 2 | ORACLE is database | 2021-08-09 21:13:02 | dacoZZING | developer |
| 3 | PostgreSQL | PostgreSQL is database | 2021-08-09 21:13:47 | daco | developer |
| 4 | MongoDB | MongoDB is database | 2021-08-09 21:14:05 | daco | developer |
| 5 | SQL Server | SQL Server is database | 2021-08-09 21:14:57 | daco | developer |
+----+------------+----------------------------+---------------------+-----------+-----------+
5 rows in set (0.000 sec)
오늘 느낀 것
생각보다 쉬운 것 같으면서도 실전에서는 얼마나 복잡할까 하는 생각도 든다.
특히 WHERE을 빠뜨려서 행이 모두 수정되어버렸을 때, 어떻게 복구 할 수 있는지 궁금하기도 하다.
구글링을 해봤는데 뭔가 있긴 한거 같다. 그런데 뭔가 절차가 복잡하고 수시로 백업을 해야 그 백업시점으로 되돌릴 수 있는 듯 하다. 이런 실수를 저지르면 정말 간담이 서늘할 듯.. 백업은 진짜 필수 습관으로 만들어야겠다.
그리고 직접 코드를 치면서 든 생각은 확실히 명령어와 값을 구분하여 대문자 소문자로 작성하니 시각적으로 구분이 쉬워 보기가 편하더라. 이것도 습관으로 들이면 코드 커뮤니케이션에서 나만의 장점으로 만들 수 있지 않을까?
반응형
'나는 이렇게 학습한다 > DB' 카테고리의 다른 글
생활코딩 #관계형 데이터베이스의 중요성 (0) | 2021.08.14 |
---|---|
생활코딩 #SQL의 DELETE 구문(DELETE) (0) | 2021.08.11 |
생활코딩 #SQL의 SELECT 구문(READ) (0) | 2021.08.09 |
생활코딩 #SQL의 INSERT 구문(CREATE) (0) | 2021.08.09 |
생활코딩 #MySQL 테이블의 생성, CRUD (0) | 2021.08.05 |