MySQL PK 조회 - MySQL PK johoe

DB가 복잡해지다보면, 모든 스키마를 외우고 있을 수는 없다. 

그래서 테이블들의 스키마를 조회하게되는 경우가 많아지는데, 그 중에서도 실무에서 자주 사용하는 테이블에 적용되어있는 Key 특성을 조회하는 쿼리들을 정리해보았다.

(1) SHOW INDEXES IN "table이름"

 : 해당 DB 내에서 사용해야하며, 테이블에 정의되어있는 Key 가 걸려있는 Column과, Cardinality 등까지 자세한 정보를 제공해준다.

(2) SELECT * FROM Information_schema.table_constraints

 : DB를 관리할 수 있다면 Information Schema 를 조회하는 방법은 알아두는게 좋다. 굳이 포스팅에서 다루는 Key 조회 이외에도 Information Schema 는 많은 정보를 담고 있다.

다음과 같이 테이블에 대한 정보를 얻어낼 수 있다.

SELECT * FROM Information_schema.table_constraints WHERE table_schema="db이름”;

SELECT * FROM Information_schema.table_constraints WHERE table_schema="db이름” AND table_name="table이름";

(3) SHOW CREATE TABLE "table이름";

 : 이 쿼리가 사실 만능이라고 여겨진다. (강조) 세부적인 정보를 도출하기는 힘들지만, 가장 쉽게 자주 필요한 정보들을 조회할 수 있다.

이 쿼리는 테이블 생성 쿼리를 그대로 보여준다.

개인적으로 가장 많이 사용하는 쿼리는 3번의 SHOW CREATE TABLE 구문이지만, 가장 강력한 건 Information_schema 정보를 다룰줄 아는것이다.

다양한 MySQL 의 시스템 테이블들과의 JOIN 연산을 통해 스키마 정보를 디테일하게 추출해낼 수 있으며, 이는 좀 더 자세하게 다룰 예정이다.

MySQL MariaDB/DB,Table 정보

2021. 8. 13.

MySQL PK 조회 - MySQL PK johoe

#--- primary, foreign key 조회  (테이블별)

SELECT *

  FROM information_schema.table_constraints 

WHERE  table_name = '테이블명';

#--- primary, foreign key 조회  (테이터베이스 별)

SELECT *

  FROM information_schema.table_constraints 

WHERE  constraint_schema = '테이블명';

CONSTRAINT_CATALOG nvarchar
(128 )
제약 조건자.
CONSTRAINT_SCHEMA nvarchar
( 128 )
제약 조건을 포함하는 스키마의 이름
CONSTRAINT_NAME sysname 제약 조건 이름.
TABLE_SCHEMA nvarchar
( 128 )
테이블을 포함하는 스키마의 이름.
TABLE_NAME sysname 테이블 이름
CONSTRAINT_TYPE varchar
( 11 )
제약 유형:

CHECK
UNIQUE
PRIMARY KEY
FOREIGN KEY

https://docs.microsoft.com/en-us/sql/relational-databases/system-information-schema-views/table-constraints-transact-sql?view=sql-server-ver15 

https://mariadb.com/kb/en/information-schema-table_constraints-table/

Mysql에서 PK,FK 등 제약조건, Index 확인, PK 특징

아우2018. 9. 3. 14:06

1. mysql 테이블 컬럼, 자료형, null, 기본값, 제약조건 등 확인
desc 테이블이름

MySQL PK 조회 - MySQL PK johoe




2. 제약조건 전체 확인(데이터베이스 기준)
select * from information_schema.table_constraints where constraint_schema = '데이터베이스이름';

MySQL PK 조회 - MySQL PK johoe




3. 제약조건 전체 확인(테이블 기준)
select * from information_schema.table_constraints where table_name = '테이블이름';

MySQL PK 조회 - MySQL PK johoe





4. index 확인
show index from 테이블이름

MySQL PK 조회 - MySQL PK johoe



PK 특징

Primary Key
행을 고유하게 구분하는 최소 정보.
모든 테이블에는 PK가 있어야 하고 오직 하나만 존재 가능. 반드시 not null 속성이어야 함. 
어떤 테이블에 PK 역할을 할 수 있는 컬럼이 있다면 그걸 candidate key(후보키)라고 부른다. 테이블에 후보키는 여러 개 존재할 수 있다. 회원번호나 주민번호나 id 같은 게 후보키가 될 수 있다. 이 후보키 중 하나만 PK로 선택할 수 있다.
관례상 PK는 테이블의 첫번째 컬럼에 위치하도록한다. 
PK가 생성되면 물리적으로 희귀성을 보장하기 위해 unique index가 만들어진다.  그러므로 PK를 이용한 검색은 그렇지 않은 검색보다 훨씬 빠르다.