MY SQL에서 특정 컬럼명을 포함한 모든 테이블을 조회 하고 싶을 때가 있는데 그럴땐 아래와 같은 쿼리를 작성하면 됩니다.
SELECT TABLE_SCHEMA
, TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'username'
AND TABLE_SCHEMA = 'your_database_name';
위처럼 INFORMATION_SCHEMA.COLUMNS 뷰는 데이터 베이스의 테이블의 컬럼정보를 제공하며 test라는 컬럼을 column_name에 조건으로 걸어주게된다면 아래와 같이 test라는 컬럼명을 포함한 테이블 명칭이 조회되어 나오게 됩니다.
뿐만아니라 INFORMATION_SCHEMA.COLUMNS 뷰의 컬럼의 내용은 아래와 같습니다.
- TABLE_SCHEMA: 컬럼이 속한 데이터베이스의 이름입니다.
- TABLE_NAME: 컬럼이 속한 테이블의 이름입니다.
- COLUMN_NAME: 컬럼의 이름입니다.
- ORDINAL_POSITION: 테이블 내의 컬럼 순서를 나타내는 번호로, 테이블에서 컬럼이 정의된 순서대로 부여됩니다.
- COLUMN_DEFAULT: 컬럼의 기본값입니다. 컬럼에 대해 명시적으로 기본값이 설정되지 않았다면 NULL 값을 가집니다.
- IS_NULLABLE: 컬럼이 NULL 값을 허용하는지를 나타냅니다. 'YES'는 NULL 가능, 'NO'는 NULL 불가능을 의미합니다.
- DATA_TYPE: 컬럼의 데이터 유형(예: VARCHAR, INT, DATE 등).
- CHARACTER_MAXIMUM_LENGTH: 문자 유형의 컬럼에 대한 최대 길이를 나타냅니다.
- CHARACTER_OCTET_LENGTH: 문자 유형의 컬럼에 대한 최대 바이트 크기를 나타냅니다.
- NUMERIC_PRECISION: 숫자 유형의 컬럼에 대한 정밀도를 나타냅니다. 이 값은 숫자의 총 자릿수를 의미합니다.
- NUMERIC_SCALE: 숫자 유형의 컬럼에서 소수점 이하의 자릿수를 나타냅니다.
- DATETIME_PRECISION: 날짜와 시간 유형의 컬럼에 대한 정밀도를 나타냅니다. 이는 소수점 이하의 정밀도(초 단위)를 나타낼 수 있습니다.
- CHARACTER_SET_NAME: 컬럼의 문자 집합 이름입니다.
- COLLATION_NAME: 컬럼의 정렬 순서 이름입니다.
- COLUMN_TYPE: 컬럼의 전체 데이터 유형을 나타냅니다. 예를 들어, ENUM이나 SET의 가능한 값 등을 포함할 수 있습니다.
- COLUMN_KEY: 컬럼이 어떤 인덱스의 일부인지 나타내며, 예를 들어 'PRI'는 기본 키의 일부임을 의미합니다.
- EXTRA: 컬럼에 대한 추가 정보, 예를 들어 auto_increment 속성이 설정된 경우 이 정보가 포함됩니다.
- PRIVILEGES: 컬럼에 대해 설정된 권한을 나타냅니다.
- COLUMN_COMMENT: 컬럼에 대한 추가적인 설명 또는 주석입니다.
출처: https://dev.mysql.com/doc/refman/8.3/en/information-schema-columns-table.html
'DB > mysql' 카테고리의 다른 글
MY SQL RECORD LOCK PROCESS KILL 레코드 행락 킬하기 (0) | 2024.07.17 |
---|---|
MySQL 기본 인코딩 UTF-8설정하기 (0) | 2023.12.25 |
MySql Unable to connect to foreign data source: Can't connect to MySQL server on 간단 해결 (0) | 2023.12.11 |
My Sql 1429 : Unable to connect to foreign data source connection error (1) | 2023.12.06 |
MySql LOAD DATA LOCAL 사용법 not found error 처리 (0) | 2023.12.05 |