Datu definēšanas valoda

SQL kontekstā, datu definēšanas jeb datu aprakstīšanas valoda (DDL) ir sintakse datu bāzes objektu, piemēram, tabulu, indeksu un lietotāju izveidei un modificēšanai. DDL vaicājumi ir līdzīgi datorprogrammēšanas valodai, kas definē datu struktūru, īpaši datubāzu shēmu. Visbiežāk lietotie DDL vaicājumu piemēri ir CREATE, ALTER un DROP.

Vēsture 
Datu definīcijas valodas jēdziens un tās nosaukums pirmo reizi tika ieviests saistībā ar Codasyl datu bāzes modeli, kur datu bāzes shēma tika uzrakstīta valodas sintaksē, kas aprakstīja lietotāja datu modeļa ierakstus, laukus un kopas. Vēlāk to izmantoja, lai atsauktos uz strukturētās vaicājumu valodas (SQL) apakškopu, lai deklarētu tabulas, kolonnas, datu tipus un ierobežojumus. SQL-92 ieviesa shēmu manipulēšanas valodu un shēmu informācijas tabulas, lai vaicātu shēmas. Šīs informācijas tabulas SQL:2003 tika norādītas kā SQL/Schemata. Termins DDL tiek lietots arī vispārīgā nozīmē, lai apzīmētu jebkuru formālu valodu, kas apraksta datus vai informācijas struktūras.

Strukturēto vaicājumu valoda (SQL) 
Vairākas datu aprakstīšanas valodas lieto deklaratīvo sintaksi, lai definētu kolonnas un datu tipus, bet strukturētā vaicājumu valoda (SQL) izmanto imperatīvo darbības vārdu kolekciju, kuras mērķis ir modificēt datu bāzes shēmu — pievienojot, mainot vai dzēšot tabulu vai citu elementu definīcijas. Šos vaicājumus var brīvi apvienot ar citiem SQL vaicājumiem, nepadarot DDL par atsevišķu valodu.

CREATE vaicājums 
Create komanda tiek izmantota, lai izveidotu jaunu datu bāzi, tabulu, indeksu vai iekļautās procedūras.

CREATE vaicājums SQL izveido komponentu relāciju datubāžu pārvaldības sistēmā (RDBMS). SQL 1992 specifikācijā komponentu veidi, ko var izveidot ir shēmas, tabulas, skati, domēni, rakstzīmju kopas, komplektēšana, tulkojumi un apgalvojumi. Daudzas implementācijas paplašina sintaksi, lai varētu izveidot papildus elementus, piemēram, indeksus un lietotāju profilus. Dažas sistēmas, piemēram, PostgreSQL un SQL Server, atļauj CREATE un citas DDL komandas datu bāzes transakcijā, un līdz ar to tās var tikt atsauktas.

CREATE TABLE vaicājums 
Bieži lietota CREATE komanda ir komanda CREATE TABLE. Tipisks lietojums:
 CREATE TABLE [tabulas nosaukums] ( [kolonnu definīcijas] ) [tabulas parametri]
Kolonnu definīcijas ir šādas:

 Ar komatu atdalīts saraksts, kas sastāv no jebkura no šiem elementiem
 Kolonnas definīcija: [kolonnas nosaukums] [datu tips] {NULL | NOT NULL} {kolonnas opcijas}
 Primārās atslēgas definīcija: PRIMARY KEY ( [ar komatu atdalītu kolonnu saraksts] )
 Ierobežojumi: {CONSTRAINT} [ierobežojuma definīcija]
 RDBMS specifiska funkcionalitāte

Vaicājuma piemērs, lai izveidotu tabulu ar nosaukumu darbinieki, ar dažām kolonnām:CREATE TABLE darbinieki (
    id               INTEGER       PRIMARY KEY,
    pirmais_vards    VARCHAR(50)   not null,
    uzvards          VARCHAR(75)   not null,
    otrais_vards     VARCHAR(50)   not null,
    dzimsanasgads    DATE          not null
);Dažas CREATE TABLE DDL formas var ietvert DML (datu manipulēšanas valodu) - līdzīgas konstrukcijas kā SQL sintaksē CREATE TABLE AS SELECT (CTaS).

DROP vaicājums 
DROP vaicājums neatgriezeniski izdzēš esošu datu bāzi, tabulu, indeksu vai skatu.

DROP vaicājums SQL noņem komponentu no relāciju datubāzu pārvaldības sistēmas (RDBMS). Objektu veidi, kurus var neatgriezeniski izdzēst, ir atkarīgi no izmantotās RDBMS, bet lielākā daļa atbalsta tabulu, lietotāju un datubāzu neatgriezenisku izdzēšanu. Dažas sistēmas (piemēram, PostgreSQL) ļauj DROP un citām DDL komandām notikt transakcijas ietvaros un tādējādi tās var tikt atsauktas. Tipisks lietojums:
 DROP objektatips objektanosaukums.
Piemēram, komanda DROP tabulu ar nosaukumu darbinieki:DROP TABLE darbinieki;DROP vaicājums atšķiras no DELETE un TRUNCATE vaicājumiem, jo DELETE un TRUNCATE nenoņem pašu tabulu. Piemēram, vaicājums DELETE var izdzēst dažus (vai visus) datus no tabulas, atstājot pašu tabulu datu bāzē, savukārt DROP vaicājums no datu bāzes izdzēš visu tabulu.

ALTER vaicājums 
Vaicājums ALTER maina esošu datu bāzes objektu.

ALTER vaicājums SQL maina objekta īpašības relāciju datubāžu pārvaldības sistēmā (RDBMS). Objektu veidi, kurus var mainīt, ir atkarīgi no tā, kura RDBMS tiek izmantota. Tipisks lietojums:
 ALTER objektatips objektanosaukums parametri.
Piemēram, komanda pievienot (pēc tam noņemt) kolonnu ar nosaukumu burbuļi esošai tabulai ar nosaukumu izlietne :ALTER TABLE izlietne ADD burbuļi INTEGER;
ALTER TABLE izlietne DROP COLUMN burbuļi;

TRUNCATE vaicājums 
Vaicājums TRUNCATE tiek izmantots, lai dzēstu visus datus no tabulas. Tas ir daudz ātrāk, nekā lietot vaicājumu DELETE .TRUNCATE TABLE table_name;

Referenciālās integritātes vaicājumi 
Cits DDL teikuma veids SQL tiek izmantots, lai definētu referenciālās integritātes attiecības, kas parasti tiek ieviestas kā primārās atslēgas un ārējās atslēgas tagi, dažās tabulu kolonnās. Šos divus vaicājumus var iekļaut teikumā CREATE TABLE vai ALTER TABLE;

Citas valodas 

 XML shēma ir XML DDL piemērs.
 JSON shēma ir JSON DDL piemērs.
 DFDL shēma ir DDL piemērs, kas var aprakstīt daudzus teksta un bināros formātus.

Skatīt arī 

 Datu komandvaloda
 Datu manipulēšanas valoda
 Datu vaicājumvaloda
 Select (SQL)
 Insert (SQL)
 Update (SQL)
 Delete (SQL)
 Truncate (SQL)

Atsauces

Ārējās saites 

 Oracle ALTER TABLE MODIFY column 
 DDL Commands In Oracle 

SQL