mysql 에서 schema 는 뭐지?
배경
최근 스키마가 무엇인지 질문을 받았다. 당연히 스키마 검색 했고 검색한 내용을 공유했다. 그리고 내가 쓴 글을 비난받았다.
당장 쓸모가 없는 내용을 암기하는 것이 공부라고 생각할 수 있다. 학교에서 그렇게 가르쳤으니 하지만, 당장 쓸모가 없는 많은 내용을 검색해서 여기 옮기면 어떤 가치가 있을까?
정말 이런 말을 듣게되다니 너무 운이 좋은거 같다.
그렇다면 스키마를 검색했을때 당장 실무에서 쓸 수 있는 정보
는 무엇일까?
힌트속에 핵심어가 있었다
평소 개념으로만 학습했던 글쓴이는 부끄럽게도 아무거도 할 수 없었다.
결국 계속적으로 시니어님 힌트를 듣고 힌트를 듣고
내가 작성하는 코드
에서 스키마
와 관련된 부분을 찾았다.
[답에 근접하기 위한 힌트 목록]
내가 작성하는 코드
에서DB와 연결하는 코드(config)
를 확인해라!- 코드에서
Connection
은 무엇인가요? show databases;
와 그 결과와Schema
무슨 관계 ?show tables;
와Schema
무슨 관계 ?데이터베이스
라는 것을 하나의 큰 덩어리로만 보면Schema
나인스턴스
같은 말이 왜 필요할까요?시스템
과데이터베이스
관계가 1:1 이면외부 스키마
라는 개념은 필요가 없는 것 아닐까요?
내가 작성하는 코드에서 DB와 연결
DBMS(mysql)
mysql
우리가 사용하는 DBMS
입니다.
DB인스턴스
DB인스턴스
는 스키마의 집합
이다.
Database
mysql
의 스키 마
는 데이터베이스
와 동의어이다.
schema
안에서 schema
와 table
이 어떻게 존재하는지 검색
스키마
는 테이블의 집합
이다.
A 스키마안의 B table 에 id 컬럼이 존재하는 지 궁금하다
SELECT count(*)FROM information_schema.COLUMNSWHERE TABLE_SCHEMA = 'A'AND TABLE_NAME = 'B'AND COLUMN_NAME = 'id';