관리 메뉴

History

[DBMS] 데이터베이스와 테이블 만들기 본문

DBMS

[DBMS] 데이터베이스와 테이블 만들기

luckybee 2023. 5. 6. 18:11
728x90
반응형

이번 게시물은 Workbench 또는 DBMS 관리 툴을 설치했다면 스키마(데이터베이스)를 생성하고 자신이 저장할 데이터의 구조를 테이블로 만들어야 한다. 그것에 관한 글을 쓰겠다.

 

우선 Workbench를 실행한다. 실행화면 아래와 같이 화면이 뜰 것이다. 

 

그리고 나처럼 같은 컴퓨터에 MySQL이 설치되어있다면 계정이 하나 만들어져 있을 것이다.

MySQL이 설치된 Workbench 실행화면

root 계정을 선택하면 아래와 같이 MySQL 접속을 위한 계정을 묻는 창이 나온다. 여기서는 root 계정만 사용이 가능하기 때문에 MySQL을 설치할 때 입력했던 root 계정에 대한 암호를 입력하고 ok를 누른다.

 

만약 현재 컴퓨터에 MySQL이 설치되어있지 않다면 아래 그림처럼 Database에 Connect to Database... 을 클릭한다. 

 

그러면 아래와 같이 화면이 나올 것이다. 빨간색 체크박스를 위에서 순서대로 작성하면 되는데, parameters를 입력하면 인터페이스가 아래 그림처럼 나올 것이고, Hostname에는 MySQL이 설치되어 있는 컴퓨터의 IP주소나 도메인 명을 적는다. 필자는 MySQL이 설치되어 있는 컴퓨터의 IP를 적었다. 

 

그리고 해당 계정 정보를 root가 아닌 다른 계정을 추가하기 위해서 Username에 kimminki를 적었다.

 

PS) 현재 컴퓨터의 IP를 찾는 방법은 아래 링크에서 확인하면 된다.

https://hard-go-head.tistory.com/entry/%ED%98%84%EC%9E%AC-%EC%BB%B4%ED%93%A8%ED%84%B0-ip%EC%A3%BC%EC%86%8C-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0

 

현재 컴퓨터 ip주소 확인하기

이번 게시글은 현재 pc의 ip 주소를 확인하는 방법에 대해 글을 작성하겠다. 우선 윈도우 검색에 들어가서 cmd 혹은 명령프롬포트라고 검색을 한다. 검색을 했으면 열기를 누른다. 그럼 위처럼 나

hard-go-head.tistory.com

 

마지막으로 store in Valult... 버튼을 누르면 아래와 같이 패스워드 입력 창이 나오는데 암호를 입력하고 ok를 누르면 된다.

 

 

이제 Workbench의 실행이 끝났다. 이제 Schema(스키마, 데이터베이스)를 만들어보자.

 

스키마는(Schema) 사용자가 데이터베이스에 접근할 때 지도(map)처럼 사용하는 개념이기 때문에 스키마와 데이터베이스는 동일한 개념이 아니다. 계획된 도시의 경우에는 지도를 먼저 만들고 그 지도에 따라 도시를 건설하는 의미로 스키마는 자신이 사용할 데이터베이스를 설계한다는 의미이다.

 

 따라서 어떤 프로젝트를 위해서 데이터베이스를 구성하겠다고 마음을 먹었으면 제일 먼저 해야할 작업이 스키마를 생성하여 그 스키마에 프로젝트에서 사용할 데이터 구조를 정의하는 것이다.

 그러나 새로운 스키마를 생성하지 않고 기존에 사용 중이던 스키마에 데이터 구조를 추가해서 사용해도 된다. 하지만 관련성 없는 여러 개의 데이터 구조를 하나의 스키마에 포함시키면 나중에 이 데이터를 서로 구분 짓기가 어려워져서 데이터베이스 관리가 힘들어지기 때문에 스키마를 새로 만들기 귀찮다고 기존에 존재하던 스키마에 데이터 구조하나 추가해서 사용하게 되면 나중에 그 데이터 구조가 어디에 있는지 찾는데 시간이 오래 걸릴 수 있다.

 

 

그래서 현재 실습에서는 스키마를 하나 생성해보는 것부터 진행하도록 하겠다.

 

우선 아까 로그인을 통해 성공적으로 MySQL에 접속을 했다면 아래 그림과 같을 것이다.

로그인 성공한 Workbench

 왼쪽 아래 Schemasfksms 라는 탭을 누르면 sys라는 한 개의 스키마가 있다. 난 sys 스키마를 사용하지 않고 새로운 스키마를 생성하겠다.

기존 스키마

아래 그림처럼 도구상자에서 원통 모양(Create a new schema)라는 아이콘을 선택한다. 그러면 스키마 생성을 위한 입력 창이 나오는데 Name은 새롭게 생성할 스키마의 이름을 입력하면 되고, 스키마에서 다국어를 사용하는 경우 문자 집합을 어떻게 사용할 것인지를 Collation 항목에서 설정해야 하는데 필자는 유니코드 기반으로 작업을 하기 때문에 utf8을 선택했다.

이제 apply버튼을 누르면 아래 그림처럼 나올 것이다. 

마지막으로 apply를 누르면 작업이 완료된다.

 

추후에 workbench를 안쓰고 라인단위로 작업할 때 명령문을 기억하면 새로운 스키마를 만들 때 유용하니 이렇게 나오는 명령문은 모두 기록해 두는 것이 좋다.

CREATE SCHEMA `kim_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ;

아래 그림처럼 성공적으로 스키마 목록에 필자가 추가한 스키마가 추가되었다.

스키마 등록 성공

이제 스키마를 추가했으니 테이블(table)을 추가해보겠다. 위 그림처럼 kim_db의 세부 항목에는 'table', 'views', 'stored Procedures', 'Function'이 있다. 그중에서 table에 대해서 간단하게 설명하겠다.

 

'table'에는 테이블 정보가 들어있고 테이블은 데이터 구조를 정의한 명세서이다. 예를 들어 친구 정보라는 데이터가 있다면 아래와 같이 데이터를 구성하는 구체적인 형태(크기, 형식)를 정의한 표가 테이블이라고 생각하면 된다. 따라서 스키마는 데이터를 구성하거나 관리할 때 이 테이블 정보를 참고하여 작업을 진행한다.

테이블 정보

지금부터 위에서 보여준 친구 정보라는 테이블을 workbench를 사용하여 kim_db 스키마에 추가하는 방법을 설명하겠다.

 

kim_db 스키마에 새로운 테이블을 추가하려면 아래 그림처럼 table 항목을 마우스로 우 클릭하여 출력되는 메뉴에서 create Table... 항목을 선택하면 된다.

create Table... 선택

그러면 아래와 같이 테이블을 편집하는 화면이 출력된다. 

필자는 Table Name을 friends로 설정했고 Charset/Collation은 각각 utf8/utf8_bin으로 설정했다.

이제 이 테이블에 이름, 전화번호, 나이를 지정할 수 있도록 설정한다. 먼저 이름을 저장할 Column을 추가해 보겠다.

테이블에 새로운 Column을 추가하고 싶다면 아래 그림처럼 Column Name 아래쪽에 표시한 사각형 영역을 더블클릭한다.

더블클릭을 하면 idfriends라고 자동으로 뜰 텐데 필자는 name으로 수정했다. 아래 그림을 보자.

Column Name을 name으로 넣었고 Datatype는 VARCHAR(10)으로 맞췄다. 그리고 NN(NotNull)만 체크하고 나머지는 해제했다.

 

마찬가지로 다른 항목도 추가하겠다.

핸드폰번호와 나이는 입력하지 않을 수도 있기 때문에 NN(Not Null)을 체크하지 않았다. 

 

이제 항목 3개를 다 추가했으니 apply 버튼을 누르겠다.

아래 그림처럼 코드로 변환된 소스가 나오고 apply를 한번 더 누르면 된다.

CREATE TABLE `kim_db`.`friends` (
  `name` VARCHAR(10) NOT NULL,
  `phone` VARCHAR(16) NULL,
  `age` INT NULL)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;

항상 소스는 백업을 해놓는다.

위 그림들처럼 성공적으로 테이블에 항목이 잘 들어가 있다.

 

이제 테이블에 데이터를 추가해 보겠다.

 

위에서 생성한 friends 테이블에 SQL 구문을 사용하여 데이터를 추가해보고 싶다면, friends 테이블을 선택하고 마우스 오른쪽 버튼을 클릭 후 Send to SQL Editor -> Insert Statement를 선택하면 테이블에 데이터를 추가하기 위한 SQL 구문을 작성할 수 있다.

클릭을 하면 아래 그림과 같이 출력될 것이다.

6~8번까지 오류가 발생하는 이유는 추가할 데이터의 정보를 적어야 하는데 정보가 적혀있지 않아서 그런 것이다. 아래 그림처럼 바꿔주면 오류는 발생하지 않는다. 그리고 번개 모양을 클릭하면 SQL 구문이 실행된다.

INSERT INTO `kim_db`.`friends` (`name`, `phone`, `age`) VALUES ('박씨', '010-8888-9999', 50);

 

이제 테이블에 저장된 데이터를 확인해 보자. 아래 그림처럼 들어가면 추가된 데이터를 확인할 수 있다.

Select Rows - Limit 1000 메뉴 항목을 선택하면 아래와 같은 탭이 추가되고 자동으로 검색과 관련된 SQL 구문이 추가된다.

성공적으로 데이터가 잘 들어갔다.

SELECT * FROM kim_db.friends;

 

728x90
반응형
Comments