데이터베이스 및 SQL 도구

SQL to ERD선언된 관계를 확인하세요

DDL을 관계도, 열 목록, 구조 데이터로 살펴보세요. 입력에 맞는 SQL 방언을 먼저 선택합니다.

SQL to ERD

SQL DDL 입력

구조 분석 결과

SQL을 입력하거나 예제를 선택하세요.

브라우저에서만 처리합니다. 데이터베이스 연결이나 이력 저장은 없습니다.

방언과 해석 기준

CREATE TABLE과 일반 열 이름을 쓰는 CREATE INDEX만 읽습니다. 명시된 외래 키만 연결하며 SQL을 실행하지 않습니다.

최대 50,000 UTF-16 단위, 테이블 50개, 열 1,000개입니다. 키·인덱스·CHECK·외래 키는 합계 200개까지, 열은 50개씩 표시합니다.

TypeScript는 조회 행의 형태입니다. 큰 정수와 정밀 소수는 string, 알 수 없는 유형과 SQLite 열은 unknown입니다. 드라이버의 반환 형식을 확인하세요.

결과가 오래되었습니다. 현재 입력을 처리한 뒤 내보내세요.

SQL to ERD는 실행 중인 데이터베이스에 접속할 수 없어도 테이블 명세서를 검토하게 해 줍니다. 복합 키가 어느 열로 구성됐는지, 일부만 받은 스키마가 어떤 외부 테이블을 참조하는지 확인할 때 유용합니다.

예제에는 두 테이블과 외래 키, 고유 키, 인덱스, 소수형 열이 들어 있습니다. ERD 생성 결과를 원문과 비교해 보세요. 이름이 user_id라고 해서 관계가 자동으로 생기지는 않습니다.

SQL to ERD로 드러나는 구조

선언된 사실과 업무상의 추측을 구별합니다.

외래 키가 있는 곳에만 연결

SQL to ERD는 실제 외래 키가 있는 테이블만 잇습니다. 참조 대상이 입력에 없으면 점선으로 외부 대상을 표시하므로, 부분적인 스키마를 완성된 모델로 오해하기 어렵습니다.

세 테이블 중 두 개만 명시된 참조로 연결되고 하나는 따로 남아 있는 그림.

한 결과를 여러 형식으로 검토

관계도는 의존성을, JSON은 구조 목록을, TypeScript는 조회 행의 형태를 보여 줍니다. 화면을 전환해도 같은 분석 결과를 사용하므로 표현 방식 때문에 구조가 달라지지 않습니다.

한 테이블 정의에서 관계도, 구조 트리, 타입 문서가 나뉘어 나오는 그림.

해석을 확인하는 세 단계

01

원문의 방언 선택

DDL 가져오기 전에 방언을 확인하세요. 선택기는 구문과 식별자 해석을 바꾸며 SQL을 다른 방언으로 번역하지 않습니다. MySQL 외래 키는 별도 FOREIGN KEY 구문으로 작성해야 합니다.

  • 방언을 바꾸면 분석이 성공할 때까지 이전 결과의 복사와 다운로드가 잠깁니다.
02

미확인 대상 수 확인

외래 키는 있으나 대상 테이블 정의가 없을 수 있습니다. 점선 노드와 대상 열을 보고 필요한 CREATE TABLE을 보충해야 하는지 판단하세요.

  • 스키마를 생략한 참조는 스키마를 생략한 테이블에만 연결합니다.
03

조회 행 타입 검토

기본값이 있어도 조회 결과의 속성이 선택적이 되지는 않습니다. 정밀 소수와 큰 정수는 string이며, 알려진 nullable 타입에는 null이 추가됩니다.

  • 자동 분석을 끄면 버튼 또는 Ctrl/Cmd + Enter로 실행할 수 있습니다.

키와 열을 문서로 옮기는 기능

세 가지 DDL 문법

MySQL, PostgreSQL, SQLite의 지원 범위를 읽습니다. 따옴표로 감싼 식별자와 스키마 이름을 보존하고, PostgreSQL의 따옴표 없는 이름은 소문자로 해석합니다.

복합 키의 순서 보존

기본 키와 고유 키를 순서가 있는 열 묶음으로 남깁니다. 복합 외래 키 양쪽의 열도 대응 순서를 유지합니다. 연결 테이블을 임의의 다대다 업무 관계로 합치지 않습니다.

원래 열 정의 확인

자료형 표기, NULL 허용 여부, 기본 키 소속을 살펴볼 수 있습니다. 열의 원문을 열면 DEFAULT, CHECK, 생성 열 구문도 그대로 보입니다. 명시적 인덱스는 열 순서와 정렬 방향을 보존합니다.

구조 JSON 내보내기

테이블 식별 정보, 열, 키, 인덱스, 검사 정의와 참조 대상을 하나의 스냅샷으로 저장합니다. 미확인 대상도 포함합니다. JSON Schema나 실행 가능한 데이터 검증 규칙은 아닙니다.

보수적인 TypeScript 타입

인터페이스에는 안전한 번호 이름을, 속성에는 따옴표 이름을 사용합니다. 시간은 string, 바이너리는 Uint8Array, JSON과 알 수 없는 타입은 unknown입니다. 실제 드라이버 설정과 비교해 조정해야 합니다.

문서에 넣을 SVG

관계도를 SVG로 저장할 수 있습니다. 카드에는 앞의 다섯 열을 미리 보여 주고 긴 이름은 줄여 표시합니다. 전체 필드는 열 보기와 JSON에 남아 있어 개요와 상세 내용을 함께 검토할 수 있습니다.

입력 범위와 해석의 한계

지원하는 구조문만 처리
CREATE TABLE과 열 이름을 사용한 CREATE INDEX를 받습니다. ALTER, INSERT, 뷰, 트리거, 저장 프로시저, CREATE TABLE AS/LIKE는 전체 분석을 중단합니다. 함수·식·접두사·부분 인덱스도 조용히 생략하지 않고 거부합니다.
관계를 추측하지 않음
_id라는 이름만으로 연결하지 않습니다. 화살표는 선언을 보여 줄 뿐 업무 카디널리티, 참조 대상의 고유성, 스토리지 엔진의 제약 적용을 증명하지 않습니다. 필요한 업무 제약은 원본 DDL에 명시해야 합니다.
서버 설정을 재현하지 않음
PostgreSQL은 따옴표 없는 이름을 소문자로, 따옴표 이름은 그대로 해석합니다. MySQL 테이블명은 정확히 일치해야 하며 열명은 대소문자를 구별하지 않습니다. SQLite는 ASCII 대소문자를 구별하지 않습니다. 스키마나 search_path는 추정하지 않습니다.
MySQL의 열 내부 참조는 거부
MySQL이 무시하는 열 단위 REFERENCES를 유효한 관계처럼 그리지 않습니다. 별도의 FOREIGN KEY를 사용하세요. 테이블 단위 선언 역시 실제 환경에서 제약이 강제되는지 보장하지는 않습니다.
SQLite의 별도 규칙
일반적인 비 INTEGER 기본 키는 NULL을 허용할 수 있습니다. INTEGER 기본 키와 지원되는 WITHOUT ROWID 정의에는 해당 규칙을 적용합니다. 동적 타입 저장 특성 때문에 모든 조회 행 속성을 unknown으로 내보냅니다.
규모 한도를 넘으면 분할
50,000 UTF-16 단위, 테이블 50개, 열 1,000개까지 처리합니다. 키·명시적 인덱스·보관된 CHECK·외래 키는 합계 200개입니다. 토큰 15,000개, 괄호 32단계, 문장 250개 한도도 적용하며 초과하면 전체를 거부합니다.
읽기 전용 결과
DEFAULT와 CHECK를 실행하지 않습니다. DB 접속, 파일 업로드, AI 설계, 클라우드 저장, 그림 편집, 마이그레이션 생성, PNG/DBML 출력은 없습니다. TypeScript는 삽입 DTO나 런타임 검증기가 아니므로 반환 타입을 직접 확인하세요.

SQL to ERD 자주 묻는 질문

데이터베이스에 접속해야 하나요?

접속 정보가 필요하지 않습니다. 지원하는 DDL 텍스트만 사용합니다. 서버 권한, 저장된 데이터와 설정은 확인하지 않으므로 분석 성공을 실제 DB에서의 실행 가능성이나 제약 유효성으로 받아들이면 안 됩니다.

어떤 DBMS의 DDL을 읽을 수 있나요?

MySQL, PostgreSQL, SQLite 중에서 선택할 수 있습니다. 지원하는 CREATE TABLE과 단순 CREATE INDEX가 대상이며 모든 버전의 문법을 다루지는 않습니다. 오류가 나면 방언을 확인하고 표시 위치의 복잡한 구문을 분리하세요.

기본 키와 외래 키를 어떻게 구별하나요?

다이어그램의 열 앞 기호는 기본 키를, 화살표는 외래 키를 나타냅니다. 열과 키 보기에서는 복합 키에 포함된 열을 순서대로 확인할 수 있습니다. 빠진 참조 대상은 외부 또는 미확인으로 표시합니다.

DB 설계 과제에 활용해도 되나요?

테이블 정의 검토나 설계 과제의 설명 자료로 활용할 수 있습니다. 다만 정규화와 업무 요구 사항의 타당성을 자동 평가하지 않습니다. 명시된 제약이 과제의 요구를 충족하는지는 작성자가 판단해야 합니다.

업무 내용을 설명하면 ERD를 만들 수 있나요?

자연어 설명에서 스키마를 생성하는 AI 기능은 없습니다. 테이블과 열, 키를 SQL로 먼저 작성하세요. 이름이 비슷하다는 이유로 관계를 덧붙이지 않으므로, 모든 연결의 근거를 입력 정의에서 확인할 수 있습니다.

서식 문제를 발견했나요?

다음 테이블 정의를 살펴보세요

SQL to ERD에 작은 DDL을 넣고 키와 미확인 대상을 확인한 뒤 문서에 사용할 결과를 내보내세요.

구조를 바꾸려면 원본 DDL을 수정하세요. 결과는 읽기 전용입니다.