배운 것
1. INSERT
아래와 같이 테이블을 만들고 INSERT 할 때
CREATE TABLE test.vital (
user_id int not null,
vital_id int primary key,
date timestamp not null,
weight int not null
);
이렇게 필드리스트를 명시적으로 적어줘도 되고,
INSERT INTO test.vital(user_id, vital_id, date, weight) VALUES(100, 1, '2021-01-23', 75);
VALUES 값 순서가 테이블 만들 때 필드 순서랑 동일하다면 필드리스트 생략 가능하다.
INSERT INTO test.vital VALUES(100, 1, '2021-01-23', 75);
2. DELETE vs TRUNCATE
DELETE | TRUNCATE | |
삭제 방식 | 레코드 단위로 특정 데이터를 제거한다. | 테이블을 Drop 한 후 CREATE 한다.(전체 삭제만 가능, auto_increment로 생성된 ID는 1부터 시작하게 된다.) |
롤백 | 가능 | 불가능 |
속도 | TRUNCATE 보다 느림 | DELETE 보다 빠름 |
3. UPDATE
vital_id 가 4인 레코드의 weight를 변경하려면 아래와 같이 하면 된다.
여기서 주의할 점은 WHERE 조건이 없이 실행하면 weight 필드의 모든 레코드 값이 92로 변경된다.
UPDATE test.vital
SET weight = 92
WHERE vital_id = 4;
4. Safe Update Mode
아래와 같은 코드를 입력하면 오류가 난다.
DELETE FROM test.vital WHERE weight <= 0;
기본적으로 MySql Workbench 는 Safe Update Mode로 동작하고,
DELETE를 할 때 WHERE 조건이 다수의 레코드를 지울 수 있는 조건일 경우 실행되지 않는다.
그래도 실행하고 싶다면 기본 동작 모드를 풀면된다.
5. Self Join
Q. 유용하게 쓰이는 순간이 있다고 한다. 도대체 언제 유용하게 쓰이는거지?! 알아봐야겠다.
느낀 점
1. 한기용 강사님께서 정말 기본위주로 database를 알려주시는 것 같다. 기초를 튼튼히 다져야지. 근데 현업에서는 얼마나 깊게 다룰까? 궁금하다.
'TIL > 2021' 카테고리의 다른 글
[TIL] 0818 Spring 컴포넌트 (0) | 2021.08.18 |
---|---|
[TIL] 0813 Database 이것저것5 (0) | 2021.08.13 |
[TIL] 0811 Database 이것저것3 (0) | 2021.08.11 |
[TIL] 0810 Database 이것저것2 (0) | 2021.08.10 |
[TIL] 0809 Database 이것저것1 (0) | 2021.08.09 |