Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DeFacto-Standard IT

[MySQL] MySQL Workbench (2) 본문

DB/MySQL

[MySQL] MySQL Workbench (2)

defacto standard 2017. 11. 11. 01:19

MySQL Workbench를 실행, Local instance MySQL57에 Connection. 패스워드를 입력한다.

 

왼쪽 탭에서 SCHEMAS 탭에 보이는 것이 데이터베이스들이다.

 

데이터베이스 스키마를 정의(데이터 모델링)하기 위해 File - New Model

 

이름을 csemall 이라고 정의한다.


이제 테이블을 만들어야 하는데, 위쪽에 Add Table을 눌러서 만들 수도 있으나, Diagram을 이용하는 것이

(특히 여러 테이블을 만들 때 관계 설정 시에) 편하다. 위그림에서 Add Diagram을 더블클릭한다.


왼쪽 버튼을 눌러 Table을 만든다. 만들어진 다이어그램을 더블클릭하면 편집이 가능하다.

테이블 이름은 offers,

필드는 id, name, email, text가 있다.

 

id는 기본키(PK)이면서 Null값을 허용하지 않는다(NN). 레코드가 추가될 때마다 1개씩 증가(Auto Increase)하는 INT형 필드이다.

name, email, text는 Null값만 허용하지 않고, text의 경우 긴 설명이 들어갈 수 있으므로 TINYTEXT는 255개의 문자를 입력할 수 있다.

적용 시 다이어그램에 간단한 정보를 바로바로 보여준다.

 

모델을 저장하려면 File - Save Model As... 를 눌러서 저장한다. 확장자는 .mwb 이다.

여기 까지 하더라도, 아직 csemall DB가 서버에는 반영이 되어있지 않다.

MySQL Model(csemall.mwb)를 클릭 - Database - Forward Engineer 선택

 

MySQL DBMS에 접근하기위한 연결 설정 파라미터를 설정하는 창이 뜬다.

 

Next를 누르다보면 다음 창이 뜨는데, Export MySQL Table Objects에 체크를 한다.

 

Next를 누르면 다음과 같은 내용을 담는 SQL Script가 보인다. 이 내용이 MySQL서버로 전송이 되어서 실제로 만들었던 모델이 MySQL 서버에 반영이 된다는 것이다. (Forward Engineer to Database)

Reverse Engineering은 반대로 데이터 모델을 가져오는 것이다.

 

Next를 누르면 과정이 진행되면서 완료되면 Forwarding이 성공적으로 수행되었다는 메시지가 뜬다.

 

이제 SCHEMAS에 가서 Refresh 버튼을 누르면 csemall DB가 나타나며, Table에 offers table이 나타난다.


Create a new SQL tab for executing queries 버튼을 누른다(빨간 네모)

 

쿼리 창을 입력할 수 있는 스크립트 창이 나타난다. Visual Studio는 여러 프로젝트 중 어떤 프로젝트를 시작프로젝트로 할지 설정해야 하는데, MySQL Workbench 역시 마찬가지이다. 다음과 같이 csemall DB를 Default Schema로 설정한다. 설정 시 DB 이름의 색상이 굵게 변한다.

 

이제 스크립트창에 명령어를 치면, 그에 해당하는 결과를 출력한다. 실행시키려면 아래 그림의 빨간 네모에 있는 번개모양 아이콘을 선택하면 된다.

 

offers 테이블에있는 모든 자료를 조회하면, 아직 레코드가 삽입되어있지 않기 때문에 아무것도 뜨지 않는다.

 

이는 Command Line에서 수행해도 동일한 결과를 가져온다.

 

이제 레코드를 실제로 삽입한다. id 같은 경우 Auto Increse 옵션이 설정되어있기 때문에 레코드 삽입 시 자동으로 1씩 추가된다.

따라서 insert문에 따로 기술하지 않아도 자동적으로 1씩 증가하여 레코드가 삽입된다.

 

다시 확인하면 다음과 같이 결과가 뜬다

 

*이때, 예전에 수행했던 SQL문을 다시 불러오고 싶으면, 밑의 Output 창에서 로그 선택 후 오른쪽마우스 - Replace SQL Script With Selected Items를 클릭하면 그대로 복사가 된다.

 

레코드를 3개까지 입력한다.

 

결과창에서 바로 데이터를 변경할 수도 있다.

 

이를 반영시키려면, 오른쪽 중간 아래에 Apply 버튼을 누르면 된다. 실제 전송될 SQL Script를 보여준다. Apply 버튼을 다시 누른다.

 

*Export/Import

Export는 아래 offers 테이블의 3개의 레코드를 내보낸다. Excel 등 다른 프로그램에서 활용이 가능하다.

SCHEMAS - <DB> - <Tables> - <Table> 오른쪽 마우스 - Table Data Export Wizard

 

Import 역시 외부에서 데이터를 가져올 수 있다.

 

Export를 해본다. 위 그림에서 Table Data Export Wizard 버튼을 누른다. 어떤 데이터를 내보낼지 선택한다.

Next를 누르고 내보낼 파일이 저장될 경로와 포맷을 지정한다. CSV, JSON 2개 포맷으로 가능하다. 각각의 Field를 구분할 수 있는 문자도 설정이 가능하다.

 

Next를 계속 누르면 해당 설정대로 파일이 생성된다.

*이 파일을 열때, Notepad++로 열면 정상적으로 보이나, 메모장, 워드패드로 보면 글자가 깨져 보임


이제 주기적으로 데이터를 백업하는것을 설정한다. 방금까지는 'Table'의 데이터만 Export했지만, 이것은 전체 DB를 Export 하는 것이다.

Server - Data Export

 

 

위와같이 설정하고 Start Export를 누르면 해당 경로로 sql포맷의 파일이 저장된다.

이를 워드패드로 열면 다음과 같다. 한글은 깨져보인다.

 

Comments