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)
- V SQL je kromě Data Definition (DDL) a Data Control Language (DCL) k dispozici ve formě anglických příkazových klauzulí. Příklady:
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
, WHERE
atd), 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 Table
také 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 TRUNCATE
u 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).