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 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 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.