Wstaw do składni zapytania SQL. Transact-SQL — Wstawianie danych

Co to jest INSERT INTO?

Głównym celem systemów bazodanowych jest przechowywanie danych w tabelach. Dane są zwykle dostarczane przez aplikacje działające w oparciu o bazę danych. W tym celu SQL ma polecenie INSERT, które służy do przechowywania danych w tabeli. The Polecenie INSERT tworzy nowy wiersz w tabeli do przechowywania danych.

Podstawowa składnia

Przyjrzyjmy się podstawowej składni polecenia SQL INSERT pokazanej poniżej.

WSTAW DO `nazwa_tabeli`(kolumna_1,kolumna_2,...) WARTOŚCI (wartość_1,wartość_2,...);

  • WSTAW DO `nazwa_tabeli` to polecenie, które mówi serwerowi MySQL, aby dodał nowy wiersz do tabeli o nazwie `nazwa_tabeli`.
  • (kolumna_1, kolumna_2,...) określa kolumny, które mają zostać zaktualizowane w nowym wierszu
  • WARTOŚCI (wartość_1, wartość_2,...) określa wartości, które mają zostać dodane do nowego wiersza

Podając wartości danych, które mają zostać wstawione do nowej tabeli, należy wziąć pod uwagę następujące kwestie w przypadku różnych typów danych.

  • Typy danych ciągowych- wszystkie wartości ciągów należy ująć w pojedyncze cudzysłowy.
  • Numeryczne typy danych- wszystkie wartości liczbowe należy podawać bezpośrednio, bez ujęcia ich w pojedynczy lub podwójny cudzysłów.
  • Typy danych daty- wartości dat należy ująć w pojedynczy cudzysłów w formacie „RRRR-MM-DD”.

Przykład:

Załóżmy, że mamy następującą listę nowych członków biblioteki, których należy dodać do bazy danych.

Pełne nazwy Data urodzenia płeć Adres fizyczny adres pocztowy Numer kontaktowy Adres e-mail
Leonarda Hofstadtera Mężczyzna Woodcrest 0845738767
Sheldon Cooper Mężczyzna Woodcrest 0976736763
Rajesh Koothrappali Mężczyzna Fairview 0938867763
Leslie Winkle 14/02/1984 Mężczyzna 0987636553
Howarda Wolowitza 24/08/1981 Mężczyzna Park Południowy PO Pudełko 4563 0987786553

WSTAWIAJ dane po kolei. Zaczniemy od Leonarda Hofstadtera. Numer kontaktowy będziemy traktować jako numeryczny typ danych i nie będziemy go ująć w cudzysłów.

WSTAW DO „członków” („imię i nazwisko”, „płeć”, „adres_fizyczny”, „numer_kontaktowy”) WARTOŚCI („Leonard Hofstadter”, „Mężczyzna”, „Woodcrest”, 0845738767);

Wykonanie powyższego skryptu powoduje usunięcie 0 z numeru kontaktowego Leonarda. Dzieje się tak dlatego, że wartość będzie traktowana jako wartość numeryczna, a zero (0) na początku zostanie usunięte, ponieważ nie jest znaczące.

Aby uniknąć takich problemów, wartość należy ująć w pojedynczy cudzysłów, jak pokazano poniżej -

WSTAW DO „członków” („imię i nazwisko”, „płeć”, „adres_fizyczny”, „numer_kontaktowy”) WARTOŚCI („Sheldon Cooper”, „Mężczyzna”, „Woodcrest”, „0976736763”);

W powyższym przypadku zero(0) nie zostanie usunięte

Zmiana kolejności kolumn nie ma wpływu na zapytanie INSERT o ile poprawne wartości zostały zmapowane do właściwych kolumn.

Zapytanie pokazane poniżej ilustruje powyższy punkt.

WSTAW DO `członków` (`numer_kontaktowy`,`płeć`,`imię i nazwisko`,`adres_fizyczny`) WARTOŚCI („0938867763”, „Mężczyzna”, „Rajesh Koothrappali”, „Woodcrest”);

W powyższych zapytaniach pominięto kolumnę daty urodzenia, domyślnie MySQL wstawi wartości NULL w kolumnach, które są pomijane w zapytaniu INSERT.

Wstawmy teraz akt Leslie, który zawiera datę urodzenia. Wartość daty należy ująć w pojedynczy cudzysłów w formacie „RRRR-MM-DD”.

WSTAW DO „członków” („imię i nazwisko”, „data_urodzenia”, „płeć”, „adres_fizyczny”, „numer_kontaktowy”) WARTOŚCI („Leslie Winkle”, „14.02.1984”, „Mężczyzna”, „Woodcrest”,” 0987636553");

Wszystkie powyższe zapytania określiły kolumny i zmapowały je na wartości w instrukcji wstawiania. Jeżeli podajemy wartości dla WSZYSTKICH kolumn w tabeli, to możemy pominąć te kolumny w zapytaniu wstawiającym.

WSTAWIĆ WARTOŚCI „członków” (9, „Howard Wolowitz”, „Male”, „1981-08-24”, „SouthPark”, „P.O. Box 4563”, „0987786553”, „lwolowitzemail.me”);

Użyjmy teraz instrukcji SELECT, aby wyświetlić wszystkie wiersze w tabeli członków.SELECT * FROM `members`;

numer_członkostwapełne nazwypłećData urodzeniaadres fizycznyadres pocztowynumer_kontaktue-mail
1 Janet JonesKobieta21-07-1980 Działka przy ulicy Pierwszej nr 4Prywatna torba0759 253 542 Ten adres e-mail jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.
2 Janet Smith JonesKobieta23-06-1980 Melroza 123ZEROZEROTen adres e-mail jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.
3 Roberta FilaMężczyzna12-07-1989 Trzecia ulica 34ZERO12345 Ten adres e-mail jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.
4 Glorii WilliamsKobieta14-02-1984 Druga ulica 23ZEROZEROZERO
5 Leonarda HofstadteraMężczyznaZEROWoodcrestZERO845738767 ZERO
6 Sheldon CooperMężczyznaZEROWoodcrestZERO976736763 ZERO
7 Rajesh KoothrappaliMężczyznaZEROWoodcrestZERO938867763 ZERO
8 Leslie WinkleMężczyzna14-02-1984 WoodcrestZERO987636553 ZERO
9 Howarda WolowitzaMężczyzna24-08-1981 Park PołudniowyPO Pudełko 4563987786553 Ten adres e-mail jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.

Zwróć uwagę, że w numerze kontaktowym Leonarda Hofstadtera usunięto zero (0). Pozostałe numery kontaktowe nie spadły na początku zera (0).

Wstawianie do tabeli z innej tabeli

Polecenie INSERT może być również użyte do wstawienia danych z innej tabeli do tabeli. Podstawowa składnia jest pokazana poniżej.

WSTAW DO tabeli_1 WYBIERZ * Z tabeli_2;

Spójrzmy teraz na praktyczny przykład, utworzymy fikcyjną tabelę dla kategorii filmów w celach demonstracyjnych. Nową tabelę kategorii nazwiemy kategoriach_archiwum. Poniższy skrypt tworzy tabelę.

UTWÓRZ TABELĘ `kategorie_archiwum` (`kategoria_id` int(11) AUTO_INCREMENT, `kategoria_nazwa` varchar(150) DOMYŚLNIE NULL, `uwagi` varchar(500) DOMYŚLNIE NULL, KLUCZ PODSTAWOWY (`kategoria_id`))

Wykonaj powyższy skrypt, aby utworzyć tabelę.

Wstawmy teraz wszystkie wiersze z tabeli kategorii do tabeli archiwum kategorii. Pomoże nam w tym poniższy skrypt.

WSTAW DO `archiwum_kategorii` WYBIERZ * Z `kategorii`;

Wykonanie powyższego skryptu wstawia wszystkie wiersze z tabeli kategorii do tabeli archiwum kategorii. Pamiętaj, że struktury tabeli będą musiały być takie same, aby skrypt działał. Bardziej niezawodny skrypt to taki, który odwzorowuje nazwy kolumn w tabeli wstawiania na nazwy kolumn w tabeli zawierającej dane.

Zapytanie pokazane poniżej demonstruje jego użycie.

WSTAW DO `archiwum_kategorii`(id_kategorii,nazwa_kategorii,uwagi) WYBIERZ id_kategorii,nazwa_kategorii,uwagi Z `kategorii`;

Wykonywanie zapytania SELECT

WYBIERZ * Z `archiwum_kategorii`

daje następujące wyniki pokazane poniżej.

identyfikator_kategoriiNazwa Kategoriiuwagi
1 KomediaFilmy z humorem
2 RomantycznyHistorie miłosne
3 EpickiHistoria starożytnych filmów
4 PrzerażenieZERO
5 Fantastyka naukowaZERO
6 KryminałZERO
7 DziałanieZERO
8 Komedia romantycznaZERO
9 KreskówkiZERO
10 KreskówkiZERO

Streszczenie

  • Polecenie INSERT służy do dodawania nowych danych do tabeli
  • Data i wartości ciągu powinny być ujęte w pojedynczy cudzysłów.
  • Wartości liczbowych nie trzeba ująć w cudzysłów.
  • Polecenie INSERT może być także użyte do wstawienia danych z jednej tabeli do drugiej.

Instrukcje SQL INSERT INTO i INSERT SELECT służą do wstawiania nowych wierszy do tabeli. Z instrukcji można korzystać na dwa sposoby:

  1. Tylko wartości: Pierwsza metoda polega na określeniu tylko wartości danych, które mają zostać wstawione, bez nazw kolumn.

Składnia:

WSTAW DO WARTOŚCI nazwa_tabeli (wartość1, wartość2, wartość3,...); nazwa_tabeli: nazwa tabeli. wartość1, wartość2,.. : wartości pierwszej kolumny, drugiej kolumny,... dla nowego rekordu

  1. Nazwy kolumn i wartości: Druga metoda określa nazwy kolumn i wartości wierszy do wstawienia:

Składnia:

INSERT INTO nazwa_tabeli (kolumna1, kolumna2, kolumna3,..) WARTOŚCI (wartość1, wartość2, wartość3,...); nazwa_tabeli: nazwa tabeli. kolumna1: nazwa pierwszej kolumny, drugiej kolumny... wartość1, wartość2,.. : wartości pierwszej kolumny, drugiej kolumny,... dla nowego rekordu

Upraszanie:

Metoda 1 ( wstawianie tylko wartości):

WSTAWIĆ WARTOŚCI UCZNIA („5”, „SUROWE”, „BENGAL ZACHODNI”, „8759770477”, „19”);

Wynik :

Po użyciu INSERT INTO SELECT tabela Studentów będzie teraz wyglądać następująco:

ROLL_NO NAZWA ADRES TELEFON Wiek
1 Baran Delhi 9455123451 18
2 RAMESZ GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 PEWNY Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESZ GURGAON 9562431543 18
5 SZORSTKI BENGAL ZACHODNI 8759770477 19

Metoda 2 ( wstawianie wartości tylko do określonych kolumn):

WSTAW DO Studenta (ROLL_NO, IMIĘ, WIEK) WARTOŚCI („5”, „PRATIK”, „19”);

Wynik :

Tabela Studentów będzie teraz wyglądać następująco:

ROLL_NO NAZWA ADRES TELEFON Wiek
1 Baran Delhi 9455123451 18
2 RAMESZ GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 PEWNY Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESZ GURGAON 9562431543 18
5 PRATIK zero zero 19

Należy pamiętać, że kolumny, dla których nie określono żadnych wartości, mają ustawioną wartość null.

Użycie SELECT w instrukcji INSERT INTO

Możesz użyć instrukcji MySQL INSERT SELECT, aby skopiować wiersze z jednej tabeli i wstawić je do innej.

Użycie tej instrukcji jest podobne do użycia INSERT INTO. Różnica polega na tym, że instrukcja SELECT służy do wybierania danych z innej tabeli. Poniżej znajdują się różne sposoby użycia INSERT INTO SELECT:

  • Wstaw wszystkie kolumny tabeli: Możesz skopiować wszystkie dane z tabeli i wkleić je do innej tabeli.

Składnia:

WSTAW DO pierwszej_tabeli WYBIERZ * Z drugiej_tabeli; pierwsza_tabela: nazwa pierwszej tabeli. druga_tabela: nazwa drugiej tabeli.

Użyliśmy instrukcji SELECT do skopiowania danych z jednej tabeli i instrukcji INSERT INTO do wstawienia ich do drugiej.

  • Wstawianie poszczególnych kolumn tabeli. Możesz skopiować tylko te kolumny tabeli, które chcesz wkleić do innej tabeli.

Składnia:

WSTAW DO pierwszej_tabeli (nazwy_kolumn1) WYBIERZ nazwy_kolumn2 Z drugiej_tabeli; pierwsza_tabela: nazwa pierwszej tabeli. druga_tabela: nazwa drugiej tabeli. col_names1: nazwy kolumn oddzielonych przecinkami(,) dla tabeli 1. col_names2: nazwy kolumn oddzielonych przecinkami(,) dla tabeli 2.

Użyliśmy instrukcji SELECT do skopiowania danych tylko z wybranych kolumn drugiej tabeli oraz instrukcji MySQL INSERT INTO SELECT do wstawienia ich do pierwszej tabeli.

  • Kopiowanie określonych wierszy z tabeli. Możesz skopiować określone wiersze z tabeli, aby później wkleić je do innej tabeli, używając klauzuli WHERE z klauzulą ​​SELECT. W takim przypadku należy zastosować odpowiedni warunek w WHERE.

Składnia:

Tabela 2: Student boczny

ROLL_NO NAZWA ADRES TELEFON Wiek
7 SOUVIK DUM DUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 JAKIŚ ROHTAK 9687543210 20

Upraszanie:

Metoda 1 ( wstaw wszystkie wiersze i kolumny):

INSERT INTO Student WYBIERZ * Z lateralStudent;

Wynik :

To zapytanie wstawi wszystkie dane z tabeli lateralStudent do tabeli Student. Po użyciu SQL INSERT INTO SELECT tabela Studenta będzie wyglądać następująco:

ROLL_NO NAZWA ADRES TELEFON Wiek
1 Baran Delhi 9455123451 18
2 RAMESZ GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 PEWNY Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESZ GURGAON 9562431543 18
7 SOUVIK DUM DUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 JAKIŚ ROHTAK 9687543210 20

Metoda 2 ( wstawianie poszczególnych kolumn):

INSERT INTO Student(ROLL_NO,IMIĘ,Wiek) WYBIERZ ROLL_NO,NAZWISKO,Wiek Z lateralStudent;

Wynik :

To zapytanie wstawi dane z kolumn ROLL_NO, NAME i Age tabeli lateralStudent do tabeli Student. Pozostałe kolumny tabeli Student zostaną ustawione na null . Po użyciu SQL INSERT SELECT tabela będzie wyglądać następująco:

ROLL_NO NAZWA ADRES TELEFON Wiek
1 Baran Delhi 9455123451 18
2 RAMESZ GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 PEWNY Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESZ GURGAON 9562431543 18
7 SOUVIK Zero zero 18
8 NIRAJ Zero zero 19
9 JAKIŚ Zero zero 20
  • Wybieranie określonych wierszy do wstawienia:

Wynik :

To zapytanie wybierze tylko pierwszy wiersz z tabeli lateralStudent do wstawienia do tabeli Student. Po użyciu INSERT SELECT tabela będzie wyglądać następująco.

Oprócz omówionej wcześniej instrukcji SELECT język manipulacji danymi (DML) zawiera trzy inne instrukcje: INSERT, UPDATE i DELETE. Podobnie jak instrukcja SELECT, te trzy instrukcje działają na tabelach lub widokach. W tym artykule omówiono instrukcję INSERT, a pozostałe dwie instrukcje omówiono w następnym artykule.

WSTAW oświadczenie wstawia wiersze (lub części wierszy) do tabeli. Istnieją dwie różne formy tej instrukcji:

WSTAW nazwę_karty [(lista_kolumn)] WARTOŚCI DOMYŚLNE | WARTOŚCI ((DOMYŚLNE | NULL | wyrażenie ) [ ,...n]) INSERT INTO nazwa_zakładki | nazwa_widoku [(lista_kolumn)] (instrukcja_wybierz | instrukcja_wykonania) Konwencje składni

Pierwsza forma instrukcji pozwala na wstawienie do tabeli jednego wiersza (lub jego części). Druga forma instrukcji INSERT umożliwia wstawienie do tabeli zestawu wyników instrukcji SELECT lub procedury składowanej wykonywanej za pomocą instrukcji EXECUTE. Procedura składowana musi zwracać dane, które mają zostać wstawione do tabeli. W przypadku użycia instrukcji INSERT instrukcja SELECT może wybrać wartości z innej lub tej samej tabeli, do której wstawiane są dane, o ile typy danych odpowiednich kolumn są zgodne.

W przypadku obu formularzy typ danych każdej wstawionej wartości musi być zgodny z typem danych odpowiedniej kolumny tabeli. Wszystkie dane łańcuchowe i tymczasowe muszą być ujęte w cudzysłów; Wartości numeryczne nie muszą być ujęte w cudzysłów.

Wstawianie pojedynczego wiersza

W przypadku obu form instrukcji INSERT jawne określenie listy kolumn jest opcjonalne. Niewyświetlenie kolumn jest równoznaczne z określeniem wszystkich kolumn w tabeli.

Parametr WARTOŚCI DOMYŚLNE wstawia wartości domyślne dla wszystkich kolumn. Kolumny z typem danych TIMESTAMP lub właściwością IDENTITY wstawiane są domyślnie z wartościami, które system automatycznie generuje. W przypadku kolumn innych typów danych wstawiana jest odpowiednia wartość domyślna różna od null, jeśli jest dostępna, lub NULL w przeciwnym razie. Jeśli kolumna nie dopuszcza wartości null i nie ma zdefiniowanej wartości domyślnej, instrukcja INSERT nie powiedzie się i zostanie wyświetlony komunikat.

Poniższy przykład wstawia wiersze do tabeli Pracownik w bazie danych SampleDb, demonstrując użycie instrukcji INSERT w celu wstawienia niewielkiej ilości danych do bazy danych:

UŻYJ próbkiDb; WSTAWIĆ WARTOŚCI PRACOWNIKA (34990, „Andrey”, „Batonov”, „d1”); WSTAWIĆ WARTOŚCI PRACOWNIKA (38640, „Aleksiej”, „Wasin”, „d3”);

Istnieją dwa różne sposoby wstawiania wartości do nowego wiersza. Instrukcja INSERT w poniższym przykładzie wyraźnie używa słowa kluczowego NULL i wstawia wartość NULL do odpowiedniej kolumny:

UŻYJ próbkiDb; WSTAWIĆ WARTOŚCI PRACOWNIKA (34991, „Andrey”, „Batonov”, NULL);

Aby wstawić wartości do niektórych (ale nie wszystkich) kolumn tabeli, zwykle trzeba jawnie określić te kolumny. Nieokreślone kolumny muszą albo dopuszczać wartości NULL, albo mieć zdefiniowaną wartość domyślną.

UŻYJ próbkiDb; WSTAW DO Pracownika (Id, Imię, Nazwisko) WARTOŚCI (34992, "Andrey", "Batonov");

Poprzednie dwa przykłady są równoważne. W tabeli Employee jedyną kolumną dopuszczającą wartości NULL jest kolumna DepartmentNumber, a wszystkie pozostałe kolumny zostały wyłączone przez klauzulę NOT NULL w instrukcji CREATE TABLE.

Kolejność wartości w Oferta WARTOŚCI Instrukcje INSERT mogą różnić się od kolejności określonej w instrukcji CREATE TABLE. W takim przypadku ich kolejność musi być zgodna z kolejnością, w jakiej odpowiednie kolumny są wymienione na liście kolumn. Poniżej przykład wstawienia danych w innej kolejności niż oryginalna:

UŻYJ próbkiDb; WSTAW DO Pracownika (Numer Działu, Nazwisko, Identyfikator, Imię) WARTOŚCI („d1”, „Batonov”, 34993, „Andrey”);

Wstawianie wielu wierszy

Druga forma instrukcji INSERT wstawia do tabeli jeden lub więcej wierszy wybranych w podzapytaniu. Poniższy przykład pokazuje, jak wstawić wiersze do tabeli przy użyciu drugiej formy instrukcji INSERT. W takim przypadku wykonywane jest zapytanie o numery i nazwy wydziałów znajdujących się w Moskwie, a wynikowy zestaw wyników jest ładowany do utworzonej wcześniej nowej tabeli.

Nowa tabela „MoskwaDepartment” utworzona w powyższym przykładzie zawiera te same kolumny, co istniejąca tabela „Departament”, z wyjątkiem brakującej kolumny „Lokalizacja”. Podzapytanie w instrukcji INSERT wybiera wszystkie wiersze tabeli Dział, dla których kolumna Lokalizacja ma wartość „Moskwa”, a następnie wstawiane są do nowej tabeli utworzonej na początku zapytania.

Poniższy przykład pokazuje inny sposób wstawiania wierszy do tabeli przy użyciu drugiej formy instrukcji INSERT. W tym przypadku wykonywane jest zapytanie o wybranie numerów personelu, numerów projektów i dat rozpoczęcia projektów dla wszystkich pracowników na stanowisku „Kierownik”, którzy pracują nad projektem p2, a następnie wczytanie powstałego zbioru wyników do nowej tabeli utworzonej na początku Zapytanie:

UŻYJ próbkiDb; UTWÓRZ TABELĘ ManagerTeam(EmpId INT NIE NULL, ProjectNumber CHAR (4) NIE NULL, EnterDate DATE); WSTAW DO ManagerTeam (EmpId, ProjectNumber, EnterDate) WYBIERZ EmpId, ProjectNumber, EnterDate Z Works_on GDZIE Job = "Manager";

Przed wstawieniem wierszy za pomocą instrukcji INSERT tabele MoskwaDepartment i ManagerTeam (w powyższych przykładach) były puste. Jeżeli tabela już istniała i zawierała wiersze z danymi, to dodawane byłyby do niej nowe wiersze.

W poprzednich sekcjach przyglądaliśmy się pracy związanej z pobieraniem danych z wcześniej utworzonych tabel. Teraz nadszedł czas, aby dowiedzieć się, jak możemy tworzyć/usuwać tabele, dodawać nowe rekordy i usuwać stare. W tym celu w SQL-a Istnieją operatory takie jak: TWORZYĆ- tworzy tabelę, ZMIENIAĆ- zmienia strukturę tabeli, UPUSZCZAĆ- usuwa tabelę lub pole, WSTAWIĆ- dodaje dane do tabeli. Zaznajomienie się z tą grupą operatorów zacznijmy od operatora WSTAWIĆ.

1. Dodawanie całych linii

Jak sama nazwa wskazuje, operator WSTAWIĆ służy do wstawiania (dołączania) wierszy do tabeli bazy danych. Dodawanie można wykonać na kilka sposobów:

  • - dodaj jedną pełną linię
  • - dodaj część linii
  • - dodaj wyniki zapytania.

Aby więc dodać nowy wiersz do tabeli, musimy podać nazwę tabeli, wyświetlić nazwy kolumn i określić wartość dla każdej kolumny za pomocą konstrukcji WŁÓŻ W nazwa_tabeli (pole1, pole2 ...) WARTOŚCI (wartość1, wartość2...). Spójrzmy na przykład.

WSTAWIĆ WARTOŚCI Sprzedawców (identyfikator, adres, miasto, nazwa_sprzedawcy, kraj).(„6”, „1st Street”, „Los Angeles”, „Harry Monroe”, „USA”)

Możesz także zmienić kolejność nazw kolumn, ale jednocześnie musisz zmienić kolejność wartości w parametrze WARTOŚCI.

2. Dodanie części linii

W poprzednim przykładzie podczas korzystania z operatora WSTAWIĆ wyraźnie zaznaczyliśmy nazwy kolumn tabeli. Stosując tę ​​składnię, możemy pominąć niektóre kolumny. Oznacza to, że dla niektórych kolumn wprowadzasz wartości, a dla innych nie podajesz ich. Na przykład:

WSTAW WARTOŚCI Sprzedających (ID, Miasto, Nazwa Sprzedającego).(„6”, „Los Angeles”, „Harry Monroe”)

W tym przykładzie nie określiliśmy wartości dla dwóch kolumn Adres I Kraj. Możesz wykluczyć niektóre kolumny z zestawienia WŁÓŻ W, jeśli pozwala to na definicję tabeli. W takim przypadku musi być spełniony jeden z warunków: kolumna ta jest zdefiniowana jako ważna ZERO(brak jakiejkolwiek wartości) lub podaną wartość domyślną w definicji tabeli. Oznacza to, że jeśli nie zostanie określona żadna wartość, zostanie użyta wartość domyślna. Jeśli brakuje Ci kolumny w tabeli, która nie pozwala na pojawienie się wartości w jej wierszach ZERO i nie ma zdefiniowanej wartości domyślnej, DBMS wygeneruje komunikat o błędzie i wiersz nie zostanie dodany.

3. Dodanie wybranych danych

W poprzednim przykładzie wstawiliśmy dane do tabel wpisując je ręcznie w zapytaniu. Jednak operatora WŁÓŻ W pozwala nam zautomatyzować ten proces, jeśli chcemy wstawić dane z innej tabeli. W tym celu w SQL istnieje taka konstrukcja jak WSTAW DO... WYBIERZ.... Taka konstrukcja umożliwia jednoczesne wybieranie danych z jednej tabeli i wstawianie ich do drugiej. Załóżmy, że mamy inny stół Sprzedawcy_UE z listą sprzedawców naszych towarów w Europie i musimy je dodać do tabeli ogólnej Sprzedawców. Struktura tych tabel jest taka sama (ta sama liczba kolumn i te same nazwy), ale dane są inne. W tym celu możemy napisać następujące zapytanie:

WSTAW DO Sprzedawców (identyfikator, adres, miasto, nazwa_sprzedawcy, kraj) WYBIERZIdentyfikator, adres, miasto, nazwa_sprzedawcy, kraj OD Sellers_EU

Należy zwrócić uwagę, aby wartości kluczy wewnętrznych nie powtarzały się (pole ID), w przeciwnym razie wystąpi błąd. Operator WYBIERAĆ może również zawierać sugestie GDZIE do filtrowania danych. Należy również zaznaczyć, że SZBD nie zwraca uwagi na nazwy kolumn zawartych w wyciągu WYBIERAĆ, ważna jest dla niej tylko kolejność, w jakiej są ułożone. Dlatego dane w pierwszej określonej kolumnie, która została wybrana z powodu WYBIERAĆ, zostanie w każdym przypadku wypełniona w pierwszej kolumnie tabeli Sprzedawców, określony po operatorze WŁÓŻ W, niezależnie od nazwy pola.

4. Kopiowanie danych z jednej tabeli do drugiej

Często podczas pracy z bazami danych istnieje potrzeba tworzenia kopii dowolnych tabel w celu tworzenia kopii zapasowych lub modyfikacji. Aby utworzyć pełną kopię tabeli, SQL udostępnia osobną instrukcję WYBIERZ W. Na przykład musimy utworzyć kopię tabeli Sprzedawców, musisz napisać żądanie w następujący sposób:

WYBIERZ * DO Sellers_new OD Sprzedających

W przeciwieństwie do poprzedniego projektu WSTAW DO... WYBIERZ... Po dodaniu danych do istniejącej tabeli projekt kopiuje dane do nowej tabeli. Można też powiedzieć, że pierwsza konstrukcja importuje dane, a druga eksportuje. Podczas korzystania z projektu WYBIERZ... DO... Z... Należy wziąć pod uwagę następujące kwestie:

  • - w operatorze możesz używać dowolnych zdań WYBIERAĆ, Jak na przykład GRUPUJ WEDŁUG I MAJĄCY
  • - możesz użyć łączenia, aby dodać dane z wielu tabel
  • - dane można dodać tylko do jednej tabeli, niezależnie od tego, z ilu tabel zostały pobrane.