Jazyk pro manipulaci s daty

Jazyk pro manipulaci s daty ( DML ; německý  jazyk pro zpracování dat ) je součástí databázového jazyka, který se používá k zápisu, čtení, změně a mazání dat. DML je jazyk pro zpracování dat nebo zpracování dat databáze a zahrnuje formulaci dotazů .

V některých případech byly pro starší a současné systémy navrženy velmi odlišné verze DML. Příklady:

  • V historických databázích IMS je samostatný DML s názvem DL / I jazykem pro jiné počítačové programy. Příklad:
CALL PLITDLI(FOUR, 'GHU ', DB_PCB, IO_AREA, SSA1)
DELETE FROM bestellungen WHERE bestellstatus IS NULL
SELECT postleitzahl, stadt FROM kunden ORDER BY postleitzahl

Zatímco v prvních dvaceti letech databázové technologie se DML používalo hlavně k programování, dnes je kladen důraz také na přímé použití uživateli. Takže z. Například ve většině systémů lze SQL-DML také interaktivně použít jako příkazový jazyk. Znalost struktur vnitřní technické paměti dnes již obvykle není nutná, aby bylo možné formulovat odpovídající příkazy zpracování. V tomto případě se mluví o popisných (popisných) jazycích.

Zvláštní pozice dotazu

Jazykové prvky pro datový dotaz (v SQL , to jsou klíčová slova SELECT, JOIN, WHEREatd), někdy oddělené kategorie z důvodu jejich zvláštního postavení dat Query Language (DQL, "Data Query Language "), více zřídka, načítání dat Language přidělen ( DRL). Tyto klasifikace jsou však neobvyklé a nejsou standardizované. Přiřazení do kategorie DML lze vysvětlit skutečností, že data jsou zřídka doručena v původní podobě, když jsou dotazována, ale jsou většinou „manipulována“ (filtrována, tříděna atd.).

SQL

V prakticky důležitém jazyce strukturovaných dotazů je syntaxe následující:

   INSERT INTO Relation [( Attribut+ )] VALUES ( ( Konstante+ ) )+
   INSERT INTO Relation [( Attribut+ )] SFW-Block
   UPDATE Relation SET (Attribut=Ausdruck)+ [WHERE Where-Klausel]
   MERGE INTO Relation USING Quelle ON Join-Klausel
       WHEN MATCHED UPDATE SET (Attribut=Ausdruck)+
       WHEN NOT MATCHED [BY TARGET] INSERT (Attributliste) VALUES (Ausdruckliste)
       [WHEN NOT MATCHED BY SOURCE DELETE]
   DELETE FROM Relation [WHERE Where-Klausel]
   TRUNCATE Relation

S INSERT lze do relace vložit explicitně vytvořené n-tice nebo výsledky bloku SFW. Lze zpracovat více než jeden řádek najednou.

  • Výraz z

Příkaz UPDATE může zejména odkazovat také na atribut, se kterým se má manipulovat, například v

UPDATE Personal SET Gehalt=Gehalt*2 WHERE Abteilung='EDV'
  • Pokud je klauzule WHERE vynechána z DELETE, jsou odstraněny všechny n-tice, ale ne schéma relace.

Příkaz TRUNCATE úplně vyprázdní tabulku a na rozdíl od ní DELETE FROM Tabletaké nastaví všechny indexy (datová struktura, na které je index založen, je zcela vyprázdněna) a hodnoty automatického přírůstku na výchozí hodnoty. Je třeba poznamenat, že TRUNCATEu některých DBMS, jako je MSSQL, se nespouštějí žádné spouštěče.

Příklady:

INSERT INTO Student (MatrNr, Name) VALUES (27123, 'Meier')
Přidá řádek se zadanými hodnotami pro sloupce MatrNr a Název v tabulce Student .
INSERT INTO Student (MatrNr, Name) VALUES (27124, 'Schulz'), (27125, 'Schmidt')
Přidá do tabulky Student dva řádky se zadanými hodnotami pro sloupce MatrNr a Name .
INSERT INTO Student VALUES (27126, 'Schmidt')

S příkazem INSERT lze také vynechat první závorku s názvem atributu a hodnoty lze vložit přímo pomocí values ​​(). Hodnoty však poté musí být zadány ve stejném pořadí jako v definici tabulky. Kromě toho musí být uvedeny hodnoty pro všechny sloupce tabulky.

INSERT INTO Student (MatrNr, Name) SELECT MatrNr, Name FROM Student_alt
Načte všechny studenty z tabulky Student_old do tabulky Student .
UPDATE Student SET Name = 'Meier' WHERE MatrNr = 27124
Změní hodnotu sloupce Název v tabulce Student pro konkrétní MatrNr .
DELETE FROM Student
Odstraní všechny řádky z tabulky Student .
DELETE FROM Student WHERE MatrNr = 27124
Odstraní řádek s MatrNr 27124 z tabulky Student .
TRUNCATE TABLE Student

Vyprázdní studentskou tabulku a nastaví jakoukoli existující hodnotu automatického přírůstku na definovaný standard (obvykle 1).

Další jazykové prvky databáze