Skip to content
GwiyeomGo Tech Blog
About GwiyeomGo

mysql 에서 schema 는 뭐지?

MYSQL, 20213 min read

배경

최근 스키마가 무엇인지 질문을 받았다. 당연히 스키마 검색 했고 검색한 내용을 공유했다. 그리고 내가 쓴 글을 비난받았다.

당장 쓸모가 없는 내용을 암기하는 것이 공부라고 생각할 수 있다. 학교에서 그렇게 가르쳤으니 하지만, 당장 쓸모가 없는 많은 내용을 검색해서 여기 옮기면 어떤 가치가 있을까?

정말 이런 말을 듣게되다니 너무 운이 좋은거 같다.

그렇다면 스키마를 검색했을때 당장 실무에서 쓸 수 있는 정보는 무엇일까?

힌트속에 핵심어가 있었다

평소 개념으로만 학습했던 글쓴이는 부끄럽게도 아무거도 할 수 없었다.

결국 계속적으로 시니어님 힌트를 듣고 힌트를 듣고 내가 작성하는 코드에서 스키마와 관련된 부분을 찾았다.

[답에 근접하기 위한 힌트 목록]

  1. 내가 작성하는 코드에서DB와 연결하는 코드(config)를 확인해라!
  2. 코드에서 Connection은 무엇인가요?
  3. show databases;와 그 결과와 Schema무슨 관계 ?
  4. show tables;Schema무슨 관계 ?
  5. 데이터베이스라는 것을 하나의 큰 덩어리로만 보면 Schema인스턴스 같은 말이 왜 필요할까요?
  6. 시스템데이터베이스 관계가 1:1 이면 외부 스키마라는 개념은 필요가 없는 것 아닐까요?

내가 작성하는 코드에서 DB와 연결

DBMS(mysql)

mysql 우리가 사용하는 DBMS 입니다.

DB인스턴스

DB인스턴스스키마의 집합 이다.

Database

mysql스키마데이터베이스와 동의어이다.

schema

안에서 schematable 이 어떻게 존재하는지 검색 스키마테이블의 집합 이다.

A 스키마안의 B table 에 id 컬럼이 존재하는 지 궁금하다

SELECT count(*)
FROM information_schema.COLUMNS
WHERE
TABLE_SCHEMA = 'A'
AND TABLE_NAME = 'B'
AND COLUMN_NAME = 'id';
© 2024 by GwiyeomGo Tech Blog. All rights reserved.