Forum IT Moldova

Notificări
Șterge tot

Comenzi DML


Luna
Postări: 279
 Luna
Admin
Topic starter
(@elucy)
Reputable Member
S-a alăturat: 3 ani în urmă

Comenzi DML

 

Comenzile DML sau modificarea datelor. În postările anterioare am utilizat doar comenzi de interogare a datelor, adică fraza SELECT, care sunt parte tot din cadrul componentei DML (Data Manipulation Language) a limbajului SQL. Acum exemplificăm comenzile de modificare a datelor.

Spoiler
Adăugarea înregistrărilor

 Inserarea de noi înregistrări în baza de date se realizează cu ajutorul comenzii INSERT care poate lua două forme:

INSERT INTO nume_tabel [ (lista_coloane) ]

      VALUES (lista_valori)

INSERT INTO cursuri VALUES(30, 'Online', 3, 1, 5);

INSERT INTO cursuri (ID_curs, titlu_curs) VALUES(31, 'NoSQL');

 

 

INSERT INTO nume_tabel [ (lista_coloane) ]

   fraza_select 

INSERT INTO salarii

SELECT nr_matricol, 30, 10, SYSDATE

  FROM lucrători

  WHERE an=3;

 

SECVENȚE. Secvențele - obiecte ce ajută la generarea automată de numere întregi unice în momentul inserării înregistrilor. Sintaxa creării secvenței:

CREATE SEQUENCE nume_secvență

  [INCREMENT BY n]               -- pasul

  [START WITH n1]                -- valoarea de start

  [MAXVALUE n_max | NOMAXVALUE]  -- valoarea de oprire

  [MINVALUE n_min | NOMINVALUE]  -- valoarea minimă (listele pot fi șiruri descrescătoare)

  [CYCLE | NOCYCLE]              -- daca continuă generarea când se ajunge la min/max

 

Comanda NEXTVAL generează următorul număr din șir iar CURRVAL obține valoarea curentă. NETVAL trebuie executată înainte ca lista să conțină vre-un număr. Exemplu:

CREATE SEQUENCE s1
INCREMENT BY 2
START WITH 10
  MAXVALUE 15;

Spoiler
Actualizarea înregistrărilor

 

UPDATE nume_tabel [alias]

  SET nume_coloana1 = valoare1

     [, nume_coloana2 = valoare2...]

      [WHERE conditie]

UPDATE lucrători

SET salariu=salariu*0.15 WHERE salariu<300;

UPDATE nume_tabel [alias]

  SET (nume_coloana1 [,nume_coloana2]...) = (subinterogare)

    [WHERE conditie]

 

 

 

Spoiler
Ștergerea înregistrărilor

DELETE FROM nume_tabel

  [WHERE conditie]

DELETE FROM note WHERE valoare < 5;

 

 

Etichete subiectului
Distribuie: