Maria DB ( MySQL) 스키마(Schema) 메타데이터 정보조회
페이지 정보
작성자 운영자쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 3건 조회 3,365회 작성일 20-12-29 20:09본문
-- 테이블 정보 및 찾기 쿼리
SELECT TABLE_SCHEMA
, TABLE_NAME
, TABLE_COMMENT
, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%%'
;
-- 컬럼 정보
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_COMMENT, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_KEY
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME LIKE '%%'
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
;
- Information_schema는 데이터에 의한 데이터로써 즉 메타 데이터(Meta Data)로써 데이터 사전이다. 데이터 사전(Data Dictionary)이란 데이터베이스에 속한 데이터들의 정보를 저장한 것으로써, 시스템 카탈로그(System Catalog)라고도 한다.
- Information_schema의 특징 중 하나는 읽기전용(Read-only)인데, 데이터베이스의 테이블과 같은 데이터로 동적으로 생성됨으로써 사용자가 직접 수정하거나 관여할 수는 없다.
- Information_schema의 테이블
| CHARACTER_SETS : 사용가능한 모든 문자 셋에 대한 정보를 가지고 있다.
| COLLATIONS : 사용 가능한 모든 콜레션에 대한 정보를 가지고 있다. 콜레션은 데이터베이스에 저장된 값들을 비교, 검색하거나 정렬 등의 작업을 위해 문자들을 서로 비교할 때 사용하는 규칙들의 집합이다.
| COLLATION_CHARACTER_SET_APPLICABILITY : 어떤 콜레션에 어떤 문자열 세트가 적용되는지를 표시한다.
| COLUMNS : 테이블 칼럼의 콜레션 정보를 가지고 있다. 칼럼이라도 char, varchar, text 형태의 컬럼은 콜레션을 가진다. 비문자 타입은 콜레션을 가지지 않는다.
| COLUMN_PRIVILEGES : 테이블 칼럼 권한에 대한 정보를 제공한다.
| KEY_COLUMN_USAGE : 제약사항을 가지고 있는 키 컬럼에 대한 정보를 제공한다.
| REFERENTIAL_CONSTRAINTS :
| ROUTINES : 스토어드 루틴에 대한 정보를 제공한다. 스토어드 루틴이란 DB상에 저장이 가능한 SQL 구문이다.(프로시저, 함수 포함)
| SCHEMATA : 하나의 스키마는 하나의 데이터베이스다. SCHMATA는 데이터베이스의 정보를 제공한다.
| STATISTICS : 테이블 인덱스에 대한 정보를 제공한다.
| TABLES : 데이터베이스에 존재하는 테이블에 대한 정보를 제공한다.
| TABLE_CONSTRAINTS : 테이블에 대한 제약사항에 대한 정보를 제공한다.
| TRIGGERS : 트리거에 대한 정보를 제공한다. 트리거란 테이블에 대한 이벤트에 반응하여 자동으로 실행되는 작업을 의미한다.
| USER_PRIVILEGES : 글로벌 권한에 대한 정보를 제공한다. 글로벌 권한은 모든 데이터베이스에 대한 권한이 주어지는 권한이다.
| VIEWS : DB에 있는 뷰에 대한 정보를 제공한다.
출처: https://schulwin.tistory.com/entry/Maria-DB-MySQL-스키마Schema-메타데이터-정보조회 [Diary of Schul]
댓글목록
운영자님의 댓글
운영자쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';
운영자님의 댓글
운영자쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일
괄호가 있을 경우 괄호 앞까지만 추출하고 아니면 그대로 출력
=IF(ISERROR(SEARCH("(",AN4)),AN4,LEFT(AN4,FIND("(",AN4)-1))
운영자님의 댓글
운영자쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일
괄호가 있을 경우 괄호 안에 문자만 추출하고 없으면 그대로 출력
=IF(ISERROR(SEARCH("(",AN4)),AN4,MID(AN4,FIND("(",AN4)+1,FIND(")",AN4,FIND("(",AN4)+1)-FIND("(",AN4)-1))