Zapytanie MySQL INSERT INTO: Jak dodać wiersz w tabeli (przykład)

Spisie treści:

Anonim

Co to jest INSERT INTO?

INSERT INTO służy do przechowywania danych w tabelach. Polecenie INSERT tworzy nowy wiersz w tabeli do przechowywania danych. Dane są zwykle dostarczane przez aplikacje działające w górnej części bazy danych.

Podstawowa składnia

Spójrzmy na podstawową składnię polecenia INSERT INTO MySQL:

INSERT INTO `nazwa_tabeli` (kolumna_1, kolumna_2,…) VALUES (wartość_1, wartość_2,…);

TUTAJ

  • INSERT INTO `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 do zaktualizowania w nowym wierszu MySQL
  • VALUES (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:

  • Typy danych ciągów - wszystkie wartości ciągów powinny być ujęte w pojedyncze cudzysłowy.
  • Numeryczne typy danych - wszystkie wartości liczbowe należy podawać bezpośrednio, bez umieszczania ich w apostrofach lub cudzysłowach.
  • Typy danych dat - wartości dat należy ująć w pojedyncze cudzysłowy 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
Leonard Hofstadter Męski Woodcrest 0845738767
Sheldon Cooper Męski Woodcrest 0976736763
Rajesh Koothrappali Męski Fairview 0938867763
Leslie Winkle 14/02/1984 Męski 0987636553
Howard Wolowitz 24/08/1981 Męski Park Południowy Box 4563 0987786553 Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.

WSTAWIJmy dane jeden po drugim. Zaczniemy od Leonarda Hofstadtera. Numer kontaktowy będziemy traktować jako numeryczny typ danych i nie będziemy umieszczać numeru w pojedynczych cudzysłowach.

WSTAWIĆ DO `członków` (` pełne_nazwy`, `płeć`,` adres_fizyczny`, `numer_kontaktów`) WARTOŚCI ('Leonard Hofstadter', 'Mężczyzna', 'Woodcrest', 0845738767);

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

Aby uniknąć takich problemów, wartość musi być ujęta w pojedyncze cudzysłowy, jak pokazano poniżej -

WSTAWIĆ DO `członków` (` pełne_nazwy`, `płeć`,` adres_fizyczny`, `numer_kontaktów`) VALUES ('Sheldon Cooper', 'Male', 'Woodcrest', '0976736763'); 

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

Zmiana kolejności kolumn nie ma wpływu na zapytanie INSERT w MySQL, o ile poprawne wartości zostały odwzorowane na poprawne kolumny.

Zapytanie pokazane poniżej demonstruje powyższy punkt.

WSTAWIĆ DO `członków` (` numer_kontaktów`, `płeć`,` pełne_nazwy`, `adres_fizyczny`) VALUES ('0938867763', 'Mężczyzna', 'Rajesh Koothrappali', 'Woodcrest');

Powyższe zapytania pominęły kolumnę z datą urodzenia. Domyślnie MySQL wstawia wartości NULL w kolumnach pominiętych w zapytaniu INSERT.

Wstawmy teraz rekord Leslie, który ma podaną datę urodzenia. Wartość daty powinna być ujęta w pojedyncze cudzysłowy w formacie „RRRR-MM-DD”.

INSERT INTO `Members` (` full_names`, `date_of_birth`,` gender`, `physical_address`,` contact_number`) VALUES ('Leslie Winkle', '1984-02-14', 'Mężczyzna', 'Woodcrest', 0987636553 '); 

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

Przykład:-

INSERT INTO `Members` VALUES (9, 'Howard Wolowitz', 'Male', '1981-08-24',
'SouthPark', 'PO Box 4563', '0987786553', 'lwolowitz [at] email.me') ;

Użyjmy teraz instrukcji SELECT, aby wyświetlić wszystkie wiersze w tabeli elementu członkowskiego.

SELECT * FROM `members`; 
numer_ członkostwa pełne nazwy płeć Data urodzenia adres fizyczny adres pocztowy contct_ number e-mail
1 Janet Jones Płeć żeńska 21-07-1980 Działka nr 4 przy pierwszej ulicy Prywatna torba 0759 253 542, Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.
2 Janet Smith Jones Płeć żeńska 23-06-1980 Melrose 123 ZERO ZERO Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.
3 Robert Phil Męski 12-07-1989 Ul. 3rd Street 34 ZERO 12345 Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.
4 Gloria Williams Płeć żeńska 14-02-1984 2nd Street 23 ZERO ZERO ZERO
5 Leonard Hofstadter Męski ZERO Woodcrest ZERO 845738767 ZERO
6 Sheldon Cooper Męski ZERO Woodcrest ZERO 976736763 ZERO
7 Rajesh Koothrappali Męski ZERO Woodcrest ZERO 938867763 ZERO
8 Leslie Winkle Męski 14-02-1984 Woodcrest ZERO 987636553 ZERO
9 Howard Wolowitz Męski 24-08-1981 Park Południowy Box 4563 987786553 Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.

Zauważ, że numer kontaktowy Leonarda Hofstadtera zmniejszył zero (0) z numeru kontaktowego. Pozostałe numery kontaktowe nie spadły z zera (0) na początku.

Wstawianie do tabeli z innej tabeli

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

INSERT INTO table_1 SELECT * FROM table_2; 

Spójrzmy teraz na praktyczny przykład. Stworzymy zastępczą tabelę dla kategorii filmów do celów demonstracyjnych. Nazwę nową tabelę kategorii category_archive. Poniższy skrypt tworzy tabelę.

TWORZENIE TABELI `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` remarks` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`)) 

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

Wstawmy teraz wszystkie wiersze z tabeli kategorii do tabeli archiwum kategorii. Poniższy skrypt pomaga nam to osiągnąć.

WSTAWIĆ DO `kategorie_archiwum` SELECT * FROM` kategorie`; 

Wykonanie powyższego skryptu powoduje wstawienie wszystkich wierszy z tabeli kategorii do tabeli archiwum kategorii. Zwróć uwagę, że struktury tabel będą musiały być takie same, aby skrypt działał. Bardziej niezawodnym skryptem jest taki, który odwzorowuje nazwy kolumn w tabeli wstawiania na nazwy w tabeli zawierającej dane.

Przedstawione poniżej zapytanie demonstruje jego użycie.

INSERT INTO `category_archive` (id_kategorii, nazwa_kategorii, uwagi) SELECT id_kategorii, nazwa_kategorii, uwagi Z` kategorie`;

Wykonywanie zapytania SELECT

SELECT * FROM „Categories_archive”

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

category_id Nazwa Kategorii uwagi
1 Komedia Filmy z humorem
2 Romantyczny Historie miłosne
3 Epicki Filmy fabularne
4 Przerażenie ZERO
5 Fantastyka naukowa ZERO
6 Kryminał ZERO
7 Akcja ZERO
8 Komedia romantyczna ZERO
9 Bajki ZERO
10 Bajki ZERO

Przykład PHP: wstaw do tabeli MySQL

Funkcja mysqli_query służy do wykonywania zapytań SQL.

Funkcja może służyć do wykonywania następujących typów zapytań;

  • Wstawić
  • Wybierz
  • Aktualizacja
  • kasować

Ma następującą składnię.

mysqli_query($db_handle,$query);

TUTAJ,

"mysqli_query (

…) ”To funkcja, która wykonuje zapytania SQL.

„$ zapytanie” to zapytanie SQL do wykonania

„$ link_identifier” jest opcjonalne, można go użyć do przekazania łącza połączenia z serwerem

Przykład

$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$conn) {die("Connection failed: " . mysqli_connect_error());}$sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')";if (mysqli_query($conn, $sql)) {echo "New record created successfully".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}

Podsumowanie

  • Polecenie INSERT służy do dodawania nowych danych do tabeli. MySql doda nowy wiersz po wykonaniu polecenia.
  • Wartości daty i ciągów znaków należy ująć w pojedyncze cudzysłowy.
  • Wartości liczbowe nie muszą być umieszczane w cudzysłowach.
  • Polecenie INSERT może również służyć do wstawiania danych z jednej tabeli do drugiej.