MySQL INSERT INTO Query: Jak dodać wiersz w tabeli (przykład)
Co to jest INSERT INTO?
WŁÓŻ W służy do przechowywania danych w tabelach. Polecenie INSERT tworzy w tabeli nowy wiersz do przechowywania danych. Dane są zwykle dostarczane przez aplikacje działające w oparciu o bazę danych.
Podstawowa składnia
Przyjrzyjmy się podstawowej składni INSERT INTO MySQL polecenie:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
TUTAJ
- INSERT INTO `nazwa_tabeli` to polecenie, które mówi MySQL serwer, aby dodać nowy wiersz do tabeli o nazwie `nazwa_tabeli.`
- (kolumna_1, kolumna_2,…) określa kolumny, które mają zostać zaktualizowane w nowym MySQL rząd
- 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:
- Typy danych string – wszystkie wartości stringów należy ująć w pojedyncze cudzysłowy.
- Typy danych liczbowych — wszystkie wartości liczbowe należy podawać bezpośrednio, bez ujmowania ich w pojedyncze lub podwójne cudzysłowy.
- Typy danych dat – 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 | Drzeworyt | 0845738767 | |||
Sheldon Cooper | Mężczyzna | Drzeworyt | 0976736763 | |||
Rajesh Koothrappali | Mężczyzna | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Mężczyzna | 0987636553 | |||
Howarda Wolowitza | 24/08/1981 | Mężczyzna | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
WSTAWIMY dane jeden po drugim. Zaczniemy od Leonarda Hofstadtera. Numer kontaktowy potraktujemy jako numeryczny typ danych i nie będziemy go ująć w cudzysłów.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','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 zostanie pominięte, ponieważ nie jest znaczące.
Aby uniknąć takich problemów, wartość należy ująć w pojedynczy cudzysłów, jak pokazano poniżej –
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) 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 MySQL o ile prawidłowe wartości zostały przypisane do właściwych kolumn.
Zapytanie pokazane poniżej ilustruje powyższy punkt.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
W powyższych zapytaniach pominięto kolumnę daty urodzenia. Domyślnie, MySQL wstawi wartości NULL w kolumnach pominiętych 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”.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Wszystkie powyższe zapytania określiły kolumny i zamapowały je na wartości w pliku MySQL wstaw oświadczenie. Jeśli podajemy wartości dla WSZYSTKICH kolumn tabeli, możemy je pominąć w tabeli MySQL wstaw zapytanie.
Przykład:-
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');
Skorzystajmy teraz z SELECT oświadczenie aby wyświetlić wszystkie wiersze w tabeli członka.
SELECT * FROM `members`;
numer członkostwa | pełne nazwy | płeć | Data urodzenia | adres fizyczny | adres pocztowy | numer_kontaktu | |
---|---|---|---|---|---|---|---|
1 | Żaneta Jones | Kobieta | 21-07-1980 | Działka przy ulicy Pierwszej nr 4 | Prywatna torba | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Kobieta | 23-06-1980 | Melroza 123 | NULL | NULL | jj@fstreet.com |
3 | Roberta Fila | Mężczyzna | 12-07-1989 | Trzecia ulica 3 | NULL | 12345 | rm@tstreet.com |
4 | Glorii Williams | Kobieta | 14-02-1984 | Druga ulica 2 | NULL | NULL | NULL |
5 | Leonarda Hofstadtera | Mężczyzna | NULL | Drzeworyt | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Mężczyzna | NULL | Drzeworyt | NULL | 0976736763 | NULL |
7 | Rajesh Koothrappali | Mężczyzna | NULL | Drzeworyt | NULL | 0938867763 | NULL |
8 | Leslie Winkle | Mężczyzna | 14-02-1984 | Drzeworyt | NULL | 0987636553 | NULL |
9 | Howarda Wolowitza | Mężczyzna | 24-08-1981 | Park Południowy | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Zwróć uwagę, że numer kontaktowy Leonarda Hofstadtera usunął zero (0) z numeru kontaktowego. Pozostałe numery kontaktowe nie usunęły zera (0) na początku.
Wstawianie do tabeli z innej tabeli
Polecenie INSERT może być także użyte do wstawienia danych z innej tabeli do tabeli. Podstawowa składnia jest pokazana poniżej.
INSERT INTO table_1 SELECT * FROM table_2;
Przyjrzyjmy się teraz praktycznemu przykładowi. Stworzymy fikcyjną tabelę dla kategorii filmów w celach demonstracyjnych. Nazwiemy nową tabelę kategorii categories_archive. Skrypt pokazany poniżej tworzy tabelę.
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`))
Wykonaj powyższy skrypt, aby utworzyć tabelę.
Wstawmy teraz wszystkie wiersze z tabeli kategorii do tabeli archiwum kategorii. Skrypt pokazany poniżej pomaga nam to osiągnąć.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Wykonanie powyższego skryptu wstawia wszystkie wiersze z tabeli kategorii do tabeli archiwum kategorii. Należy zauważyć, że struktury tabeli muszą być takie same, aby skrypt działał. Bardziej solidnym skryptem jest taki, który mapuje nazwy kolumn w tabeli wstawiania na te w tabeli zawierającej dane.
Zapytanie pokazane poniżej demonstruje jego użycie.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Wykonywanie zapytania SELECT
SELECT * FROM `categories_archive`
daje następujące wyniki pokazane poniżej.
identyfikator_kategorii | CATEGORY_NAME | Uwagi |
---|---|---|
1 | Komedia | Filmy z humorem |
2 | Romantyczny | Historie miłosne |
3 | Epicki | Starożytne filmy fabularne |
4 | Przerażenie | NULL |
5 | Fantastyka naukowa | NULL |
6 | Kryminał | NULL |
7 | Działania | NULL |
8 | Komedia romantyczna | NULL |
9 | Kreskówki | NULL |
10 | Kreskówki | NULL |
Przykład PHP: Wstaw do MySQL Stół
Funkcja mysqli_query służy do wykonywania SQL zapytania.
Funkcji SQL insert into table można używać do wykonywania następujących typów zapytań:
- wstawka
- Wybierz
- Aktualizacja
- usunąć
Ma następującą składnię.
mysqli_query($db_handle,$query);
TUTAJ,
„mysqli_query(…)” to funkcja wykonująca zapytania SQL.
„$query” to zapytanie SQL, które ma zostać wykonane
„$link_identifier” jest opcjonalne, można go użyć do przekazania łącza do połączenia z serwerem
Przykład
$servername = "localhost"; $username = "alex"; $password = "yPXuPT"; $dbname = "afmznf"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$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".'<br>'; } else { echo "Error: " . $sql. "<br>" . mysqli_error($conn); } }
Podsumowanie
- Polecenie INSERT służy do dodawania nowych danych do tabeli. MySql doda nowy wiersz po wykonaniu polecenia.
- Data i wartości ciągu powinny być ujęte w pojedyncze cudzysłowy.
- 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.