Wprowadzenie do wstawiania w MySQL

Głównym celem systemu baz danych jest przechowywanie danych w tabelach. Aby zdefiniować funkcjonalność bazy danych, mamy różne rodzaje poleceń SQL. W tym temacie poznamy Wstaw w MySQL.

Polecenia SQL można podzielić na następujące:

  • DDL (język definicji danych)
  • DML (język manipulacji danymi)
  • DQL (język zapytań danych)
  • DCL (język kontroli danych)
  • TCL (język kontroli transakcji)

W tym artykule skupimy się głównie na DML. Jak widzimy nazwę Język manipulacji danymi, więc po utworzeniu tabeli / bazy danych, aby coś manipulować, potrzebujemy poleceń DML. Zalety korzystania z tych poleceń polegają na tym, że w przypadku wystąpienia nieprawidłowych zmian możemy je przywrócić / cofnąć.

Oto polecenia w DML:

1. WSTAW: Służy do wstawiania nowych wierszy do tabeli.

INSERT into employee
Values(101, 'abcd');

2. USUŃ: Służy do usuwania pojedynczego wiersza lub całych rekordów w tabeli.

DELETE TABLE employee;

3. AKTUALIZACJA: Służy do aktualizacji istniejących rekordów w tabeli.

UPDATE employee
SET col1 = new_col
WHERE condition;

Składnia polecenia Insert w MySQL

Możemy napisać instrukcję INSERT INTO na dwa następujące sposoby.

Sposób nr 1

INSERT INTO table_name
VALUES (value1, value2, ….);

Sposób nr 2

INSERT INTO table_name (column1, column2, …….)
VALUES (value1, value2, ….);

  • INSERT INTO nazwa_tabeli to polecenie, które dodaje nowy wiersz do tabeli o nazwie `nazwa_tabeli` w bazie danych MySQL.
  • (kolumna_1, kolumna_2, …) to nazwy kolumn, w których zostanie dodany nowy rekord.
  • WARTOŚCI (wartość_1, wartość_2, …) określa wartości, które zostaną dodane do nowego wiersza.

Dodając nowe rekordy, musimy zachować ostrożność przy definiowaniu typów danych podczas tworzenia struktury tabeli.

  • Ciąg: Wszystkie wartości ciągu powinny być ujęte w pojedyncze cudzysłowy.
  • Numeryczne: Wartości liczbowych nie należy umieszczać w pojedynczym lub podwójnym cudzysłowie.
  • Data: te typy danych powinny znajdować się w jednym cudzysłowie w formacie „RRRR-MM-DD”.

Rozważmy, że istnieje tabela „pracowników” składająca się z następujących atrybutów:

Emp_id Emp_name Telefon E-mail Departament Menedżer Miasto
1001Vinay9876543219CSRSudhirBangalore
1002Raaj9764527848TOStephenHyderabad
1003Sakti9567382784AutomobilowyVedBhubaneswar

Jeśli dodajemy wartości dla wszystkich kolumn tabeli, nie musimy określać nazw kolumn w zapytaniu, ale musimy upewnić się, że nasz nowy rekord powinien być zgodny z sekwencją kolumny zdefiniowaną w tabeli.

INSERT INTO employee
VALUES (1004, 'Ravi', 9856478398, ' ', 'marketing', 'shiv', 'kolkata');

Jeśli nie mamy wszystkich wartości kolumn i wstawimy niektóre z nich, musimy podać nazwy kolumn w zapytaniu.

INSERT INTO employee (emp_id, emp_name, phone, email, manager)
VALUES (1005, 'sam', 9856478398, ' ', 'shivankar');

Implementacja polecenia Insert w MySQL

Rozważmy, że mamy następujące listy nowych rekordów, które są potrzebne, aby dodać do tabeli bazy danych STUDENT.

Roll_noImięNazwiskoStandardTelefonOdsetekMiasto
1SandeepKumar10987645672689, 33Cuttack
2)Shyam976Bhubaneswar
3)SaktiNaik646376577676
4Sid89864876986Kalkuta
5VinayKumar1092

Wstawimy te wiersze jeden po drugim do bazy danych.

  • Zacznijmy od Sandeepa. Tutaj „Roll_no”, „Standard”, „Telefon” i „Procent” są polami numerycznymi, więc wartości w tej kolumnie zostaną wstawione bez cudzysłowów.

INSERT INTO student
VALUES (1, 'Sandeep', 'Kumar', 10, 9876456726, 89.33, 'Cuttack');

Uwaga: Ponieważ mamy wartości wszystkich kolumn tabeli ucznia, nie musimy określać nazwy kolumny podczas używania polecenia INSERT. Ale musimy upewnić się, że nasza wartość powinna być zgodna z kolejnością kolumn w tabeli.

  • W przypadku rekordu Shyam widać, że brakuje wielu wartości. Więc tutaj musimy podać nazwy kolumn, w których chcemy wstawić wartości.

INSERT INTO student (Roll_no, First_name, Standard, Percentage, City)
VALUES (2, 'Shyam', 9, 76, 'Bhubaneswar');

Uwaga: w tym rekordzie nie mamy wartości każdej kolumny. Dlatego musimy określić wszystkie nazwy kolumn, w których chcemy wstawić nasze wartości, i w kolejności tych nazw kolumn również musimy podać wartości.

INSERT INTO student (Roll_no, First_name, Last_name, Phone, Percentage)
VALUES (3, 'Sakti', 'naik', 6463765776, 76);

INSERT INTO student (Roll_no, First_name, Standard, Phone, City)
VALUES (4, 'Sid', 8, 9864876986, 'Kolkata');

INSERT INTO student (Roll_no, First_name, Last_name, standard, Percentage)
VALUES (5, 'Vinay', 'Kumar', 10, 92);

Zmiana kolejności kolumn i wartości nie będzie miała wpływu na zapytanie INSERT, ponieważ właściwej wartości nie można zmapować do prawej kolumny. Dlatego mogą pojawić się problemy, takie jak wstawienie wartości liczbowej do łańcucha lub odwrotnie.

We wszystkich powyższych zapytaniach brakuje tak wielu pól, jak Nazwisko, Telefon, Miasto. W takich przypadkach MySQL wstawi domyślnie wartości NULL do tych kolumn, które pominęliśmy w zapytaniach.

Wstawianie do tabeli z innej tabeli

Jeśli istnieją 2 podobne tabele i chcemy bezpośrednio wstawić dane z table_1 do table_2, aby uniknąć pracy ręcznej, możemy również użyć innego typu zapytania INSERT. W takim przypadku musimy użyć polecenia SELECT z poleceniem INSERT. Zasadniczo polecenie SELECT znajduje się pod DQL (Data Query Language), który jest używany do pobierania / pobierania danych. Polecenia select można także używać z wieloma typami klauzul.

Podstawowa składnia wstawiania rekordów do jednej tabeli z drugiej jest następująca:

INSERT INTO table_1 SELECT * FROM table_2;

Przykład

Zobaczmy przykład podany poniżej:

1. Tabela zamówień

Nr zamówieniaDział zamówieńNazwa klientaContact_noIlośćMiejsce
8465637MeblePiotr86598767661000Delhi
9473636OzdobyAlex9863769898800Bombaj

2. Tabela_archiwum zamówień

Nr zamówieniaDział zamówieńNazwa klientaContact_noIlośćMiejsce

Tutaj mamy 2 tabele o nazwie Order i Order_archive. Jeśli przeniesiemy wszystkie rekordy z tabeli Order do Order_archive, następujący kod może wykonać zadanie:

INSERT INTO Order_archive SELECT * FROM Order;

Jeśli chcemy przenieść określone kolumny z tabeli Order do Order_archive, to:

INSERT INTO Order_archive (Order_no, Order_department, Contact_no, Quantity)
SELECT Order_no, Order_department, Contact_no, Quantity FROM Order;

Wniosek

Polecenie Wstaw jest bardzo przydatne, ponieważ chodzi o grę od momentu utworzenia stołu do każdorazowego dodania kolejnych rekordów do istniejącego stołu. Możemy podsumować następujące punkty z tego artykułu:

  • Polecenie INSERT służy do dodawania nowych danych do tabeli.
  • Data i wartość ciągu powinny znajdować się w jednym cudzysłowie.
  • Wartość liczbowa nie powinna być w cudzysłowie.
  • Podczas wstawiania rekordów w określonych kolumnach nazwa i wartość kolumny powinny być odwzorowane w tej samej kolejności.
  • Tego polecenia można także użyć do wstawienia rekordów z jednej tabeli do drugiej.

Polecane artykuły

Jest to przewodnik po wstawianiu do MySQL. Tutaj omawiamy implementację polecenia Insert w MySQL wraz z odpowiednimi przykładami i składnią. Możesz także spojrzeć na następujący artykuł.

  1. Co to jest schemat MySQL?
  2. Funkcje MySQL String
  3. Co to jest MySQL?
  4. Jak zainstalować MySQL
  5. Przykłady implementacji INSERT w Oracle