Contacte

Transact-SQL - Introduceți datele. Introducerea interogării SQL în - completați cererile de bază ale bazei de date SQL Informații

În secțiunile anterioare, am considerat lucrări la obținerea de date cu tabele pre-create. Acum este timpul să faceți cum putem crea / șterge tabelele, să adăugăm noi intrări și să ștergeți vechiul. În aceste scopuri SQL. Există astfel de operatori ca: Crea. - Creează o masă, Modifica. - modifică structura tabelului, Cădere brusca. - elimină o masă sau un câmp, Introduce. - Adaugă date la masă. Să începem familiarizarea cu acest grup de operatori de la operator Introduce..

1. Adăugați linii întregi

Așa cum se poate vedea din nume, operatorul Introduce. Utilizate pentru a introduce (adăuga) rânduri în tabelul bazei de date. Adăugarea poate fi făcută în mai multe moduri:

  • - Adăugați un șir complet
  • - adăugați o parte a liniei
  • - Adăugați rezultatele interogării.

Deci, pentru a adăuga un șir nou la masă, trebuie să specificăm numele tabelului, să menționăm numele coloanelor și să specificați valoarea pentru fiecare coloană utilizând designul INTRODU IN Titlu_table (Field1, Field2 ...) Valori. (valoarea1, valoarea2 ...). Ia în considerare pe exemplu.

Introduceți în vânzători (ID, Adresă, City, Vanzator_name, țară) Valori ("6", "strada 1", "Los Angeles", "Harry Monroe", "SUA")

De asemenea, puteți schimba ordinea de a specifica numele coloanelor, dar în același timp trebuie să modificați ordinea valorilor din parametru Valori..

2. Adăugați o parte din linii

În exemplul anterior, atunci când utilizați operatorul Introduce. Am remarcat, evident, numele coloanelor mesei. Folosind această sintaxă, putem sări peste niște coloane. Aceasta înseamnă că introduceți o valoare pentru unele coloane, dar nu le oferi altora. De exemplu:

Introduceți în valori vânzători (id, oraș, vânzător_name) ("6", "Los Angeles", "Harry Monroe")

În acest exemplu, nu am indicat valoarea pentru două coloane Abordare și Țară.. Puteți exclude unele coloane de la operator. INTRODU INDacă ne permite să determinăm tabelul. În acest caz, trebuie respectată una dintre condițiile: această coloană este definită ca fiind permisă NUL (Absența oricărei valori) sau în prestabilirea implicită a tabelului implicit. Aceasta înseamnă că dacă nu este specificat nici un sens, se va utiliza valoarea implicită. Dacă săriți o coloană a unui tabel care nu permite apariția în liniile dvs. de valori NUL Și nu contează definită pentru utilizare în mod implicit, DBMS va da un mesaj de eroare, iar această linie nu va fi adăugată.

3. Adăugarea datelor selectate

În exemplele anterioare, am introdus date în tabele, le prescriu manual în interogare. Cu toate acestea, operatorul INTRODU IN Vă permite să automatizați acest proces dacă vrem să introducem date dintr-un alt tabel. Pentru a face acest lucru, în SQL există un astfel de dedurizare ca Inserați în ... Selectați .... Acest design vă permite să selectați simultan date de la o masă și să le introduceți la altul. Să presupunem că avem o altă masă Vânzări_eu. Cu o listă de vânzători ai bunurilor noastre din Europa și trebuie să le adăugăm la o masă comună Vânzătorii. Structura acestor tabele este aceeași (același număr de coloane și aceleași nume), cu toate celelalte date. Pentru a face acest lucru, putem prescrie următoarea solicitare:

Inserați în vânzători (ID, adresa, oraș, vânzător_name, țară) SelectațiID, adresa, orașul, vânzătorul_name, țara de la viseri_eu

Trebuie să acordați atenție tastelor interne care nu se repetă (câmp ID.) În caz contrar, va apărea o eroare. Operator SELECTAȚI pot include, de asemenea, sugestii Unde Pentru a filtra datele. De asemenea, trebuie remarcat faptul că DBMS nu acordă atenție numele coloanelor care figurează în operator SELECTAȚIPentru aceasta, numai ordinea locației lor este importantă. Prin urmare, datele din prima coloană indicată, care a fost aleasă din cauza SELECTAȚIÎn orice caz, va fi completat în prima coloană a tabelului Vânzătoriiindicată după operator INTRODU IN, indiferent de numele câmpului.

4. Copierea datelor de la o masă la alta

Adesea, atunci când lucrați cu baze de date, este necesar să se creeze copii ale unor tabele pentru rezervare sau modificare. Pentru a face o copie completă a mesei în SQL, a oferit un operator separator Selectați în. De exemplu, trebuie să creăm o copie a mesei Vânzătorii, Va trebui să înregistrez cererea după cum urmează:

Selectați * în Sellers_New de la vânzători

Spre deosebire de designul anterior Inserați în ... Selectați ...Când datele sunt adăugate la tabelul existent, proiectul copiază datele către noul tabel. De asemenea, puteți spune că primele date importă date, iar al doilea este exportat. Când utilizați construcția Selectați ... în ... de la ... Următorul trebuie luat în considerare:

  • - Puteți utiliza orice sugestii în cadrul operatorului SELECTAȚI, la fel ca A se grupa cu. și Având
  • - Pentru a adăuga date din mai multe mese, puteți utiliza Uniunea
  • - Datele sunt posibile pentru a adăuga o singură masă, indiferent de câte tabele au fost luate.

Această instrucțiune adaugă una sau mai multe înregistrări la masă (execută o cerere de adăugare).

Sintaxă

Cerere de adăugare a mai multor intrări:

INTRODU IN end_object. [(field1.[, câmp2.[, ...]])]
SELECTAȚI [ o sursă.]field1.[, câmp2.[, ...]
Din. expresie_table.

Cerere de adăugare a unei intrări:

INTRODU IN end_object. [(field1.[, câmp2.[, ...]])]
Valori ( field1.[, câmp2.[, ...])

Introducerea în declarația constă în următoarele elemente:

Parte

Descriere

end_object.

Numele tabelului sau cererea unde se adaugă înregistrări.

field1., câmp2.

După argument end_object. - numele câmpurilor în care se adaugă date; După argument o sursă - numele câmpurilor din care sunt preluate datele.

extern_base_data.

Calea către baza de date externă. Pentru o descriere a modului, a se vedea articolul privind propunerea.

o sursă

Numele tabelului sau cererii, de unde sunt copiate înregistrările.

expresie_table.

Unul sau mai multe nume de tabele din care doriți să primiți înregistrări. Acest argument poate fi numele unui tabel separat, o expresie rezultată, compilată utilizând alăturarea interioară, alăturați-vă sau alăturați-vă operațiilor de conectare sau o solicitare salvată.

ceea ce înseamnă1., sens2.

Valorile care vor fi adăugate în anumite domenii ale noului record. Fiecare valoare este introdusă în câmpul corespunzător poziției sale din listă: ceea ce înseamnă1. Adăugat B. field1. un nou record sens2. - In. câmp2. Etc. Este necesar să separe valorile virgulei și să introduceți câmpurile de text în citate ("").

Remarcă

Folosind inserția în instrucțiuni, puteți adăuga o înregistrare la masă utilizând sintaxa de mai sus. În acest caz, sunt specificate numele și valorile pentru fiecare câmp de înregistrare. Trebuie să specificați toate câmpurile de înregistrare care sunt valori atribuite și valorile corespunzătoare. Dacă nu specificați valoarea câmpului, acesta va fi atribuit valoarea implicită sau nulă. Înregistrările sunt adăugate la sfârșitul tabelului.

Introducerea în instrucțiuni poate fi, de asemenea, utilizată pentru a adăuga un set de înregistrări dintr-o altă tabelă sau solicitare utilizând butonul SELECT ... de la propunere, după cum se arată mai sus (a se vedea sintaxa de interogare adăugând mai multe intrări). În acest caz, propunerea selectată stabilește câmpurile să adauge la specificațiile specificate end_object..

O sursă sau end_object. Poate fi o masă sau o cerere. Dacă interogarea este specificată, kernelul Microsoft Access DBMS adaugă înregistrări la toate tabelele pe care le returnează.

Utilizarea inserției în instrucțiuni nu este necesară. Dacă este specificat, trebuie să precede instrucțiunile selectate.

Dacă tabelul de destinație conține cheia primară, asigurați-vă că valorile adăugate la unul sau mai multe câmpuri ale cheii primare sunt unice și diferite de NUL; În caz contrar, înregistrarea nu va fi adăugată.

Dacă înregistrările sunt adăugate la masă cu câmpul "Counter" și doriți să schimbați numerotarea acestora, nu porniți câmpul "Counter" din interogare. Porniți câmpul "Counter" din interogare dacă doriți să salvați valorile sursei din câmp.

Adăugarea intrărilor la tabel O altă bază de date poate fi utilizată în ofertă.

Pentru a crea o masă, utilizați selecția ... în instrucțiuni pentru a primi o interogare pentru crearea unui tabel.

Înainte de a adăuga o solicitare de adăugare, utilizați solicitarea de selecție cu aceleași condiții de selecție pentru a determina ce înregistrări vor fi adăugate.

Cererea de adăugare copiază intrările de la unul sau mai multe tabele la un alt tabel. În același timp, 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 separată nouă utilizând oferta valorilor. Dacă lista câmpurilor este omisă, în propunerea de valori, trebuie să activați valorile corespunzătoare ale fiecărui câmp de tabel; În caz contrar, operația de inserare nu va fi executată. Utilizați inserția în instrucțiuni împreună cu oferta de valori pentru fiecare înregistrare suplimentară pe care doriți să o creați.

Ultima actualizare: 07/13/2017

Pentru a adăuga date, se utilizează comanda Insert, care are următoarea sintaxă formală:

Introduceți numele de nume_table [(list_stolbts)] Valori (valoarea1, valoarea2, ... valoro)

Introducerea în expresie vine mai întâi, apoi în paranteze Puteți specifica o listă de coloane prin virgulă, în care doriți să adăugați date și, la sfârșit, după ce valorile cuvintelor enumeră valoarea adăugată pentru coloane.

De exemplu, lăsați o bază de date următoare să fie creată mai devreme:

Creați produse de baze de date; Go Utilizați ProdusedB; Creați produse de masă (ID INT Intenty Cheie primară, produs NVARCHAR (30) NU NULL, Producător NVARCHAR (20) Nu NULL, ProductCount INT Implicit 0, prețul banilor nu NULL)

Adăugați o linie la acesta utilizând comanda Insert:

Introducerea valorilor produselor ("iPhone 7", "Apple", 5, 52000)

După o execuție de succes în SQL Server Management Studio, un mesaj "1 rând (e) afectat" ar trebui să apară în câmpul de mesaj:

Trebuie să se țină cont de faptul că valorile pentru coloanele din paranteze după valorile cuvintelor cheie sunt transmise în ordinea anunțului lor. De exemplu, în expresia tabelului de creare de mai sus, puteți vedea că prima coloană este ID. Dar, deoarece atributul de identitate este specificat pentru aceasta, valoarea acestei coloane este generată automat și nu poate fi indicată. A doua coloană reprezintă numele de produs, astfel încât prima valoare este linia "iPhone 7" va fi transmisă în această coloană particulară. A doua valoare - șirul de mere "va fi transferat la cea de-a treia coloană a producătorului și așa mai departe. Adică, valorile sunt transferate în coloane după cum urmează:

    Produs Nume: "iPhone 7"

    Producator: "Apple"

De asemenea, la introducerea valorilor, puteți specifica coloanele imediate la care vor fi adăugate valori:

Introduceți în produse (nume, preț, producător) valori ("iPhone 6S", 41000, "Apple")

Aici valoarea este indicată numai pentru trei coloane. Și acum valorile sunt transmise în ordinea coloanelor:

    Produs Nume: "iPhone 6s"

    Producator: "Apple"

Pentru coloanele nespecificate (în acest caz, productCount) va adăuga valoarea implicită dacă este setat atributul implicit sau valoarea nulă. În acest caz, coloanele nespecificate ar trebui să permită nul sau să aibă un implicit de atribut.

De asemenea, putem adăuga câteva linii simultan:

Introduceți în valorile produselor ("iPhone 6", "Apple", 3, 36000), (Galaxy S8 "," Samsung ", 2, 46000), (Galaxy S8 Plus", "Samsung", 1, 56000)

În acest caz, trei linii vor fi adăugate la masă.

De asemenea, la adăugarea, putem specifica că valoarea implicită pentru coloană utilizează cuvântul cheie implicit sau valoarea nulă:

Introduceți în produse (nume, producător, producător, produs, preț) ("MI6", "Xiaomi", implicit, 28000)

În acest caz, valoarea implicită va fi utilizată pentru coloana Producout (dacă este instalată dacă nu este - atunci nulă).

Dacă toate coloanele au un atribut implicit care determină valoarea implicită sau permite valorii nul, atunci puteți introduce valori implicite pentru toate coloanele:

Introduceți în valorile implicite ale produselor

Dar dacă luați tabelul de produse, atunci comanda se va termina cu o eroare, deoarece mai multe câmpuri nu au atributul implicit și nu permiteți null.

Inserția SQL în și inserați instrucțiunile selectate sunt utilizate pentru a introduce noi rânduri către masă. Există două modalități de utilizare a instrucțiunilor:

  1. Valori doar: Prima metodă oferă o indicație numai a valorilor datelor pe care trebuie să le introduceți fără nume de coloane.

Sintaxă:

Introduceți în valori_table_name (valoarea1, valoarea2, valoarea3, ...); Name_table: numele tabelului. Valoarea1, valoarea2, ..: Valorile primei coloane, a doua coloană, ... pentru noua intrare

  1. Numele și valorile coloanelor: Cu a doua metodă, sunt indicate numele coloanelor și valorile rândului de inserție:

Sintaxă:

Introduceți valorile Name_table (coloana, coloana2, coloana, ..) (valoarea1, valoarea2, valoarea3, ...); Name_table: numele tabelului. Coloana1: Numele primei coloane, a doua coloana ... Value1, Value2, ..: Valorile primei coloane, a doua coloana, ... pentru noua intrări

Solicitări:

Metoda 1 ( introduceți numai valorile):

Introduceți în valorile studenților ("5", "dur", "Bengal de Vest", "8759770477", "19");

Rezultat:

După utilizarea inserției în selectarea mesei, studentul va arăta astfel:

Rola numărul. Nume. Abordare Telefon Vârstă.
1 Berbec Delhi. 9455123451 18
2 Ramesh. Gurgaon. 9562431543 18
3 Sujit. Rohtak. 9156253131 20
4 Suresh. Delhi. 9156768971 18
3 Sujit. Rohtak. 9156253131 20
2 Ramesh. Gurgaon. 9562431543 18
5 Aspru. West Bengal. 8759770477 19

Metoda 2 ( introducerea valorilor numai în coloanele specificate):

Introduceți în valorile elevului (Roll_no, nume, vârstă) ("5", "Pratik", "19");

Rezultat:

Masa studenților va arăta acum:

Rola numărul. Nume. Abordare Telefon Vârstă.
1 Berbec Delhi. 9455123451 18
2 Ramesh. Gurgaon. 9562431543 18
3 Sujit. Rohtak. 9156253131 20
4 Suresh. Delhi. 9156768971 18
3 Sujit. Rohtak. 9156253131 20
2 Ramesh. Gurgaon. 9562431543 18
5 Pratik. nUL nUL 19

Rețineți că pentru coloane, valorile pentru care nu sunt specificate, NULL este setat.

Utilizarea selectată în Insert în instrucțiuni

Puteți utiliza instrucțiunea MySQL Insert Selectați pentru a copia rândurile de la o masă și introduceți-le la altul.

Utilizarea acestui operator este similară utilizării inserției în. Diferența este că declarația de selectare este aplicată datelor de eșantionare dintr-un alt tabel. Mai jos sunt diferite modalități de utilizare inserați în selectarea:

  • Introduceți toate coloanele de masă: Puteți copia toate datele tabelului și le puteți lipi într-o altă tabelă.

Sintaxă:

Introduceți în prima_tablitsa Selectați * de la Second_tablik; Primul_tablik: numele primei tabele. Second_table: numele celui de-al doilea tabel.

Am folosit instrucțiunea SELECT pentru a copia datele de la o masă și introduceți în instrucțiuni pentru introducerea acestora la altul.

  • Introducerea coloanelor de masă selectate. Puteți copia numai acele coloane ale mesei care urmează să fie introduse într-o altă masă.

Sintaxă:

Introduceți în primul_tablik (nume_stolbtsy1) Selectați nume_stolbam2 de la secunde_tablik; Primul_tablik: numele primei tabele. Second_table: numele celui de-al doilea tabel. Nume_stolbtsy1: nume de coloane separate printr-o virgulă (,) pentru o masă 1. nume_stolbami2: numele coloanelor separate prin virgulă (,) pentru tabelul 2.

Am folosit declarația SELECT pentru a copia datele numai din coloanele selectate ale celui de-al doilea tabel și inserția MySQL în instrucțiunea selectată pentru a le introduce în primul tabel.

  • Copiați anumite linii de la masă. Puteți copia anumite linii de la masă pentru introducerea ulterioară la o altă tabelă utilizând situația în care este cazul cu instrucțiunea SELECT. În acest caz, trebuie să utilizați condiția corespunzătoare în care.

Sintaxă:

Tabelul 2: lateralist

Rola numărul. Nume. Abordare Telefon Vârstă.
7 Souvik. Dum Dum 9876543210 18
8 Niraj. Noida. 9786543210 19
9 Somesh. Rohtak. 9687543210 20

Solicitări:

Metoda 1 ( introduceți toate rândurile și coloanele):

Introduceți în student Selectați * de la lateralist;

Rezultat:

Această interogare va introduce toate datele tabelului lateralist din tabelul elevului. După aplicarea inserției SQL în Selectați, tabelul elevului va arăta astfel:

Rola numărul. Nume. Abordare Telefon Vârstă.
1 Berbec Delhi. 9455123451 18
2 Ramesh. Gurgaon. 9562431543 18
3 Sujit. Rohtak. 9156253131 20
4 Suresh. Delhi. 9156768971 18
3 Sujit. Rohtak. 9156253131 20
2 Ramesh. Gurgaon. 9562431543 18
7 Souvik. Dum Dum 9876543210 18
8 Niraj. Noida. 9786543210 19
9 Somesh. Rohtak. 9687543210 20

Metoda 2 ( introducerea coloanelor individuale):

Introduceți în student (Roll_no, nume, vârstă) Selectați Roll_no, nume, vârstă de la lateralist;

Rezultat:

Această interogare va introduce date din coloanele Roll_no, numele și masa de vârstă lateralist în tabelul student. Pentru coloanele rămase, tabelul elevului va fi setat la NULL. După aplicarea SQL Insert Selectați, tabelul va arăta astfel:

Rola numărul. Nume. Abordare Telefon Vârstă.
1 Berbec Delhi. 9455123451 18
2 Ramesh. Gurgaon. 9562431543 18
3 Sujit. Rohtak. 9156253131 20
4 Suresh. Delhi. 9156768971 18
3 Sujit. Rohtak. 9156253131 20
2 Ramesh. Gurgaon. 9562431543 18
7 Souvik. NUL nUL 18
8 Niraj. NUL nUL 19
9 Somesh. NUL nUL 20
  • Selectați anumite linii pentru a introduce:

Rezultat:

Această interogare va selecta numai primul șir din tabelul lateralist pentru a introduce în tabelul elevului. După utilizare, introduceți selectați, tabelul va arăta după cum urmează.

Cu SQL, puteți copia informații de la o masă la alta.

Introduceți în selectarea, aplicația copiază datele de la o masă și introduceți-o la tabelul existent.

SQL Insert în instrucțiunea SELECT,

Introduceți în selectarea, operatorul selectează datele de la o masă și introduceți-o într-o masă existentă. Orice liniile existente din tabelul țintă nu se schimbă.

SQL Insert în Selectare, Synation

Putem copia toate coloanele de la o masă la alta, tabelul existent:

INTRODU IN masa 2.
ALEGE DIN. tabelul 1;

Sau putem copia numai acele coloane pe care le dorim la altul, tabelul existent:

INTRODU IN masa 2.
(Column_name (s))
SELECTAȚI column_name (e)
Din. tabelul 1;

Versiunea demo a bazei de date

În această lecție vom folosi bine-cunoscutul bază de date boreană.

Mai jos este o selecție de mese "clienți":

ID personalizat Numele clientului Persoana de contact Abordare oraș Cod poștal. Țară
1 Alfreds Futterkiste. Maria Anders. Obere str. 57. Berlin. 12209 Germania
2 Ana Trujillo Empareddos y Helados Ana Trujillo. AVDA. DE LA CONSTITUCION 2222 Mexic D.F. 05021 Mexic.
3 Antonio Moreno Taqueria. Antonio Moreno. Mataderos 2312. Mexic D.F. 05023 Mexic.

Și alegerea de la mese "furnizori":

SQL Insert în selectați, exemple

Copierea doar câteva coloane de la "furnizori" în "clienți":

Copierea numai furnizorilor germani în "Clienții".



Ți-a plăcut articolul? Împărtășește-l