Terminologia: DML “che modifica le cose”
-
19-09-2019 - |
Domanda
Capisco che DML comprende tecnicamente verbi SQL che si limitano a query, ma non modificano i dati persistenti. (Si veda, ad esempio, wikipedia o oracle o orafaq )
Tuttavia, ho spesso desidero fare riferimento a "tutti e solo quei verbi SQL che modificano memorizzati / dati persistenti" - fondamentalmente INSERT
, UPDATE
, DELETE
ma non un SELECT
pianura. C'è un / standardizzato termine ufficiale, o, forse, a parte, un termine cogente ed elegante, per questo sottogruppo di DML?
Soluzione
Non credo che ci sia una, purtroppo, da un punto di vista ufficiale. Forse abbiamo bisogno di fare uno?
Personalmente, penso che il termine DML è fuorviante perché il termine in realtà non descrivere il modo in opere SELECT come (di solito) in realtà non Modifica nulla. E 'solo "raccoglie" i dati relazionali in modo diverso in spazio temporaneo e restituisce un set specificato di esso.
Quindi, se è stata una mia scelta, direi che:
DML descriverebbero INSERT / UPDATE / DELETE
e
DRL ( lingua di reperimento dei dati ) descriverebbero selezionare .
Altri suggerimenti
DML include SELECT INTO
(piuttosto che semplicemente SELECT
) perché è un sinonimo per gli inserti. Non c'è alcun bisogno di subcategorize.
Dopo averci pensato sulla strada nel mondo del lavoro, mi sono ricordato che seleziona è utilizzato per la manipolazione dei dati. Ad esempio:
SELECT t.firstname +' '+ t.lastname --String concatenation
SELECT CAST(t.column AS int) --Datatype change
Il mio professore usati per definirli come modifiche (al contrario di Legge), ma non so di un termine standard per IUD.
sulla base CRUD: Tavola CRUD , poteva solo dire CUD (creare, aggiornamento, cancellazione). tuttavia, non sono sicuro se qualcuno lo utilizza.
Secondo il articolo di Wikipedia su SQL ,
Il Data Manipulation Language (DML) è il sottoinsieme di SQL utilizzato per aggiungere, aggiornare e cancellare i dati:
discussi ci (INSERT, UPDATE, DELETE, MERGE, TRUNCATE , ecc) sono collocati in un diversa categoria di SELECT.
Quindi, secondo Wikipedia, DML non può includere necessariamente SELECT.
Secondo il SQL-92 standard di , guardando il tavolo-of-contenuti rivela che DML include SELECT INTO:
13 Data manipulation ............................................371 (...) 13.5 <select statement: single row> .............................382 (...)
La definizione elencato lì descrive SELECT <columns> INTO ...
.