SQL 덤프 (.sql)
ISO/IEC 표준Structured Query Language Script(SQL)는 데이터베이스 테이블을 구성하기 위한 선언적 DDL 문과 데이터를 채우기 위한 DML INSERT 문을 포함하는 범용 관계형 데이터베이스 포맷입니다.
SQLITE을(를) SQL(으)로 변환
무료 브라우저 내 SQLITE-SQL 변환기. 기기에서 파일을 즉시 변환하세요.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 SQL 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 SQL 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
2D 2D 20 / 43 52 45 41 54 45ASCII 표현: -- / CREATE
표준화: ISO/IEC 9075:2023 / ANSI SQL Standard
기술 사양
| 컨테이너 아키텍처 | Unicode plain text script containing Data Definition Language (DDL) and Data Manipulation Language (DML) statements |
| 압축 | Uncompressed plaintext (frequently compressed as .sql.gz or .sql.zst) |
| 바이트 엔디안 | UTF-8 / Unicode text stream |
| 색 공간 | N/A (Database Script) |
| 채널 및 구조 | Relational schema definitions (tables, views, indexes, foreign keys) and data INSERT rows |
| 최대 크기 | Unbounded text length (supports multi-terabyte database dumps) |
| 투명도 | None |
| 스트리밍 및 프로그레시브 | Statement-by-statement transactional streaming execution |
기술 비교 매트릭스: SQL 대 경쟁사
| 기술적 속성 | SQL (현재) | CSV | JSON | SQLITE |
|---|---|---|---|---|
| 스키마 보존 | 완전한 스키마 (테이블, 타입, 외래 키) | 헤더 열 이름만 | 자체 설명 문서 구조 | 완전한 바이너리 데이터베이스 파일 |
| 실행 모델 | 실행 가능한 DDL/DML 스크립트 | 수동 행-열 데이터 | 수동 문서 트리 | 직접 바이너리 B-트리 쿼리 |
| 표준화 | ISO/IEC 9075 표준 | RFC 4180 | RFC 8259 | SQLite 오픈 파일 포맷 |
| 데이터 관계 | 전체 외래 키 제약 조건 | 평면 표 형식 (관계 없음) | 중첩된 부모-자식 객체 | 전체 관계형 제약 조건 |
일반적인 손상 모드 및 헥스 복구 가이드
데이터베이스 가져오기가 'ERROR: syntax error at or near...'로 실패합니다.
근본 원인: SQL 방언 불일치 (예: MySQL 백틱 덤프를 PostgreSQL로 가져오기) 또는 이스케이프되지 않은 작은따옴표.
복구: File2File Database Transpiler를 사용하여 방언 구문을 변환하고 정리합니다.
보안 분석 및 파서 공격 벡터
신뢰할 수 없는 SQL 스크립트를 실행하면 치명적인 SQL 인젝션, 임의 파일 쓰기 또는 관리자 권한 상승이 발생할 수 있습니다.
알려진 공격 벡터
- 의도하지 않은 관리 명령(예: DROP TABLE, GRANT ALL)을 실행하는 SQL 인젝션(SQLi).
- 'COPY ... FROM PROGRAM' 또는 'LOAD DATA INFILE'을 통한 임의 서버 파일 읽기/쓰기.
- 색인되지 않은 재귀 공통 테이블 식(CTE)을 통한 서비스 거부.
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- 엔터프라이즈 데이터 스토리지의 명실상부한 글로벌 표준: PostgreSQL, MySQL, SQLite, Oracle, SQL Server와 호환됨.
- 완전한 관계형 충실도: 데이터와 함께 테이블, 기본 키, 외래 키, 제약 조건, 인덱스를 재현합니다.
- 트랜잭션 실행: 트랜잭션 내에서 문을 실행하여(BEGIN...COMMIT) 원자적 데이터베이스 복원을 보장할 수 있습니다.
기술적 제한 사항 및 단점
- 방언 비호환성: 미묘한 구문 차이(예: AUTO_INCREMENT 대 SERIAL 대 AUTOINCREMENT)로 인해 데이터베이스 엔진 간 변환이 필요함.
- 대규모 텍스트 오버헤드: 일반 SQL INSERT 문은 바이너리 데이터베이스 스토리지보다 훨씬 더 많은 공간을 차지함.
- 인덱스 재구축을 비활성화하지 않은 상태에서 대용량 수 gigabyte 데이터베이스 덤프 시 느린 가져오기 속도.
흥미로운 기술적 상식
- SQL은 원래 'SEQUEL'(Structured English Query Language)이라는 이름이었으나, 호커 시들리(Hawker Siddeley) 항공사와 상표권 분쟁이 발생하여 SQL로 단축되었습니다.
- 공식 ISO 표준에서는 개별 글자 'S-Q-L'로 발음하지만, 수백만 명의 개발자는 구어체로 '시퀄(sequel)'이라고 발음합니다.
- SQL 구문으로 실행되는 SQLite는 전 세계 1조 대 이상의 기기에 설치되어 있는 것으로 추정됩니다.
자주 묻는 기술 질문
.sql 파일이란 무엇인가요?
.sql 파일은 관계형 데이터베이스에 테이블을 생성하고, 관계를 설정하고, 데이터 행을 삽입하는 SQL 명령어가 포함된 일반 텍스트 스크립트입니다.
SQL 덤프 파일을 CSV나 JSON으로 변환할 수 있나요?
네. File2File.app은 .sql 데이터베이스 덤프 파일을 구문 분석하여 테이블을 깔끔한 CSV 스프레드시트나 구조화된 JSON 문서로 직접 내보낼 수 있습니다.
내 MySQL .sql 파일이 왜 PostgreSQL에서 작동하지 않나요?
서로 다른 데이터베이스 시스템은 데이터 유형 및 따옴표 이스케이프 등 고유한 방언(dialect) 차이가 있습니다. 데이터베이스 엔진간에 마이그레이션할 때는 방언별 구문을 변환(transcode)해야 합니다.
관련 SQL 변환 쌍
SQLite 데이터베이스 파일을 SQL 덤프 텍스트 스크립트로 변환하면 바이너리 데이터베이스가 간편한 데이터베이스 마이그레이션과 서버 임포트를 위한 읽기 쉬운 텍스트 명령어로 바뀝니다.
SQL 덤프 텍스트 스크립트를 JSON 데이터 export로 변환하면 고정된 관계형 데이터베이스 테이블이 현대적인 웹 애플리케이션을 위한 유연한 중첩 객체로 바뀝니다.
관계형 데이터베이스 백업 스크립트를 데이터 분석과 보고서 작성을 위한 평면 표 형식의 스프레드시트로 변환합니다.
바이너리 데이터베이스 백업을 일반 텍스트 SQL 스크립트로 변환하여 서로 다른 데이터베이스 엔진 간에 데이터베이스 테이블과 데이터를 이동할 수 있습니다.
압축되지 않은 일반 텍스트 SQL 스크립트를 최적화된 기본 데이터베이스 백업 파일로 변환하면 저장 용량이 줄어들고 서버 복원 시간이 단축됩니다.