Co to jest format pliku DDL?
Plik .ddl to tekstowy skrypt SQL zawierający instrukcje Data Definition Language - podzbiór języka SQL służący do definiowania, modyfikowania lub usuwania struktur bazy danych. Funkcjonalnie jest to plik .sql wyróżniony konwencją: rozszerzenie .ddl sygnalizuje, że skrypt zawiera instrukcje definicji schematu, a nie manipulacji danymi. Podstawowe instrukcje obejmują CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, CREATE VIEW oraz definicje CONSTRAINT.
DDL odróżnia się od DML (Data Manipulation Language: INSERT, UPDATE, DELETE) oraz DQL (SELECT). Wiele narzędzi - MySQL Workbench, DBeaver, SQL Server Management Studio - potrafi wyeksportować schemat bazy danych jako plik .ddl, a frameworki JPA/ORM, takie jak EclipseLink, automatycznie generują skrypty .ddl z mapowań encji.
Plik nie posiada binarnej sygnatury; jest identyfikowany po rozszerzeniu i zawartości. Kodowanie to zazwyczaj UTF-8 lub ASCII; starsze narzędzia Windows mogą generować pliki w Windows-1252. Skrypt często zaczyna się od nagłówka komentarza (-- lub /* */) wygenerowanego przez narzędzie eksportujące, po którym następują sekwencyjne instrukcje SQL.
Rozmiar pliku waha się od kilku kilobajtów dla prostych schematów do dziesiątek megabajtów dla pełnych zrzutów baz danych przedsiębiorstw. Ponieważ składnia jest specyficzna dla danego DBMS - MySQL, PostgreSQL, Oracle, SQL Server i SQLite różnią się dialektami - nie ma gwarancji, że plik .ddl będzie przenośny między silnikami baz danych bez modyfikacji.
Bezpieczeństwo
RYZYKO: LOWPlik .ddl jest zwykłym tekstem i nie może wykonać się samoczynnie. Można go bezpiecznie otworzyć w dowolnym edytorze tekstu. Ryzyko wiąże się z jego URUCHOMIENIEM: instrukcje DDL (zwłaszcza DROP TABLE) modyfikują lub niszczą strukturę bazy danych. Zawsze przejrzyj skrypt DDL przed wykonaniem, upewnij się, że masz kopię zapasową i uruchamiaj go tylko na zamierzonej instancji bazy danych. DDL z niezaufanego źródła może usunąć tabele lub dodać konta typu „backdoor” - traktuj go jak każdy kod wykonywalny.
Szczegóły formatu
w pigułce- SoftQuad / SGML DDL (Document Type Definition Link) - Historyczna definicja schematu związana z SGML; znikome współczesne zastosowanie, niezwiązane z SQL.
- Oracle DDL Export - Narzędzia Oracle Database (SQL Developer, Data Pump) eksportują definicje schematów jako pliki .ddl w składni Oracle SQL; ta sama koncepcja, specyficzna dla Oracle.
Programy otwierające pliki DDL
Szczegóły techniczne
specyfikacja| Kodowanie | Zwykły tekst - UTF-8 (nowoczesne narzędzia), ASCII lub Windows-1252 (starsze skrypty) |
| Kolejność bajtów | Nie dotyczy - plik tekstowy |
| Kontener | Brak - pojedynczy płaski plik tekstowy z instrukcjami SQL rozdzielonymi liniami |
| Magiczne bajty | Brak - identyfikowany po rozszerzeniu i strukturze słów kluczowych SQL; brak binarnej sygnatury |
| Typowy rozmiar | 1 KB - 50 MB (proste skrypty tabel: kilka KB; pełne zrzuty schematów korporacyjnych: dziesiątki MB) |
| Podzbiór SQL | DDL - definicje CREATE, ALTER, DROP, TRUNCATE, RENAME i CONSTRAINT; tylko struktura schematu, nie dane |
| Zależność od dialektu | Składnia różni się w zależności od DBMS (MySQL, PostgreSQL, Oracle, SQL Server, SQLite); skrypty nie gwarantują przenośności między silnikami bez modyfikacji |
| Podstawa standardu | DDL ustandaryzowany w ANSI SQL-86 (ISO/IEC 9075:1987); obecny standard to SQL:2023 (ISO/IEC 9075:2023) |
| Integracja ORM | EclipseLink, Hibernate i inne frameworki JPA mogą automatycznie generować skrypty .ddl z mapowań klas encji |
| Konwencje komentarzy | Nagłówki plików generowane przez narzędzia używają komentarzy SQL jednoliniowych -- lub blokowych /* */; komentarze wewnątrz linii stosują te same konwencje |
| Obsługa eksportu | MySQL Workbench, DBeaver, pgAdmin, SSMS i Oracle SQL Developer mogą eksportować schemat bazy danych bezpośrednio jako skrypty .ddl |
| Przebieg importu | Wykonywany w docelowej bazie danych za pomocą klientów wiersza poleceń (mysql, psql, sqlcmd, sqlite3) lub narzędzi GUI; instrukcje uruchamiane sekwencyjnie |
| Relacja do .sql | Funkcjonalnie identyczne; .ddl sygnalizuje zawartość ograniczoną do schematu (bez manipulacji danymi) zgodnie z konwencją programistyczną |
| Przenośność | Brak gwarancji przenośności między silnikami DBMS bez modyfikacji specyficznych dla dialektu |
| Wydano | SQL DDL concepts introduced with SQL-86 (ISO/IEC 9075:1987); .ddl extension is a convention, not a standard |
| Najnowsza wersja | SQL:2023 (ISO/IEC 9075:2023) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.iso.org |
Konwersje DDL
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki DDL.