î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:
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:
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:
î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:
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:
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 &”‘);”
|
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
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
- 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