본문 바로가기

데이터베이스10

[생활코딩] 9. MySQL - Client / Workbench MySQL client인 monitor는 장점이 많다. MySQL 서버를 설치하면 함께 설치되기 때문에 서버에 모니터가 있다고 생각할수있다. 어디에서나 사용할수있는것. MySQL monitor는 GUI가 아니고 명령을 이용해서 제어하는 명렁어 기반의 프로그램이다. (명령어 기반이라 어디서든 실행가능하다는 것이 장점이다.) 단점은 명령어를 기억해야하는 단점이 있다. 반면에 MySQL Workbench는 GUI 기반이다. (마우스를 가지고 조작가능한) h는 host의 약자이다. 인터넷에 연결되어 있는 각각의 컴퓨터를 호스트라고 한다. 지금 실행하려고 하는 mysql클라이언트로 인터넷을 통해서 다른 컴퓨터에 있는 mysql 서버에 접속하려고 하면 -h 부분에 그 서버에 해당하는 주소를 적어주면 된다. ./my.. 2020. 8. 2.
[생활코딩] 8. MySQL - JOIN / 인터넷과 데이터베이스 JOIN을 사용함으로써 분리된 테이블을 읽을때 마치 하나의 테이블로 애초에 저장 되어있던걸로 보일수가 있다. author 테이블에 있는 행을 가져와서 topic테이블에 붙일거다. SELECT * FROM topic LEFT JOIN author; 이렇게 막연하게 두 테이블을 join하라고 하면 에러가 난다. 조건이 필요하다. 'topic.author_id 와 author.id가 같으니까 합쳐줘' 라는 조건을 달고 명령을 내려야된다. 근데 author_id 와 id 값은 보기 싫으니까 지워버리자. 에러가 나는 이유는 topic도 id가 있고, author도 id가 있으니까, mysql 입장에서는 애매하다는거다. 그럴때는 topic의 id라는것을 명시해주면 된다. 저 id를 topic_id로 변경할 수도 있.. 2020. 8. 1.
[생활코딩] 7. MySQL - 테이블 분리 데이터가 중복되고 있다면 개선해야 된다는 신호이다. 행이 1억개에 중복되고 있는게 천만개라면? 여러가지 문제점을 발생시킨다. 복잡하고 용량이 큰 데이터가 천만번 등장한다고 하면 기술적, 경제적으로 손해이다. 데이터 수정도 엄청 어려울것.. 우선 저자들의 목록을 별도의 표로 뺄것이다. author 부분을 id로 적어줌으로써 중복된 데이터들은 사라지고, 각각의 데이터들에 대한 식별자인 id로 대체된것. 동명이인이 쓴것도 id로 구별할수가 있다. 하나의 테이블로 작성한건 하나의 표에 다 드러나서 직관적이다. 그런데 테이블을 별도로 쪼개서 테이블의 참조값만 적어두면 불편한점은 데이터를 볼 때 데이터에 해당하는 행에 해당되는 별도의 표를 열어서 그 표를 비교해가면서 봐야되는 불편함이 있다. 별도의 표들을 실제로 .. 2020. 7. 30.
[생활코딩] 6. MySQL - UPDATE / DELETE title이 Oracle의 description 부분에 점을 추가해보겠다. UPDATE topic SET description='Oracle is ....' WHERE id=2; (WHERE 설정안해주면 전체에 적용됨..) ※ WHERE 문을 빠뜨리면 큰일난다. id가 5번인 'MongoDB'를 삭제해보자. DELETE FROM topic WHERE id = 5; (WHERE 매우 중요!) ※ 본 포스팅은 개인 공부 기록을 목적으로 남긴 글이며 본 사실과 다른 부분이 있다면 과감하게 지적 부탁드립니다. 2020. 7. 30.