특정 열 이름이 있는 MySQL에서 테이블 찾기

Preet Sanghavi 2023년6월20일
  1. MySQL의 스키마
  2. MySQL 스키마에서 테이블 생성 및 나열
  3. MySQL에서 특정 열 이름이 있는 테이블 나열
특정 열 이름이 있는 MySQL에서 테이블 찾기

이 튜토리얼은 특정 컬럼 이름을 가진 MySQL에서 모든 테이블을 찾는 방법을 보여주지만, 그 전에 이러한 테이블이 저장되는 스키마(데이터베이스)를 이해하는 것이 필수적입니다. 그래서 그것부터 시작합시다.

MySQL의 스키마

데이터베이스/스키마는 테이블 이름, 필드, 데이터 유형 및 이러한 엔터티 간의 연결을 포함하여 관계형 데이터베이스에서 데이터가 정렬되는 방식을 제어하는 논리적 제한 사항을 지정합니다.

스키마/데이터베이스 생성:

mysql> CREATE SCHEMA schema_name;

또는

mysql> CREATE DATABASE schema_name;

위의 쿼리는 스키마/데이터베이스를 생성하는 데 사용되며 유사한 출력을 보여줍니다. 해당 스키마에서 쿼리를 사용하고 실행하려면 먼저 방금 만든 스키마를 선택해야 합니다.

스키마 사용:

mysql> USE schema_name;

그러나 특정 스키마나 데이터베이스를 삭제하려면 다음 쿼리를 실행해야 합니다.

드롭 스키마:

mysql> DROP SCHEMA schema_name;

MySQL 스키마에서 테이블 생성 및 나열

데이터베이스의 모든 데이터는 데이터베이스 객체라고 하는 테이블에 저장됩니다.

데이터는 스프레드시트와 유사한 행 및 열 레이아웃을 사용하여 테이블에 논리적으로 정렬됩니다. 각 열은 레코드 필드를 나타내고 각 행은 개별 레코드를 나타냅니다.

테이블 만들기:

mysql> CREATE TABLE table_name(
            column_name datatype,
            column_name datatype,
            ...
        );

MySQL에서 테이블 및 열 이름은 대소문자를 구분하지 않습니다. 즉, MY_TABLEmy_table이라는 이름의 테이블을 생성하면 둘 다 동일합니다.

테이블이 필요하지 않은 경우 다음 쿼리를 사용하여 스키마에서 테이블을 제거할 수 있습니다.

mysql> DROP TABLE table_name;

스키마/데이터베이스는 많은 테이블을 보유할 수 있습니다. 운영 체제에서 생성하는 폴더로 스키마를 상상할 수 있습니다.

때로는 압도적이어서 스키마에서 생성한 테이블을 추적하지 못하고 특정 스키마의 모든 테이블을 나열하려는 경우가 있습니다.

이 경우 다음 쿼리가 매우 유용합니다. 먼저 USE schema_name;을 사용하여 스키마를 선택했는지 확인하십시오. 질문.

모든 테이블 표시:

mysql> SHOW TABLES;

스키마의 테이블 유형이 무엇인지 알고 싶다면 위의 쿼리를 추가로 수정할 수 있습니다.

mysql> SHOW FULL TABLES;

또한 현재 스키마를 전환하지 않고 다른 스키마의 테이블 목록을 원하는 경우. MySQL은 이 기능을 제공합니다. 쿼리에서 FORM 또는 IN 절을 사용할 수 있습니다.

mysql> SHOW TABLES FROM schema_name;

또는

mysql> SHOW TABLES IN schema_name;

스키마에서 기본 세부 정보를 가져오는 데 도움이 되는 기본 쿼리입니다. 그러나 이 쿼리를 더 수정하면 원하는 정확한 결과를 가져올 뿐만 아니라 더 멋질 수 있습니다.

MySQL에서 특정 열 이름이 있는 테이블 나열

일부 특정 열을 포함하는 스키마에서 테이블을 찾으려면 찾고 있습니다.

INFORMATION_SCHEMA.COLUMNS라는 MySQL 보기의 도움으로 우리는 모든 테이블의 모든 열 또는 특정 열을 가져오고 수 있습니다.

기본적으로 스키마의 모든 TABLE에서 열을 가져옵니다. 그러나 SELECT, FROMWHERE 절을 사용하여 이러한 열을 필터링할 수 있습니다.

mysql> SELECT DISTINCT table_name
       FROM INFORMATION_SCHEMA.COLUMNS
       WHERE COLUMN_NAME IN ('column_1', 'column_2', ...)
           AND TABLE_SCHEMA = 'schema_name';

또는 위 쿼리의 더 간단한 버전:

mysql> SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
       WHERE column_name = 'column_names';

가져오려는 열의 정확한 이름이 확실하지 않은 경우 대체 옵션인 정규 표현식이 있습니다.

MySQL은 정규식의 많은 조합 중 하나에서 정규식을 지원합니다. 예를 들어 WHERELIKE 절을 사용하여 단 한 단어로 원하는 열을 찾을 수 있습니다.

그런 다음 '%column_word%' 정규식을 사용합니다. '%column_word%'는 언급된 단어가 있는 모든 위치의 값을 찾습니다.

mysql> SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
       WHERE COLUMN_NAME LIKE '%column_word%';
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

관련 문장 - MySQL Column