ecosmak.ru

Inserați în sintaxa Oracle selectată. Interogare SQL INSERT INTO - completați baza de date cu informații

Echipă adaugă rânduri la tabel sau vizualizarea mesei principale.

Sintaxa comenzii Sql INSERT

Inserați sintaxa comenzii


Cuvinte cheie și parametri de bază ai comenzii INSERT
  • schemă- identificator de permisiune, care se potrivește de obicei cu numele unui utilizator
  • vedere la masă- numele tabelului în care trebuie introduse rândurile; dacă este specificată o vedere, rândurile sunt inserate în tabelul principal al vizualizării
  • subinterogare_1- o subinterogare pe care serverul o procesează în același mod ca o vizualizare
  • coloană- un tabel sau o coloană de vizualizare în care se introduce valoarea din frază pentru fiecare rând inserat VALORI sau subinterogare; dacă una dintre coloanele tabelului este omisă din această listă, valoarea coloanei pentru rândul inserat este valoarea implicită a coloanei definită când a fost creat tabelul. Dacă o listă de coloane este complet omisă, clauza VALORI sau interogarea trebuie să determine valori pentru toate coloanele din tabel
  • VALORI- definește un șir de valori care vor fi inserate în tabel sau vizualizare; sensul trebuie definit în propoziție VALORI pentru fiecare coloană din lista de coloane
  • subinterogare_2- o subinterogare care returnează rândurile inserate în tabel; lista de selectare a acestei subinterogări trebuie să aibă același număr de coloane ca și lista de coloane de instrucțiune

Afirmație cu fraza VALORI adaugă un singur rând la tabel. Această linie conține valorile definite de frază VALORI.
Declarație cu subinterogareîn loc de o frază VALORI adaugă toate rândurile returnate de subinterogare la tabel. Serverul procesează subinterogareși inserează fiecare rând returnat în tabel. Dacă subinterogarea nu selectează niciun rând, serverul nu inserează niciun rând în tabel.
Subinterogare poate accesa orice tabel sau vizualizare, inclusiv tabelul de afirmații țintă . Serverul atribuie valori câmpurilor din rândurile noi în funcție de poziția internă a coloanelor din tabel și de ordinea valorilor frazei VALORI sau în lista de selecție a interogărilor. Dacă din lista de coloane lipsesc vreo coloană, serverul le atribuie valorile implicite definite la crearea tabelului. Dacă oricare dintre aceste coloane are o constrângere NOT NULL, atunci serverul returnează o eroare care indică faptul că constrângerea a fost încălcată și anulează instrucțiunea INSERT.
Când este emisă o instrucțiune INSERT, orice declanșator INSERT definit pe tabel este activat.

INSERT INTO Exemplul 1

INTRODU IN dept VALORI(50, „PRODUSE”, „SAN FRANCISCO”);

INTRODU IN Clienți (oraș, cname, cnum) VALORI(„Londra”, „Hoffman”, 2001);

INSERT INTO Exemplul 2
Următoarea comandă copiază datele angajaților companiei ale căror comisioane depășesc 25% din venit în tabelul de bonusuri:

INTRODU IN bonus SELECT ename, job, sal, comm FROM emp WHERE comm > 0,25 * sal;

INSERT INTO Exemplul 3
Dacă trebuie să introduceți NUL-valoare, trebuie să o specificați ca valoare normală, după cum urmează:

INTRODU IN Vânzători VALUES (1001, „Peel”, NULL,12);

INSERT INTO Exemplul 4
Comanda poate fi folosită pentru a prelua valori dintr-un tabel și a le plasa în altul folosind o interogare. Pentru a face acest lucru, este suficient să înlocuiți propoziția VALORI la cererea corespunzătoare:

INTRODU IN Londonstaff SELECT * FROM Salespeople WHERE oraș = 'Londra';

MySQL INSERT

Pentru a insera rânduri noi într-o bază de date MySQL, utilizați Comanda INSERT, exemple de comandă sunt date mai jos:
INSERT INTO Exemplul 1.
Inserarea unui nou rând în tabel table_name.

INTRODU IN

INSERT INTO Exemplul 2.
Inserarea unui nou rând în tabelul table_name indicând inserarea datelor în coloanele de care avem nevoie.

INTRODU IN table_name VALUES('1','165','0','name');

În baza de date MySQL Este posibil să inserați mai multe linii noi folosind o singură comandă.
INSERT INTO Exemplul 3.
Inserarea mai multor rânduri în tabel table_name.

INTRODU IN table_name (tbl_id, chislo, chislotwo, name) VALORI ('1′,'159′,'34','name1′), ('2′,'14','61','name2′), ('3 ′,'356′,'8′,'nume3');

Această instrucțiune adaugă una sau mai multe înregistrări la un tabel (efectuează o interogare de adăugare).

Sintaxă

Solicitați adăugarea mai multor înregistrări:

INTRODU IN obiect_final [(câmpul 1[, câmpul2[, ...]])]
SELECTAȚI [ sursă.]câmpul 1[, câmpul2[, ...]
DIN expresie_tabelă

Solicitați adăugarea unei înregistrări:

INTRODU IN obiect_final [(câmpul 1[, câmpul2[, ...]])]
VALORI ( câmpul 1[, câmpul2[, ...])

Instrucțiunea INSERT INTO constă din următoarele elemente:

Parte

Descriere

obiect_final

Numele tabelului sau al interogării în care sunt adăugate înregistrările.

câmpul 1, câmpul2

După ceartă obiect_final- numele câmpurilor la care se adaugă date; după ceartă sursă- numele câmpurilor din care sunt extrase datele.

baza_de_date_externă

Calea către baza de date externă. Pentru o descriere a căii, consultați articolul despre clauza IN.

sursă

Numele tabelului sau al interogării din care sunt copiate înregistrările.

expresie_tabelă

Unul sau mai multe nume de tabel din care doriți să preluați înregistrările. Acest argument poate fi numele unui tabel individual, o expresie rezultat construită folosind INNER JOIN, LEFT JOIN sau RIGHT JOIN sau o interogare salvată.

valoare1, valoarea2

Valori care vor fi adăugate la anumite câmpuri ale noii înregistrări. Fiecare valoare este inserată în câmpul corespunzător poziției sale în listă: valoare1 adăugat la câmpul 1 intrare nouă, valoarea2- V câmpul2 etc. Trebuie să separați valorile cu o virgulă și să includeți câmpurile de text între ghilimele (" ").

Note

Instrucțiunea INSERT INTO poate adăuga o singură înregistrare la un tabel folosind sintaxa de mai sus. În acest caz, specificați nume și valori pentru fiecare câmp din înregistrare. Trebuie să specificați toate câmpurile din înregistrare cărora le sunt atribuite valori și valorile corespunzătoare. Dacă nu specificați o valoare de câmp, i se va atribui valoarea implicită sau NULL. Înregistrările sunt adăugate la sfârșitul tabelului.

Instrucțiunea INSERT INTO poate fi folosită și pentru a adăuga un set de înregistrări dintr-un alt tabel sau interogare folosind clauza SELECT... FROM așa cum se arată mai sus (consultați Sintaxa interogării pentru adăugarea mai multor înregistrări). În acest caz, clauza SELECT specifică câmpurile de adăugat la cele specificate obiect_final.

Sursă sau obiect_final poate fi un tabel sau o interogare. Când este dată o interogare, motorul bazei de date Microsoft Access adaugă înregistrări la toate tabelele pe care le returnează.

Utilizarea instrucțiunii INSERT INTO este opțională. Dacă este specificat, trebuie să precedă instrucțiunea SELECT.

Dacă tabelul țintă conține o cheie primară, asigurați-vă că valorile pe care le adăugați unuia sau mai multor câmpuri ale cheii primare sunt unice și distincte de NUL; în caz contrar, intrările nu vor fi adăugate.

Dacă înregistrările sunt adăugate la un tabel cu un câmp Contor și doriți să le renumerotați, nu includeți câmpul Contor în interogare. Includeți câmpul Contor în interogare dacă doriți să păstrați valorile originale din câmp.

Puteți adăuga înregistrări la un tabel dintr-o altă bază de date folosind clauza IN.

Pentru a crea un tabel, utilizați instrucțiunea SELECT... INTO pentru a interoga pentru a crea tabelul.

Înainte de a executa o interogare de adăugare, utilizați o interogare de selectare cu aceleași criterii de selecție pentru a utiliza rezultatele pentru a determina ce înregistrări vor fi adăugate.

O interogare de atașare copiază înregistrările dintr-unul sau mai multe tabele într-un alt tabel. În acest caz, tabelele care conțin înregistrările adăugate rămân neschimbate.

În loc să adăugați înregistrări dintr-un alt tabel, puteți seta valoarea fiecărui câmp într-o înregistrare nouă separată folosind clauza VALUES. Dacă o listă de câmpuri este omisă, clauza VALUES trebuie să includă valorile corespunzătoare pentru fiecare câmp de tabel; în caz contrar, operația INSERT va eșua. Utilizați instrucțiunea INSERT INTO împreună cu clauza VALUES pentru fiecare înregistrare suplimentară pe care doriți să o creați.

Salutare tuturor! Acest articol va discuta cum poți adăugați date în tabelîn Microsoft SQL Server, dacă deja sunteți puțin familiarizat cu limbajul T-SQL, atunci probabil v-ați dat seama că acum vom vorbi despre instrucțiunea INSERT, precum și despre cum poate fi folosită pentru a adăuga date la un tabel.

Să începem, ca de obicei, cu puțină teorie.

Instrucțiunea INSERT în T-SQL

INTRODUCE este o instrucțiune T-SQL care este concepută pentru a adăuga date la un tabel, adică crearea de noi înregistrări. Această instrucțiune poate fi folosită atât pentru a adăuga un singur rând la un tabel, cât și pentru a insera date în bloc. Instrucțiunea INSERT necesită permisiunea de a introduce date ( INTRODUCE) la tabelul țintă.

Există mai multe moduri de a utiliza instrucțiunea INSERT pe data care trebuie inserată:

  • Listarea unor valori specifice de inserat;
  • Specificarea unui set de date ca interogare SELECT;
  • Specificarea unui set de date sub forma unui apel de procedură care returnează date tabelare.

Sintaxă simplificată

INSERT [tabel] ( lista de coloane...) VALORI ( lista de valori...) Sau SELECT cerere de mostra Sau EXECUTĂ procedură

  • INSERT INTO este o comandă pentru a adăuga date la un tabel;
  • Tabelul este numele tabelului țintă în care doriți să introduceți înregistrări noi;
  • Lista de coloane este o listă de nume de coloane ale tabelului în care vor fi inserate datele, separate prin virgulă;
  • VALUES este un constructor de valori de tabel cu care specificam valorile pe care le vom insera in tabel;
  • Lista de valori este valorile care vor fi inserate, separate prin virgule. Acestea sunt listate în ordinea în care apar coloanele în lista de coloane;
  • SELECT este o interogare de selectare a datelor de inserat într-un tabel. Setul de rezultate pe care îl returnează interogarea trebuie să se potrivească cu lista de coloane;
  • EXECUTE este un apel de procedură pentru a obține date pentru inserarea într-un tabel. Setul de rezultate pe care îl returnează procedura stocată trebuie să se potrivească cu lista de coloane.

Cam așa arată sintaxa simplificată a instrucțiunii INSERT INTO; în majoritatea cazurilor, așa veți adăuga înregistrări noi la tabele.

Lista coloanelor în care veți introduce date nu trebuie să fie scrisă, caz în care ordinea acestora va fi determinată pe baza ordinii efective a coloanelor din tabel. Trebuie să vă amintiți această ordine când specificați valori de inserat sau de a scrie o interogare de selectat. Personal, vă recomand să indicați în continuare o listă de coloane în care intenționați să adăugați date.

De asemenea, trebuie să rețineți că lista de coloane și respectiv lista de valori trebuie să conțină așa-numitele coloane obligatorii; acestea sunt cele care nu pot conține valoarea NULL. Dacă nu le specificați, iar coloana nu are o valoare implicită, va apărea o eroare.

De asemenea, aș dori să remarc faptul că tipul de date al valorilor pe care le veți introduce trebuie să se potrivească cu tipul de date al coloanei în care va fi inserată această valoare, sau cel puțin să accepte conversia implicită. Dar vă sfătuiesc să controlați tipul de date ( format), atât în ​​lista de valori, cât și în interogarea SELECT.

Ajunge teorie, să trecem la practică.

Datele inițiale

Pentru a adăuga date la tabel, avem nevoie de tabelul în sine, așa că haideți să-l creăm și să încercăm să adăugăm înregistrări la el.

Notă! Toate exemplele vor fi rulate în Microsoft SQL Server 2016 Express.

CREATE TABLE TestTable( IDENTITY(1,1) NOT NULL, (100) NOT NULL, NOT NULL)

Tabelul nostru de testare va conține o listă de produse cu prețuri.

De asemenea, în exemple vom folosi o procedură care returnează o valoare de tabel pentru a adăuga date la tabel, așa că hai să creăm și asta.

CREATE PROCEDURE TestProcedure AS BEGIN SELECT ProductName, Price FROM TestTable END

De exemplu, va returna date din tabelul TestTable nou creat.

Notă!

După cum înțelegeți, citirea acestui material implică cunoștințe despre limbajul T-SQL, așa că dacă ceva nu vă este clar, vă recomand să vă familiarizați cu următoarele materiale:

Exemplul 1 – Adăugarea unei noi înregistrări la un tabel utilizând constructorul valorii tabelului

Mai întâi să încercăm să adăugăm o înregistrare și să ne uităm imediat la rezultat, adică Să scriem o cerere pentru o mostră.

INSERT INTO TestTable(ProductName, Price) VALUES ("Computer", 100) GO SELECT * FROM TestTable

Vedeți că după numele tabelului am enumerat numele coloanelor la care vom adăuga date, separate prin virgule, apoi am indicat cuvântul cheie VALORIși tot între paranteze, în aceeași ordine, separate prin virgule, am scris valorile pe care vrem să le introducem.

După instrucțiunea INSERT, am scris o instrucțiune SELECT și le-am separat cu o instrucțiune GO.

Acum să ne imaginăm că trebuie să adăugăm câteva rânduri. Vom scrie următoarea cerere în acest sens.

INSERT INTO TestTable(ProductName, Price) VALUES ("Computer", 100), ("Keyboard", 20), ("Monitor", 50) GO SELECT * FROM TestTable


Exemplul 2 - Adăugarea de noi rânduri la un tabel utilizând o interogare SELECT

Foarte des este nevoie să adăugați o mulțime de date la un tabel, de exemplu, pe baza unei interogări selectate, de ex. SELECTAȚI. Pentru a face acest lucru, în loc de VALUES, trebuie doar să specificăm cererea.

INSERT INTO TestTable(ProductName, Price) SELECT ProductName, Price FROM TestTable WHERE Id >


În acest exemplu, am scris o interogare SELECT care returnează date din tabelul TestTable, dar nu toate, ci doar cele cu un ID mai mare de 2. Și rezultatul a fost inserat în același tabel TestTable.

Ca exemplu despre cum puteți adăuga înregistrări la un tabel fără a specifica o listă de coloane, să scriem o altă interogare de inserare a datelor care va face exact același lucru ca interogarea de mai sus, doar că nu va lista coloanele de inserat.

INSERT INTO TestTable SELECT ProductName, Price FROM TestTable WHERE Id > 2 GO SELECT * FROM TestTable


În acest caz, suntem siguri că în tabelul TestTable prima coloană este ProductName, iar a doua este Price, așa că ne putem permite să o scriem așa. Dar, din nou, în practică este mai bine să specificați o listă de coloane.

Dacă ați observat, în toate exemplele nu am specificat coloana Id, dar o avem, nu au apărut erori, deoarece această coloană are proprietatea IDENTITATE, generează automat identificatori, așa că inserarea datelor într-o astfel de coloană pur și simplu nu se poate face.

Exemplul 3 - Adăugarea de noi înregistrări la un tabel utilizând o procedură stocată

Acum să introducem datele în tabel pe care ni le va returna procedura stocată. Semnificația aici este aceeași, în loc de VALORI și în loc de cerere indicăm un apel de procedură. Dar, după cum înțelegeți, ordinea și numărul de coloane returnate de procedură trebuie să se potrivească strict cu lista de coloane care trebuie inserate ( chiar dacă lista de coloane nu este specificată).

INSERT INTO TestTable(ProductName, Price) EXEC TestProcedure GO SELECT * FROM TestTable


Sper că acest material v-a ajutat să înțelegeți instrucțiunile. INTRODU IN, și asta este tot ce am deocamdată!

În secțiunile anterioare, ne-am uitat la munca de recuperare a datelor din tabele pre-create. Acum este timpul să ne dăm seama cum putem crea/șterge tabele, adăuga înregistrări noi și șterge pe cele vechi. În aceste scopuri în SQL Există operatori precum: CREA- creează un tabel, MODIFICA- modifică structura tabelului, CĂDERE BRUSCA- șterge un tabel sau un câmp, INTRODUCE- adaugă date la tabel. Să începem să facem cunoștință cu acest grup de operatori de la operator INTRODUCE.

1. Adăugarea de linii întregi

După cum sugerează și numele, operatorul INTRODUCE folosit pentru a insera (adăuga) rânduri la un tabel al bazei de date. Adăugarea se poate face în mai multe moduri:

  • - adăugați o linie completă
  • - adăugați o parte dintr-o linie
  • - adăugați rezultatele interogării.

Deci, pentru a adăuga un nou rând la un tabel, trebuie să specificăm numele tabelului, să listăm numele coloanelor și să specificăm valoarea pentru fiecare coloană folosind constructul INTRODU IN nume_tabel (câmp1, câmp2 ...) VALORI (valoare1, valoare2...). Să ne uităm la un exemplu.

INSERT INTO Vânzători (ID, Adresă, Oraș, Nume_vânzător, Țară) VALORI("6", "1st Street", "Los Angeles", "Harry Monroe", "SUA")

De asemenea, puteți modifica ordinea numelor coloanelor, dar, în același timp, trebuie să modificați ordinea valorilor din parametru VALORI.

2. Adăugarea unei părți a liniilor

În exemplul anterior, când se utilizează operatorul INTRODUCE am marcat în mod explicit numele coloanelor din tabel. Folosind această sintaxă, putem sări peste câteva coloane. Aceasta înseamnă că introduceți valori pentru unele coloane, dar nu le furnizați pentru altele. De exemplu:

INSERT INTO Vânzători (ID, Oraș, Seller_name) VALUES("6", "Los Angeles", "Harry Monroe")

În acest exemplu, nu am specificat o valoare pentru două coloane AbordareȘi Țară. Puteți exclude unele coloane din declarație INTRODU IN, dacă acest lucru permite definirea tabelului. În acest caz, trebuie îndeplinită una dintre condiții: această coloană este definită ca fiind validă NUL(absența oricărei valori) sau valoarea implicită specificată în definiția tabelului. Aceasta înseamnă că, dacă nu este specificată nicio valoare, va fi utilizată valoarea implicită. Dacă lipsește o coloană dintr-un tabel care nu permite să apară valori în rândurile sale NULși nu are o valoare implicită definită, SGBD va genera un mesaj de eroare și rândul nu va fi adăugat.

3. Adăugarea datelor selectate

În exemplul anterior, am inserat date în tabele introducându-le manual în interogare. Cu toate acestea, operatorul INTRODU IN ne permite să automatizăm acest proces dacă dorim să inserăm date dintr-un alt tabel. În acest scop în SQL există o astfel de construcție ca INSERT INTO... SELECTEAZĂ.... Acest design vă permite să selectați simultan date dintr-un tabel și să le introduceți în altul. Să presupunem că avem un alt tabel Sellers_EU cu o listă a vânzătorilor bunurilor noastre din Europa și trebuie să le adăugăm la tabelul general Vânzători. Structura acestor tabele este aceeași (același număr de coloane și aceleași nume), dar datele sunt diferite. Pentru a face acest lucru, putem scrie următoarea interogare:

INSERT INTO Sellers (ID, Adresă, Oraș, Seller_name, Country) SELECTID, Adresă, Oraș, Nume_vânzător, Țară FROM Sellers_EU

Trebuie să fiți atenți, astfel încât valorile cheilor interne să nu fie repetate (câmp ID), altfel va apărea o eroare. Operator SELECTAȚI poate include și sugestii UNDE pentru a filtra datele. De asemenea, trebuie menționat că SGBD nu acordă atenție denumirilor coloanelor conținute în declarație SELECTAȚI, pentru ea contează doar ordinea în care sunt aranjate. Prin urmare, datele din prima coloană specificată care au fost selectate datorită SELECTAȚI, se va completa în prima coloană a tabelului în orice caz Vânzători, specificat după operator INTRODU IN, indiferent de numele câmpului.

4. Copierea datelor dintr-un tabel în altul

Adesea, atunci când lucrați cu baze de date, este nevoie să creați copii ale oricăror tabele în scopul copierii de rezervă sau modificării. Pentru a face o copie completă a unui tabel, SQL oferă o instrucțiune separată SELECTAȚI ÎNTRE. De exemplu, trebuie să creăm o copie a tabelului Vânzători, va trebui să scrieți cererea după cum urmează:

SELECT * INTO Vânzători_nou FROM Vânzători

Spre deosebire de designul anterior INSERT INTO... SELECTEAZĂ... Când datele sunt adăugate la un tabel existent, designul copiază datele în noul tabel. De asemenea, puteți spune că primul construct importă date, iar al doilea exportă. Când utilizați designul SELECTAȚI ... ÎN ... DIN ... Ar trebui luate în considerare următoarele:

  • - puteți folosi orice propoziție în operator SELECTAȚI, ca A SE GRUPA CUȘi AVÂND
  • - puteți utiliza un join pentru a adăuga date din mai multe tabele
  • - datele pot fi adăugate doar într-un singur tabel, indiferent de câte tabele au fost preluate.

În plus față de instrucțiunea SELECT discutată mai devreme, limbajul de manipulare a datelor (DML) conține alte trei instrucțiuni: INSERT, UPDATE și DELETE. La fel ca instrucțiunea SELECT, aceste trei instrucțiuni funcționează fie pe tabele, fie pe vederi. Acest articol discută declarația INSERT, iar celelalte două declarații sunt discutate în articolul următor.

instrucțiunea INSERT inserează rânduri (sau părți de rânduri) într-un tabel. Există două forme diferite ale acestei instrucțiuni:

INSERT tab_name [(col_list)] DEFAULT VALUES | VALUES (( DEFAULT | NULL | expression ) [ ,...n]) INSERT INTO tab_name | view_name [(col_list)] (select_statement | execute_statement) Convenții de sintaxă

Prima formă a instrucțiunii vă permite să introduceți un rând (sau o parte a acestuia) în tabel. Iar a doua formă a instrucțiunii INSERT vă permite să inserați într-un tabel setul de rezultate al unei instrucțiuni SELECT sau al unei proceduri stocate executată de o instrucțiune EXECUTE. Procedura stocată trebuie să returneze date pentru a fi introduse în tabel. Când este utilizată cu o instrucțiune INSERT, o instrucțiune SELECT poate selecta valori dintr-un tabel diferit sau din același tabel în care sunt inserate datele, atâta timp cât tipurile de date ale coloanelor corespunzătoare sunt compatibile.

Pentru ambele formulare, tipul de date al fiecărei valori introduse trebuie să fie compatibil cu tipul de date al coloanei corespunzătoare din tabel. Toate șirurile și datele temporare trebuie incluse între ghilimele; Valorile numerice nu trebuie să fie incluse între ghilimele.

Inserarea unui singur rând

Pentru ambele forme ale instrucțiunii INSERT, specificarea explicit a listei de coloane este opțională. A nu enumera coloanele este același lucru cu specificarea tuturor coloanelor din tabel.

Parametrul VALORI IMPLICITE inserează valori implicite pentru toate coloanele. Coloanele cu tipul de date TIMESTAMP sau proprietatea IDENTITY sunt inserate implicit cu valori care sunt generate automat de sistem. Pentru coloanele de alte tipuri de date, valoarea implicită non-nulă corespunzătoare este inserată dacă este disponibilă, sau NULL în caz contrar. Dacă o coloană nu permite valori nule și nu are o valoare implicită definită, instrucțiunea INSERT eșuează și este afișat un mesaj.

Exemplul de mai jos inserează rânduri în tabelul Employee din baza de date SampleDb, demonstrând utilizarea unei instrucțiuni INSERT pentru a insera o cantitate mică de date în baza de date:

UTILIZAȚI SampleDb; INSERT INTO Employee VALUES (34990, „Andrey”, „Batonov”, „d1”); INSERT INTO Employee VALUES (38640, „Alexey”, „Vasin”, „d3”);

Există două moduri diferite de a insera valori într-un rând nou. Instrucțiunea INSERT din exemplul de mai jos utilizează în mod explicit cuvântul cheie NULL și inserează o valoare NULL în coloana corespunzătoare:

UTILIZAȚI SampleDb; INSERT INTO Employee VALUES (34991, „Andrey”, „Batonov”, NULL);

Pentru a insera valori în unele (dar nu în toate) coloanele unui tabel, de obicei trebuie să specificați în mod explicit acele coloane. Coloanele nespecificate trebuie fie să permită valori NULL, fie să aibă o valoare implicită definită.

UTILIZAȚI SampleDb; INSERT INTO Employee(Id, Prenume, Prenume) VALUES (34992, „Andrey”, „Batonov”);

Cele două exemple anterioare sunt echivalente. În tabelul Employee, singura coloană care permite valori NULL este coloana DepartmentNumber, iar toate celelalte coloane au fost dezactivate de clauza NOT NULL din instrucțiunea CREATE TABLE.

Ordinea valorilor în oferta VALUES Instrucțiunile INSERT pot diferi de ordinea specificată în instrucțiunea CREATE TABLE. În acest caz, ordinea lor trebuie să se potrivească cu ordinea în care sunt listate coloanele corespunzătoare în lista de coloane. Mai jos este un exemplu de inserare a datelor într-o ordine diferită de cea originală:

UTILIZAȚI SampleDb; INSERT INTO Employee(DepartamentNumber, LastName, Id, First Name) VALUES ("d1", "Batonov", 34993, "Andrey");

Inserarea mai multor rânduri

A doua formă a instrucțiunii INSERT inserează în tabel unul sau mai multe rânduri selectate de o subinterogare. Exemplul de mai jos arată cum să inserați rânduri într-un tabel folosind a doua formă a instrucțiunii INSERT. În acest caz, se execută o interogare pentru a selecta numerele și numele departamentelor situate în Moscova, iar setul de rezultate rezultat este încărcat într-un tabel nou creat anterior.

Noul tabel MoscowDepartment creat în exemplul de mai sus are aceleași coloane ca și tabelul Departament existent, cu excepția coloanei Locație lipsă. Subinterogarea din instrucțiunea INSERT selectează toate rândurile din tabelul Department pentru care valoarea coloanei Locație este „Moscova”, care sunt apoi inserate în noul tabel creat la începutul interogării.

Exemplul de mai jos arată o altă modalitate de a insera rânduri într-un tabel folosind a doua formă a instrucțiunii INSERT. În acest caz, se execută o interogare pentru a selecta numerele de personal, numerele de proiect și datele de începere a proiectului pentru toți angajații cu poziția „Manager” care lucrează la proiectul p2 și apoi încărcați setul de rezultate rezultat într-un nou tabel creat la începutul interogarea:

UTILIZAȚI SampleDb; CREATE TABLE ManagerTeam(EmpId INT NOT NULL, ProjectNumber CHAR (4) NOT NULL, EnterDate DATE); INSERT INTO ManagerTeam (EmpId, ProjectNumber, EnterDate) SELECT EmpId, ProjectNumber, EnterDate FROM Works_on WHERE Job = "Manager";

Înainte de a introduce rânduri folosind instrucțiunea INSERT, tabelele MoscowDepartment și ManagerTeam (în exemplele de mai sus) erau goale. Dacă tabelul exista deja și conținea rânduri cu date, atunci i se vor adăuga rânduri noi.

Se încarcă...