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.

  • 📥 Podstawowa składnia: INSERT INTO `table_name`(column_1,column_2) VALUES (value_1,value_2) tworzy jeden nowy wiersz w nazwanej tabeli.
  • 🔤 Zasada cytowania: Wartości ciągów znaków i dat wymagają użycia pojedynczych cudzysłowów, wartości liczbowe należy podawać bez cudzysłowów.
  • 0️⃣ Pułapka wiodącego zera: Niepodany w cudzysłowie numer telefonu jest odczytywany jako liczba, więc początkowe zero jest pominięte.
  • 🔀 Kolejność kolumn: Kolejność kolumn w zapytaniu nie ma znaczenia, pod warunkiem że każda wartość jest odwzorowywana na odpowiadającą jej kolumnę.
  • 🕳️. Pominięte kolumny: Kolumny pominięte w poleceniu otrzymują wartość NULL lub swoją zadeklarowaną wartość domyślną.
  • 📑 Od stołu do stołu: INSERT INTO … SELECT kopiuje wiersze między tabelami, gdy struktura kolumn jest wyrównana.

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 E-mail
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);
}

FAQ

MySQL Odrzuca go z błędem duplikatu. Użyj INSERT IGNORE, aby pominąć wiersz bez powiadomienia, lub INSERT … ON DUPLICATE KEY UPDATE, aby zaktualizować istniejący wiersz.

Uruchom SELECT LAST_INSERT_ID() bezpośrednio po wstawieniu lub wywołaj mysqli_insert_id($conn) w PHP. Zwraca to klucz AUTO_INCREMENT wygenerowany dla ostatniego wiersza w Twoim połączeniu.

Nigdy nie łącz danych wejściowych użytkownika z ciągiem zapytania. Używaj przygotowanych instrukcji z powiązanymi parametrami, aby wartości były przesyłane oddzielnie od… SQL i nie można ich wykonywać jako poleceń.

Tak. Asystenci AI zamieniają arkusze kalkulacyjne lub proste opisy w polecenia INSERT i MySQL Workbench Można je uruchomić. Sprawdź kolejność kolumn i ich cytowanie, ponieważ model może odgadnąć schemat.

Najpierw wstaw go do kopii rozwojowej. Wiersze generowane przez sztuczną inteligencję mogą uszkodzić klucze obce, przekroczyć długość kolumn lub utworzyć nieprawidłowe daty. Uruchom partię w transakcji, aby można ją było wycofać.

Podsumuj ten post następująco: