Documentație de la computer la

15. INTRAREA, DELEGAREA ȘI SCHIMBAREA VALORILOR CÂMPURILOR

Acest capitol prezintă comenzile care controlează valorile reprezentate în tabel. Când terminați acest capitol, veți putea pune rândurile în tabel, le puteți șterge și puteți modifica valorile individuale prezentate în fiecare rând. Veți vedea utilizarea interogărilor în formarea unui grup complet de rânduri pentru inserare și, de asemenea, modul în care un predicat poate fi folosit pentru a controla schimbarea valorilor și a șterge rânduri. Materialul din acest capitol este un corp complet de cunoștințe care arată modul de creare și gestionare a informațiilor într-o bază de date. Modele mai puternice de proiectare a predicatelor vor fi discutate în capitolul următor.

Comenzile de modificare a DML

Valorile pot fi plasate și șterse din câmpuri prin intermediul a trei comenzi DML (Data Manipulation Language): Nu vă fie jenate, acestea au fost toate menționate mai devreme în SQL ca comenzi de modificare.

INTRODUCEREA VALORILOR

Toate rândurile din SQL sunt introduse utilizând comanda de modificare INSERT. În forma sa cea mai simplă, INSERT folosește următoarea sintaxă: De exemplu, pentru a introduce un șir de caractere în Vanzatorii de masă, puteți utiliza următoarea condiție: comenzile DML nu produc nici o ieșire, dar programul ar trebui să vă dea o confirmare a faptului că datele au fost utilizate.

Ei tabel (în cazul nostru - agenții de vânzări (vânzători)) trebuie să fie definite în prealabil în comanda CREATE TABLE (a se vedea capitolul 17.), și fiecare valoare în valorile clauzei numerotate trebuie să se potrivească cu tipul de date al coloanei în care este introdus. In ANSI, aceste valori nu pot fi expresii, ceea ce înseamnă că 3 - este disponibil, iar expresia 2 + 1 - nr. Valorile, desigur, sunt introduse într-un tabel într-o rolă-comandă, astfel încât prima valoare cu numele, intră automat în coloana 1, al doilea în coloana 2, în așa mai departe.

INSERTAȚI UN INDICATORI EMPTY (NULL)

Dacă trebuie să introduceți o valoare nulă (NULL), introduceți-o exact ca valoarea normală. Să presupunem că nu a fost încă o jumătate de oraș pentru domnul Peel. Puteți să-l inserați cu o valoare șir = NULL în acest domeniu, după cum urmează: Din moment ce valoarea NULL - un marcaj special, și nu doar o valoare simbolică, nu este inclus în ghilimele simple.

NAME INSERT COLUMN

De asemenea, puteți specifica coloanele în care doriți să inserați valoarea numelui. Aceasta vă permite să inserați nume în orice ordine. Să presupunem că luați valorile din tabel clienților din raportul de ieșire la imprimantă, pe care le pune în această ordine: oraș, CNAME, și CNUM, iar pentru simplitate, pe care doriți să introduceți valori în aceeași ordine: Rețineți că ratingul coloane și snum - nr . Aceasta înseamnă că aceste linii sunt setate automat la valoarea implicită. În mod implicit, pot fi introduse fie NULL, fie o altă valoare definită ca - implicit. Dacă constrângerea interzice valorile utilizarea NULL în această coloană, iar această coloană nu este setat ca implicit, această coloană trebuie să fie prevăzută cu o valoare pentru orice INSERT comandă care se referă la masa (a se vedea capitolul 18 pentru informații referitoare la NULL și limitările privind „default“) .

INSCRIEREA REZULTATELOR CERERII

Puteți utiliza, de asemenea, o instrucțiune INSERT pentru a primi sau selectează o valoare de la o masă și le-a pus într-altul pentru a le folosi împreună cu solicitarea. Pentru a face acest lucru, înlocuiți pur și simplu VALORI propunerii (în exemplul anterior), în cererea corespunzătoare: Se selectează toate valorile produse de interogare - adică, toate rândurile dintr-un tabel cu valori Sellers oraș = „Londra“ - și plasat într-un tabel numit Londonstaff. Pentru ca acest lucru să funcționeze, tabela Londonstaff trebuie să îndeplinească următoarele condiții:

* Ar trebui să fie deja creat de comanda CREATE TABLE.

* Trebuie să aibă patru coloane care se potrivesc cu masa

Vânzătorii din punct de vedere al tipului de date; adică primul, al doilea și așa mai departe, coloanele fiecărui tabel trebuie să aibă același tip de date (și nu ar trebui să aibă același nume).

Regula generală este că coloanele inserate ale tabelului trebuie să se potrivească cu coloanele afișate de subchetă, în acest caz pentru întregul tabel al vânzătorilor. Londonstaff este acum o tabelă independentă care a primit câteva valori din tabelul de vânzători. Dacă valorile din tabelul Sellers sunt modificate brusc, acest lucru nu va afecta în vreun fel tabela Londonstaff (deși ați putea crea un astfel de efect folosind View (VIEW) descris în capitolul 20). Deoarece fie o comandă de interogare, fie o comandă INSERT poate specifica coloanele după nume, puteți, dacă doriți, să mutați numai coloanele selectate și să reordonați numai acele coloane pe care le-ați selectat.

Să presupunem, de exemplu, că decideți să creați un nou tabel numit Daytotals care va monitoriza pur și simplu numărul total de dolari din sumele achizițiilor comandate în fiecare zi. Puteți introduce aceste date indiferent de tabelul de comandă, dar mai întâi trebuie să completați tabelul Daytotals cu informațiile furnizate anterior în tabelul de comenzi.

Dându-și seama că tabelul ordinelor care acoperă ultimul exercițiu financiar, și nu doar câteva zile, la fel ca în exemplul nostru, puteți vedea avantajul de a folosi următoarele condiții INSERT în numărarea și introducerea valorilor Vă rugăm să rețineți că, după cum sa sugerat anterior, numele coloanelor din ordinea de masă și masa Daytotals - nu ar trebui să fie la fel. În plus, în cazul în care data cumpărării și suma totală - doar coloanele din tabel, și ei sunt, în această ordine, numele lor pot fi eliminate de pe ecran, datorită simplității lor aparente.

LIVRAREA LINIILOR DIN TABLURI

SCHIMBAREA VALORILOR CÂMPULUI

Acum, că puteți introduce și șterge deja rânduri din tabel, trebuie să învățați cum să modificați unele sau toate valorile într-un rând existent. Acest lucru se face cu comanda UPDATE. Această comandă conține o clauză UPDATE în care specifică tabelul utilizat și clauza SET care indică modificarea care trebuie făcută pentru o anumită coloană. De exemplu, pentru a modifica estimările tuturor clienților la 200, puteți introduce

MODIFICATE NUMAI LINE

Desigur, nu doriți întotdeauna să specificați toate rândurile tabelului pentru a modifica o singură valoare, astfel încât UPDATE, ca DELETE, să poată lua predicate. De exemplu, puteți schimba același lucru pentru toți clienții vânzătorului Peel (cu snum = 1001):

UPDATE PENTRU COLOANE MULTIPLE

Cu toate acestea, nu ar trebui să vă limitați prin modificarea unei singure coloane cu comanda UPDATE. Clauza SET poate atribui orice număr de coloane separate prin virgule. Toate atribuțiile specificate pot fi făcute pentru orice rând de tabel, dar numai pentru unul câte unul. Să presupunem că vânzătorul Motika retras, și dorim să realocați numărul său de publicitate nou: Aceasta comanda va da noul vânzător un Gibson, toți clienții actuali byv- Sheha Vânzător Motika și regulamente, în forma în care au fost aranjate pentru Motika folosind snum etaj . Nu poți, cu toate acestea, să fie modificat în același timp mai multe mese ca o echipă, în parte pentru că nu se poate utiliza tabelul de prefix cu coloanele propunerii modificate pentru SET. Cu alte cuvinte, nu se poate spune - „SET Salespeople.sname = Gibson“ în declarația UPDATE, puteți spune doar așa - „SET SNAME = Gibson“.

UTILIZAREA EXPRESIILOR PENTRU MODIFICARE

Puteți utiliza expresii scalare în clauza SET a comenzii UPDATE, totuși, prin includerea acesteia în expresia câmpului care va fi modificat. Acest lucru este în contrast cu clauza VALUES a comenzii INSERT, în care expresiile nu pot fi utilizate; această proprietate a expresiilor scalare este o caracteristică foarte utilă. Să presupunem că veți decide să dublați comisionul către toți vânzătorii. Puteți folosi următoarea expresie: Ori de câte ori vă referiți la valoarea specificată a unei coloane într-o clauză SET, valoarea generată poate fi obținută din șirul curent, înainte de a efectua orice modificări cu comanda UPDATE. Firește, puteți combina aceste caracteristici și puteți spune - dublați comisionul tuturor vânzătorilor din Londra, o astfel de ofertă:

MODIFICAREA VALORILOR EMPTY (NULL)

Clauza SET nu este un predicat. Poate intra în valori goale NULL la fel cum a introdus valori fără a folosi o sintaxă specială (cum ar fi IS NULL). Deci, dacă doriți să stabiliți toate estimările clienților din Londra în NULL, puteți introduce următoarea teză: ceea ce va elimina toate estimările clienților din Londra.

Lucrul cu SQL

1. Scrieți o comandă care ar pune următoarele valori, în ordinea lor de mai jos, în tabelul Sellers: 2. Scrieți o comandă care va elimina toate comenzile clienților Clemens din tabelul Order.

3. Scrieți o echipă care ar crește cu 100 evaluarea tuturor clienților din Roma.

4. Vânzătorul Serres a părăsit compania. Reataționați clienții la vânzătorul Motika.

Articole similare