MySQL INSERT INTO Query: Jak dodać wiersz w tabeli (przykład)
⚡ Inteligentne podsumowanie
MySQL Zapytanie INSERT INTO dodaje nowe wiersze do tabeli, jawnie nazywając kolumny docelowe lub podając wartość dla każdej kolumny. Prawidłowe użycie cudzysłowów w ciągach znaków, liczbach i datach decyduje o tym, czy zapisane dane pozostaną nienaruszone.

Co to jest INSERT INTO?
WŁÓŻ W Służy do przechowywania danych w tabelach. Polecenie INSERT tworzy nowy wiersz w tabeli, w którym przechowywane są dane. Dane są zazwyczaj dostarczane przez programy aplikacyjne działające na bazie 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”.
Wstawianie wielu wierszy na raz
Pojedyncze polecenie INSERT może zawierać kilka wierszy. Każdy zestaw wartości należy oddzielić przecinkiem. Jedno polecenie jest szybsze niż wiele, ponieważ indeks aktualizuje się tylko raz.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Przykład zapytania INSERT INTO
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 | Drzeworyt | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Mężczyzna | Drzeworyt | 0987636553 | ||
| Howarda Wolowitza | 24/08/1981 | Mężczyzna | Park Południowy | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Wstawmy dane wiersz po wierszu, zaczynając od Leonarda Hofstadtera. Numer kontaktowy potraktujemy jako typ danych liczbowych i nie będziemy go ujmować w pojedyncze cudzysłowy.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Wykonanie powyższego skryptu spowoduje usunięcie 0 z numeru kontaktowego Leonarda, ponieważ wartość jest traktowana jako liczba, a zero na początku nie ma znaczenia.
Aby uniknąć takich problemów, wartość musi być ujęta w pojedyncze cudzysłowy, jak pokazano poniżej.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Wskazówka: Numery telefonów, kody pocztowe i podobne identyfikatory przechowuj w kolumnie tekstowej, takiej jak VARCHAR. Kolumny numeryczne nie mogą zawierać zera na początku.
Zmiana kolejności kolumn
Zmiana kolejności kolumn nie ma wpływu na zapytanie INSERT MySQLpod warunkiem, że prawidłowe wartości zostały przypisane do prawidłowych kolumn. Poniższe zapytanie ilustruje ten 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 wstawia wartości NULL do kolumn, które zostały pominięte w zapytaniu INSERT.
Wstawmy teraz rekord Leslie z podaną datą urodzenia. Wartość daty musi 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','Male','Woodcrest', '0987636553');
Pomijanie listy kolumn
Wszystkie powyższe zapytania nadawały nazwy kolumnom i mapowały je na wartości. Jeśli podajemy wartości dla WSZYSTKICH kolumn w tabeli, lista kolumn może zostać pominięta w MySQL wstaw zapytanie.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Skorzystajmy teraz z SELECT oświadczenie aby wyświetlić wszystkie wiersze w tabeli członków.
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 w numerze kontaktowym Leonarda Hofstadtera usunięto wiodące zero, dokładnie tak, jak przewidywano. Podane liczby je zachowują.
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;
Teraz utworzymy tabelę fikcyjną dla kategorii filmów o nazwie „categories_archive”. Poniższy skrypt 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.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Aby skrypt działał, struktury tabel muszą być takie same. Bardziej rozbudowany skrypt mapuje nazwy kolumn w tabeli docelowej na nazwy w tabeli zawierającej dane, jak pokazano poniżej.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Wykonanie poniższego zapytania SELECT daje następujące wyniki.
SELECT * FROM `categories_archive`;
| 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 z PHP. Wykonuje polecenia Insert, Select, Update i Delete w ten sam sposób i 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.
- „$db_handle” to łącze połączenia z serwerem zwrócone przez mysqli_connect.
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); }
