Secțiuni de site
Alegerea editorului:
- Cum să eliminați complet Programul Avast pentru a elimina Avast
- Aplicație mobilă Aliexpress
- Dispunerea tastaturii QWERTY și AZERTY Versiuni speciale ale tastaturii Dvorak
- Insula Sao Vicente Insula Sao Vicente
- Regulile pe care le încălcăm Este în regulă să-ți pui coatele pe masă?
- Care unități flash USB sunt cele mai fiabile și mai rapide?
- Conectarea unui laptop la un televizor prin cablu USB pentru conectarea unui laptop la un televizor VGA
- Schimbarea interfeței Steam - de la imagini simple la întreaga prezentare pe ecran Design nou steam
- Cum să anulați un abonament Megogo la televizor: instrucțiuni detaliate Cum să vă dezabonați de la abonamentele Megogo
- Cum să partiționați un disc cu Windows instalat fără a pierde date Partiționați discul 7
Publicitate
Bazele T-SQL. DML |
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-SQLINTRODUCE 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ă:
Sintaxă simplificată INSERT [tabel] ( lista de coloane...) VALORI ( lista de valori...) Sau SELECT cerere de mostra Sau EXECUTĂ procedură
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 lista coloanelor î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 sunt specificate și 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țialePentru 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. Nota! 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, îl vom avea să returneze date din tabelul TestTable nou creat. Nota! 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 tabeluluiMai î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 SELECTFoarte 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. 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. INSERT INTO, și asta este tot ce am deocamdată! Echipă adaugă rânduri la tabel sau vizualizarea mesei principale. Sintaxa comenzii Sql INSERTInserați sintaxa comenzii Cuvinte cheie și parametri de bază ai comenzii INSERT
Declaraţie cu fraza VALORI adaugă un singur rând la tabel. Această linie conține valorile definite de frază VALORI. INSERT INTO Exemplul 1
INSERT INTO Exemplul 2
INSERT INTO Exemplul 3
INSERT INTO Exemplul 4
MySQL INSERTPentru a insera noi rânduri într-o bază de date MySQL, utilizați Comanda INSERT, exemple de comandă sunt date mai jos:
INSERT INTO Exemplul 2.
În baza de date MySQL Este posibil să inserați mai multe linii noi folosind o singură comandă.
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: INSERT INTO obiect_final [(câmpul 1[, câmpul 2[, ...]])] Solicitați adăugarea unei înregistrări: INSERT INTO obiect_final [(câmpul 1[, câmpul 2[, ...]])] Instrucțiunea INSERT INTO constă din următoarele elemente:
NoteInstrucț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 rula 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. Ce este INSERT INTO?Scopul principal al sistemelor de baze de date este stocarea datelor în tabele. Datele sunt de obicei furnizate de programe de aplicație care rulează deasupra bazei de date. În acest scop, SQL are comanda INSERT care este folosită pentru a stoca date într-un tabel. The Comanda INSERT creează un nou rândîn tabel pentru a stoca date.Sintaxa de bazăSă ne uităm la sintaxa de bază a comenzii SQL INSERT prezentată mai jos. INSERT INTO `table_name`(coloana_1,coloana_2,...) VALUES (valoare_1,valoare_2,...);
Atunci când furnizați valorile datelor care urmează să fie inserate în noul tabel, trebuie luate în considerare următoarele atunci când vă ocupați de diferite tipuri de date.
Exemplu: Să presupunem că avem următoarea listă de noi membri ai bibliotecii care trebuie adăugați în baza de date.
Să" INSERT datele unul câte unul. Vom începe cu Leonard Hofstadter. Vom trata numărul de contact ca un tip de date numerice și nu vom include numărul între ghilimele simple. INSERT INTO `membri` (`nume_complete`,`gen`,`adresă_fizică`,`număr_de_contact`) VALORI ("Leonard Hofstadter","Bărbat","Woodcrest",0845738767); Executarea scriptului de mai sus scade 0 din numărul de contact al lui Leonard. Acest lucru se datorează faptului că valoarea va fi tratată ca o valoare numerică, iar zero (0) de la început este eliminat deoarece nu este semnificativ. Pentru a evita astfel de probleme, valoarea trebuie inclusă între ghilimele simple, așa cum se arată mai jos - INSERT INTO `membri` (`nume_complete`,`gen`,`adresă_fizică`,`număr_de_contact`) VALORI ("Sheldon Cooper","Bărbat","Woodcrest", "0976736763"); În cazul de mai sus, zero(0) nu va fi eliminat Modificarea ordinii coloanelor nu are efect asupra interogării INSERT, atâta timp cât valorile corecte au fost mapate la coloanele corecte. Interogarea prezentată mai jos demonstrează punctul de mai sus. INSERT INTO `members` (`contact_number`,`gen`,`full_names`,`physical_address`)VALORI ("0938867763","Bărbat","Rajesh Koothrappali","Woodcrest"); Interogările de mai sus au omis coloana cu data nașterii, în mod implicit, MySQL va insera valori NULL în coloanele care sunt omise în interogarea INSERT. Să introducem acum înregistrarea pentru Leslie, care are data nașterii furnizată. Valoarea datei trebuie inclusă între ghilimele simple folosind formatul „AAAA-LL-ZZ”. INSERT INTO `membri` (`nume_complete`,`data_nașterii`,`gen`,`adresă_fizică`,`număr_de_contact`) VALORI ("Leslie Winkle","14-02-1984","Bărbat","Woodcrest"," 0987636553"); Toate interogările de mai sus au specificat coloanele și le-au mapat la valori în instrucțiunea de inserare. Dacă furnizăm valori pentru TOATE coloanele din tabel, atunci putem omite coloanele din interogarea de inserare. INSERT INTO `members` VALUES (9,"Howard Wolowitz","Bărbat","1981-08-24","SouthPark","P.O. Box 4563", "0987786553", "lwolowitzemail.me"); Acum să folosim instrucțiunea SELECT pentru a vizualiza toate rândurile din tabelul de membri.SELECT * FROM `membri`;
Observați că numărul de contact pentru Leonard Hofstadter a scăzut zero (0) din numărul de contact. Celelalte numere de contact nu au scăzut zero (0) la început. Inserarea într-un tabel dintr-un alt tabelComanda INSERT poate fi folosită și pentru a introduce date într-un tabel dintr-un alt tabel. Sintaxa de bază este cea prezentată mai jos. INSERT INTO table_1 SELECT * FROM table_2; Să ne uităm acum la un exemplu practic, vom crea un tabel inactiv pentru categoriile de filme în scop demonstrativ. Vom numi noul tabel de categorii categories_archive. Scriptul prezentat mai jos creează tabelul. CREATE TABLE `categories_archive` (`category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`)) Executați scriptul de mai sus pentru a crea tabelul. Să inserăm acum toate rândurile din tabelul de categorii în tabelul de arhivă de categorii. Scriptul prezentat mai jos ne ajută să realizăm acest lucru. INSERT INTO `categories_archive` SELECT * FROM `categories`; Executarea scriptului de mai sus inserează toate rândurile din tabelul de categorii în tabelul de arhivă de categorii. Rețineți că structurile tabelului vor trebui să fie aceleași pentru ca scriptul să funcționeze. Un script mai robust este unul care mapează numele coloanelor din tabelul de inserare cu cele din tabelul care conține datele. Interogarea prezentată mai jos demonstrează utilizarea acesteia. INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`; Se execută interogarea SELECT SELECT * FROM `categories_archive` oferă următoarele rezultate prezentate mai jos.
Rezumat
|
Citire: |
---|
Nou
- Aplicație mobilă Aliexpress
- Dispunerea tastaturii QWERTY și AZERTY Versiuni speciale ale tastaturii Dvorak
- Insula Sao Vicente Insula Sao Vicente
- Regulile pe care le încălcăm Este în regulă să-ți pui coatele pe masă?
- Care unități flash USB sunt cele mai fiabile și mai rapide?
- Conectarea unui laptop la un televizor prin cablu USB pentru conectarea unui laptop la un televizor VGA
- Schimbarea interfeței Steam - de la imagini simple la întreaga prezentare pe ecran Design nou steam
- Cum să anulați un abonament Megogo la televizor: instrucțiuni detaliate Cum să vă dezabonați de la abonamentele Megogo
- Cum să partiționați un disc cu Windows instalat fără a pierde date Partiționați discul 7
- De ce editorii nu pot edita toate paginile