DATABASE/MySQL Workbench

MySQL Workbench : 스키마(Schema)와 테이블(Table) 생성하기 (PK, NN, AI, UN 설정)

신강희 2024. 5. 13. 13:09
728x90

< 스키마(Schema)와 테이블(Table) 생성하기 (PK, NN, AI, UN 설정)  >

 

- 이전장까지 RDSSQL Workbench 연동을 모두 완료하였고, 이제 직접 Workbench 학습을 시작

- 혹시 연동이 되어있지 않다면 이전 게시글을 참조해서 연동을 완료해야 실행이 됨.

- 참조 : https://sorktjrrb.tistory.com/97

 

AWS RDS DATABASE : (1) AWS의 RDS로 MySQL free tier 설치하기

(1) AWS의 RDS로 MySQL free tier 설치하기 # 데이터베이스 학습에 앞서서 필요한 준비사항# 데이터베이스 대표사는 MySQL과 Oracle 등이 있고, 이중 MySQL이 대중적으로 쓰임.# 그러기 위해서 우선 AWS의

sorktjrrb.tistory.com

 

# 연동이 정상적으로 완료되었으면 생성한 커넥션을 선택하면 Workbench 실행 화면으로 진입된다.

 

# 기본 실행 화면

 

#여기서 중요한 개념으로 스키마 (상단 이미지에 sys : 원통형으로 데이터 베이스) 테이블이 있다.

  • 스키마 (Schema)
    - 스키마는 데이터베이스의 논리적 구조
    - 보통 데이터베이스 내에 여러 개의 스키마가 있을 수 있다.
    - 각 스키마는 특정 목적이나 기능에 따라 데이터베이스 객체들을 그룹화
    - 테이블, 뷰, 프로시저 등의 객체들은 스키마 내에 속한다. 즉, 테이블 < 스키마
    - 예를 들어, 웹 애플리케이션의 경우 사용자 관리를 위한 스키마와 쇼핑 관련 데이터를 위한 스키마 등으로 나눌 수 있음

 

  • 테이블 (Table)
    - 테이블은 데이터를 저장하는 데 사용되는 구조
    - 테이블은 열과 행의 집합으로 이루어져 있지만, 판다스 데이터프레임과 다른점은 인덱스가 없다.
    - 각 열은 특정 유형의 데이터를 저장하는 데 사용 (숫자, 문자열, 날짜 등)
    - 각 행은 테이블 내의 하나의 데이터 레코드를 나타냄
    - 테이블은 주로 엔터티나 개체를 표현하며, 데이터의 논리적 그룹을 형성
    - 예를 들어, 사용자 정보를 저장하기 위한 "users" 테이블은 사용자 이름, 이메일 주소, 비밀번호 등의 열로 구성될 수 있음

    # MySQL Workbench를 사용하여 데이터베이스를 설계할 때, 스키마를 생성하고 그 안에 테이블을 만들어 데이터를 구조화하고 저장할 수 있다. 이를 통해 데이터베이스를 효율적으로 관리하고 검색할 수 있다.

 

# 그 스키마를 생성하는 방법!

# 상단의 뉴 스키마 버튼을 선택

 

# 원하는 이름을 입력하고 'Apply' 하면 생성됨

 

# 생성된 스키마(DB) 내에 Tables이 생성된걸 확인할수 있음.

# 비유하자면 폴더가 생성되었다고 보면되고, 그 폴더내에 파일을 생성하여 작업해야 하는것!
# 테이블 항목을 우클릭하여 'Create Table...' 을 선택하면 자동 입력창이 뜨고 원하는 이름으로 수정해주면됨.



# 이 설정창에서 각 컬럼들과 데이터 타입등을 설정해 주어야 한다.

# 기본적으로 유니크하게 값을 구분하기 위해 id라는 컬럼 항목은 넣어주는게 좋다.

# 실습으로 cats라는 테이블에 컬럼은 id와 name 그리고 age를 넣어보자.

 

# 이때! 중요한것이 data types 인데, python과 다르게 데이터 타입이 굉장히 많기 때문에, 보통 실무를 볼때는 팀내에서 정해주거나, 그러지 않을때는 보편적으로, 숫자 데이터'INT', 문자 데이터'VARCHAR'를 주로 사용한다.

# VARCHAR를 설정해줄때는 ( ) 안에 글자수 제한을 기재해 주어야 설정이 됨!

 

ㄴ 여기에서 Datatype 우측에 명칭들과 체크박스가 보이는데, 각 기능별로 정리하자면,

 

- PK (Primary Key) : 이 옵션을 선택하면 해당 열이 테이블의 기본 키(primary key)로 설정됨, 기본 키는 각 행(row)을 고유하게 식별하는 역할 주로 id 컬럼에 pk를 체크하여 사용

- NN (Not Null) : 이 옵션을 선택하면 해당 열이 NULL 값을 허용하지 않음, 데이터를 입력하지 않을경우 문자 데이터는 빈칸, 숫자데이터는 보통0으로 출력됨

- UQ (Unique) : 중복된 값을 허용하지 않게 설정

- B (Binary) : 이 옵션을 선택하면 해당 열이 이진(binary) 데이터를 저장할 수 있음을 나타냅니다.

- UN (Unsigned) : 음수는 허용되지 않고 양수만 저장 가능

- ZF (Zero Fill): 이 옵션을 선택하면 해당 열이 0으로 채워진 숫자 값을 저장할 때 자릿수를 맞추기 위해 나머지 공간을 0으로 채우도록 지정

- AI (Auto Increment): 이 옵션을 선택하면 해당 열이 자동으로 증가하는(auto-increment) 값으로 설정. 주로 기본 키(primary key) 역할을 하는 열에 사용 (id)

- G (Generated): 이 옵션을 선택하면 해당 열이 계산된 값 또는 식(expression)에 의해 생성되는 값으로 설정됨. 예를 들어, 날짜 및 시간 값을 계산하는 경우에 사용될 수 있음.

- Default/Expression : NN만 설정해둘경우 빈칸으로 출력되기 때문에, NN일때 기본적으로 출력시킬 default값을 미리 설정 할수 있음

 

# 나는 id는 고유값이므로 PK, NN, UN, AI 까지 설정하여 생성 (보통 이렇게 네가지 설정값을 주로 사용)

# name 과 age 컬럼은 NN만 설정하고, 디폴트 값으로 '고양이', 와 '1'을 입력

 

# 이렇게 설정한값데로 테이블 생성까지 확인할수 있다.


# 혹시 컬럼을 추가하고 싶거나 잘못 설정한 부분이 있어 수정이 필요하면, 원하는 테이블명에 마우스를 올려두고 나오는 우측 아이콘을 선택하면 재진입 가능하다.

다음장에서 데이터 입력하기로 계속

반응형