delete와 truncate의 차이
turncate = 전부 다 삭제, 조건 없음, 빠름, 대신 트랜젝션 롤백이 불가능
join이란?
2개 이상의 테이블을 공통 필드로 통합하는 것
새로운 테이블이 만들어진다
조인의 방식에 따라 어떤 레코드를 선택할지와 어떤 필드가 채워지는지 달라짐
조인시 고려할 점
-- drop, create
Drop table if exists vital;
create table vital(
user_id int not null,
vital_id int primary key,
date timestamp,
weight int not null
);
-- insert
insert into vital(user_id,vital_id,date,weight) values(100,1, '2020-01-01',75);
insert into alert values(1,4,'WeightIncrease','2020-01-02',101);
-- delete
delete from vital where weight<=0; -- 안지워짐 세이프 업데이트 모드때문에(프라이머리 키를 직접 사용하는 게 아니면)
delete from vital where vital_id = 5;
delete from tvital; -- 이것도 세이프 업데이트 때문에 설정을 바꿔야 가능
-- update
update vital set weight = 92 where vital_id =4;
-- join
select * from v
join a
on v.vital_id = a.vital_id;
select * from v
left join a
on v.vital_id = a.vital_id;
select * from v
right join a
on v.vital_id = a.vital_id
union
select * from v
left join a
on v.vital_id = a.vital_id;
select * from v
cross join a;
-- self
select * from v1
join v2
on v1.vital_id = v2.vital_id;
'''