본문 바로가기

개발일지/SQL92

[Mysql] 이것이 MYSQL이다 후기 이책은 근래에 봤던 책 중 잘 만들어진 편이라고 볼 수 있다. 최소한에 표현하고자 하는바에 충실하다. 하지만 내 개인적으로는 한 주제에 대해서 똑같은 패턴이 약간은 지겨워질때까지 반복하고 반복하면서 익히는 스타일을 좋아하는데 너무 새로운게 계속 나오니깐 그 새로움이 지겨워서 안하는게 낮겠다 싶었다. 어차피 기억도 다 못하니깐 그럼에도 실무를 하게되면 두고두고 아예 사놓고 보면서 공부하면서 익혀가는게 올바른 일종의 바이블같은 책이라고 생각한다. 음.. 암튼 이 책은 학습용? 보다는 직감상 실무에선 구글링보다 mysql영역에 한에서는 더욱 유용할 것같다는 느낌이든다. 300페이지 즈음에서 학습을 챕터 7정도까지 마치고 접는다. 2022. 10. 5.
[Mysql] 데이터베이스 모델링 기본개념 데이터베이스 모델링 #1 고객이름, 연락처, 주소, 나이, 구매물품, 물품, 수량 등이 있을때, 이것을 한 테이블에 몰아넣으면 L자형 모습이라고 해서 테이블의 빈 필드가 생기게 된다. 이를 방지하기위해서 최대한 하나의 주제로 하나의 카테고리로 묶을 수 있게 설정을 하고 추후에 필요에 따라 조인을 해주는 것이 중요하다. 더불어서 누가 무엇을 샀는지 구분해주기위해서 PK 값을 양쪽 모두에 넣어주면 관리가 가능하다. #2 그리고 주가 되는 테이블과 부가 되는 테이블 모델링이 있다. 보통의 경우에는 ‘학생의 수업’이라고 할때 학생이 주가되고 수업이 부가 된다. 하지만 모든경우에 그런것이 아니라 ‘물품을 관리할 직원’ 등으로 분류가 나뉠때는 물품이 주가 될 수도 있다. 2022. 10. 3.
[Mysql] TRIGGER(트리거) 매우중요개념 (삭제된 필드를 다른테이블로 자동이동) 트리거 데이터가 삭제되기 전에 저장되는 공간혹은 그런 공간과 비슷한 개념 정도로 보면 될 것 같다. DELIMITER // CREATE TRIGGER trg_deleteMemberTBL AFTER DELETE -- 삭제 후에 작동하게 지정 ON memberTBL -- 트리거를 부착할 테이블 FOR EACH ROW -- 각 행마다 적용 시킴 BEGIN -- OLD 테이블의 내용을 백업 테이블에 삽입 INSERT INTO deleteMemberTBL VALUES (OLD.memberID, OLD.memberName, OLD.memberAddress, CURDATE()); END // DELIMITER; 정확히는 트리거를 설정해주면 삭제할때, 삭제한 내용에 대해서 트리거 설정된 테이블로 내용이 전이된다고 보면.. 2022. 10. 3.
[Mysql] VIEW, STORED PROCEDURE (뷰, 스토어드 프로시저) #1 VIEW만들기 CREATE VIEW uv_memberTBL AS SELECT memberName, memberAddress FROM memberTBL; 보아하니 해석하자면 이런것같다. uv_memberTBL라는 VIEW를 만들어줘 그 내용은 SELECT 이하내용으로해줘. VIEW를 사용하는 이유는 100% 명확한것은 아니지만 정황상 SELECT로써 접근은하게끔해서 결과물로 보여주긴 해야하는데, 수정되면 안되는 특이성이 있기때문에 원본이 있는 테이블의 접근권한보다는 VIEW의 접근권한이 더욱 허들이 낮다고 보인다. #2 스토어드 프로시저 mysql에만 있는 기능같은데, 지금은 오히려 더 번거로워 보인다. 근데 있는 이유가 있겠지? SELECT * FROM memberTBL WHERE memberNAM.. 2022. 10. 3.