SQLShack

în articolul precedent, am creat două tabele, iar acum suntem gata să folosim comanda SQL INSERT INTO TABLE și să populăm aceste tabele cu date. Pentru a face acest lucru, vom pregăti declarații în Excel și apoi lipiți aceste declarații în SQL Server și să le execute. De asemenea, vom verifica conținutul ambelor tabele înainte și după aceste comenzi folosind instrucțiunea SELECT. Deci, să începem.

inserare în instrucțiunea tabelului

nu are rost să creați structuri de baze de date și să nu aveți date în baza de date. Instrucțiunea INSERT INTO TABLE este cea pe care o vom folosi pentru a rezolva această problemă. Este una dintre cele patru instrucțiuni SQL importante DML (data Manipulation Language) selectați … din, inserați în tabel, actualizați … setați și ștergeți din… sintaxa completă este destul de complexă, deoarece inserarea în ar putea fi, de asemenea, o declarație foarte complexă. Vă rugăm să aruncați o privire la inserția T-SQL în sintaxa completă a tabelului aici.

în acest articol vom folosi sintaxa simplificată, dar și cea mai comună:

INSERT INTO table_name (column_list) valori (column_values);

într-o astfel de instrucțiune INSERT INTO, va trebui să definiți numele tabelului în care Introduceți datele, să listați toate coloanele (poate le veți folosi pe toate, dar poate doar câteva dintre ele), apoi să listați toate valorile. Observați că valorile coloanelor trebuie să corespundă definiției tipurilor de coloane (de exemplu, nu puteți insera o valoare textuală în coloana/atributul numeric).

în cazul în care introduceți toate valorile în tabel, nu este nevoie să listați toate coloanele după nume_tabel și puteți utiliza o sintaxă și mai simplificată:

inserați în valorile nume_tabel (column_values);

eu personal prefer listarea tuturor numelor de coloane, deoarece această abordare ar funcționa chiar dacă adăugăm coloane noi în tabelul existent.

  • notă: instrucțiunea INSERT INTO TABLE ar putea fi scrisă în așa fel încât să inserăm mai multe rânduri cu Instrucțiunea 1 sau chiar combinate cu instrucțiunea SELECT.

sintaxa simplificată pentru un astfel de caz în care instrucțiunile INSERT și SELECT sunt combinate este prezentată mai jos:

INSERT INTO destination_table (column_list, …)
SELECT column_list
FROM source_table
WHERE condition;

INSERT INTO table example

înainte de a face ceva, să verificăm ce este stocat în tabelele noastre. Acesta este modelul pe care l-am creat în articolul precedent. Puteți vedea că avem un tabel în care vom stoca date legate de țări și altul pentru date legate de orașe. Ele sunt, de asemenea, legate între ele, dar vom vorbi despre asta în următorul articol:

introduceți în model tabel-date

introduceți în model tabel - date

pentru a verifica conținutul acestor două tabele, vom folosi două simple Select declarații:

1
2

selectați * din țară;
selectați * din oraș;

deși SELECT nu este subiectul acestui articol, trebuie menționat că sintaxa sa de bază este:

selectați 1 sau mai multe atribute din tabel;

Steaua (*) după SELECT reprezintă faptul că dorim să afișăm valorile tuturor atributelor/coloanelor din acel tabel în rezultatul interogării.

așa cum era de așteptat, nu există nimic în aceste două tabele, iar SQL Server returnează rezultatul, așa cum se arată în imaginea de mai jos. Declarațiile returnează numele coloanelor din tabelele pe care le-am folosit în interogarea SELECT, dar nu există nimic sub aceste nume de coloane. Puteți privi acest lucru ca o foaie Excel goală cu nume de coloane definite (anteturi). Știi ce tip de date ar trebui să fie acolo, dar nu este nimic:

acum, va trebui să schimbăm asta.

în primul rând, vom popula tabelul țară folosind următoarele instrucțiuni inserare în tabel:

1
2
3
4
5

INSERT in country (country_name, country_name_eng, country_code) VALUES (‘Deutschland’, ‘Germany’, ‘DEU’);
INSERT in country (country_name, country_name_eng, country_code) VALUES (‘Srbija’, ‘Serbia’, ‘SRB’);
INSERT in country (country_name, country_name _eng, country_code) valori (‘Hrvatska’, ‘Croația’, ‘HRV’);
INSERT in country (country_name, country_name_eng, country_code) VALUES (‘United Stated of America’,’ United Stated of America’,’ USA’);
INSERT in country (country_name, country_name_eng, country_code) VALUES (‘Polska’,’ Poland’, ‘POL’);

datele pentru cinci țări au fost introduse cu succes. Rezultatul este prezentat în imaginea de mai jos. Din moment ce am avut 5 inserare în declarațiile de masă avem 1″ (1 rând afectat) „mesaj pentru fiecare dintre aceste cinci comenzi în secțiunea” Mesaje:

se introduce în tabel-țară

vă rugăm să rețineți că toate valorile (după valori) au fost ordonate în același mod în care am enumerat coloanele (după inserare în țară). Toate cele trei valori sunt texte. Interogarea ar funcționa chiar dacă nu le-am comandat în mod corect, deoarece toate au același tip de date (text), dar datele ar fi stocate în coloane greșite. În acest caz, am avea o eroare semantică.

următorul lucru pe care trebuie să-l facem este să populăm masa orașului. Vom face acest lucru folosind următoarele declarații:

1
2
3
4
5
6

introduceți în valorile orașului (city_name, lat, long, country_id) (‘Berlin’, 52.520008, 13.404954, 1);
introduceți în valorile orașului (city_name, lat, long, country_id) (‘Belgrad’, 44.787197, 20.457273, 2);
introduceți în valorile orașului (city_name, lat, long, country_id) (‘Zagreb’, 45.815399, 15.966568, 3);
introduceți în valorile orașului (city_name, lat, long, country_id) (‘New York’, 40.73061, -73.935242, 4);
introduceți în valorile orașului (city_name, lat, long, country_id) (‘Los Angeles’, 34.052235, -118.243683, 4);
introduceți în valorile orașului (city_name, lat, long, country_id) (‘Varșovia’, 52.237049, 21.017532, 5);

după executarea acestor declarații, acesta a fost rezultatul. După cum era de așteptat, au fost adăugate 6 rânduri. Și încă o dată avem 1 mesaj pentru fiecare inserție din secțiunea Mesaje:

oraș

în acest caz, am avea o problemă dacă nu am enumera valori în același mod, am enumera coloane deoarece tipurile lor de date nu sunt aceleași (sunt – în ordine: text, număr zecimal, număr zecimal, număr întreg). Acest tip de eroare se numește Eroare de sintaxă și SGBD în sine ar împiedica interogarea să ruleze deloc.

selectați – Verificați ce a fost introdus

acum vom verifica încă o dată ce este stocat în tabelele noastre. Vom folosi aceleași două declarații selectate pe care le-am folosit anterior:

1
2

selectați * din țară;
selectați * din oraș;

rezultatul este prezentat în imaginea de mai jos. Vă rugăm să observați că, după executarea interogări acum avem rezultate și mesaje secțiuni sub interogări:

selectați declarațiile

putem concluziona că ambele tabele din Baza noastră de date conțin date și acum suntem gata să „jucăm” cu ceva mult mai cool decât acesta.

inserare în tabel utilizând Excel

în multe cazuri, va trebui să executați mai multe instrucțiuni SQL pe baza setului de date furnizat. Acest lucru este valabil nu numai pentru INSERT into table declarație, dar, de asemenea, pentru actualizare și ștergere declarații. Nu are rost să tastați manual aceste declarații, dar ar trebui să mergeți mai degrabă cu o abordare mai inteligentă – pregătiți formule (sau un script) care să automatizeze această parte. În astfel de situații, prefer să folosesc Excel și formule.

notă: Personal, în contextul bazelor de date, găsesc Excel foarte util atunci când trebuie să creez mai multe declarații și când prezint rezultate și/sau creez tablouri de bord.

să aruncăm o privire la aceste formule:

țări Excel

formula utilizată pentru a insera prima țară (Germania) este:

1
=”introduceți în valorile country (country_name, country_name_eng, country_code) (‘”& B2 & „‘, ‘” & C2 & „‘, ‘” & D2 &”‘);”

orașe Excel

formula utilizată pentru a insera primul oraș (Berlin) este:

1
=”introduceți în valorile orașului (city_name, lat, long, country_id) (‘”& B2 & „‘, ” & C2 &”, ” & D2 &”, ” & E2 & „);”

Simțiți-vă liber să utilizați aceste formule pentru a vă automatiza sarcinile. Vom folosi o abordare similară mai târziu atunci când rulăm mai multe instrucțiuni de actualizare și ștergere (și chiar și atunci când creăm instrucțiuni selectate).

concluzie

în acest articol, am acoperit una dintre cele patru cele mai importante instrucțiuni SQL –INSERT INTO table. L-am folosit pentru a popula tabele create în articolul precedent. Aceasta a fost o condiție prealabilă pentru a trece la lucruri mai inteligente – cum ar fi teoria bazelor de date și, mai important, returnarea rezultatelor din Baza noastră de date.

în articolul următor, vom vorbi despre cheia primară – ce este și de ce este importantă în bazele de date.

cuprins

Learn SQL: creați baza de date & creați operații de tabel

Learn SQL: introduceți în tabel

Learn SQL: cheie primară

Learn SQL: cheie străină

learn SQL: select statement

learn SQL: inner join vs left join

Learn SQL: script-uri SQL

learn SQL: tipuri de relații

Learn SQL: tipuri de relații

Learn SQL: Alăturați-vă mai multor tabele

aflați SQL: funcții agregate

aflați SQL: cum să scrieți o interogare complexă de selectare

aflați SQL: baza de date INFORMATION_SCHEMA

aflați SQL: tipuri de date SQL

aflați SQL: Teoria seturilor

învață SQL: funcții definite de utilizator

învață SQL: proceduri stocate definite de utilizator

învață SQL: Vizualizări SQL

învață SQL: declanșează SQL

învață SQL: exersează interogări SQL

aflați SQL: SQL Query Exemple

Learn SQL: creați un raport manual folosind interogări SQL

Learn SQL: SQL Server data și ora funcții

Learn SQL: creați rapoarte SQL Server folosind data și ora funcții

Learn SQL: SQL Server Pivot tabele

Learn SQL: SQL Server export în Excel

learn SQL: intro la SQL Server bucle

learn sql: sql server cursoare

learn SQL: SQL cele mai bune practici pentru ștergerea și actualizarea datelor

learn SQL: convenții de denumire

învață SQL: SQL legate de locuri de muncă

aflați SQL: non-Equi se alătură în SQL Server

aflați SQL: SQL Injection

aflați SQL: SQL dinamic

  • autor
  • Postări recente
Emil Drkusic
Emil este un profesionist de baze de date cu peste 10 ani de experiență în tot ceea ce ține de bazele de date. De-a lungul anilor, a lucrat în industria IT și finanțe și acum lucrează ca freelancer.
angajamentele sale din trecut și prezent variază de la proiectarea și codificarea bazelor de date la predare, consultanță și scriere despre bazele de date. De asemenea, să nu uităm, BI, crearea de algoritmi, șah, Filatelie, 2 câini, 2 pisici, 1 soție, 1 copil…
îl puteți găsi pe LinkedIn
Vezi toate postările lui Emil Drkusic

Emil Drkusic
ultimele postări de Emil Drkusic (vezi toate)
  • aflați SQL: SQL dinamic-3 martie 2021
  • aflați SQL: injecție SQL-2 Noiembrie 2020
  • aflați SQL: Non-Equi se alătură în SQL Server-Septembrie 29, 2020

Lasă un răspuns

Adresa ta de email nu va fi publicată.

More: