MySQL INSERT INTO Query: Jak přidat řádek do tabulky (příklad)

Co je INSERT INTO?

VLOŽTE DO slouží k ukládání dat do tabulek. Příkaz INSERT vytvoří v tabulce nový řádek pro uložení dat. Data jsou obvykle dodávána aplikačními programy, které běží nad databází.

Základní syntaxe

Podívejme se na základní syntaxi INSERT INTO MySQL příkaz:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

ZDE

  • INSERT INTO `název_tabulky` je příkaz, který říká MySQL serveru přidat nový řádek do tabulky s názvem `název_tabulky.`
  • (sloupec_1, sloupec_2,…) určuje sloupce, které mají být aktualizovány v novém MySQL řádek
  • VALUES (value_1, value_2,…) určuje hodnoty, které mají být přidány do nového řádku

Při zadávání hodnot dat, které mají být vloženy do nové tabulky, je třeba vzít v úvahu následující:

  • Datové typy řetězce – všechny hodnoty řetězce by měly být uzavřeny v jednoduchých uvozovkách.
  • Číselné datové typy – všechny číselné hodnoty by měly být zadány přímo, aniž by byly uzavřeny do jednoduchých nebo dvojitých uvozovek.
  • Datové typy data – hodnoty data uzavřete do jednoduchých uvozovek ve formátu 'RRRR-MM-DD'.


Příklad:

Předpokládejme, že máme následující seznam nových členů knihovny, které je třeba přidat do databáze.

Celé jméno Datum narození rod Fyzická adresa Poštovní adresa Kontaktní číslo Emailová adresa
Leonard Hofstadter Muž Woodcrest 0845738767
Sheldon Cooper Muž Woodcrest 0976736763
Rajesh Koothrappali Muž Fairview 0938867763
Leslie Winkle 14/02/1984 Muž 0987636553
Howard Wolowitz 24/08/1981 Muž South Park PO Box 4563 0987786553 lwolowitz@email.me

Pojďme VLOŽIT data jeden po druhém. Začneme Leonardem Hofstadterem. S kontaktním číslem budeme zacházet jako s číselným datovým typem a nebudeme je uzavírat do jednoduchých uvozovek.

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);

Po provedení výše uvedeného skriptu se z Leonardova kontaktního čísla odstraní nula. Je to proto, že hodnota bude považována za číselnou hodnotu a nula (0) na začátku je vypuštěna, protože není významná.

Aby se předešlo takovým problémům, musí být hodnota uzavřena v jednoduchých uvozovkách, jak je uvedeno níže –

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`)  VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');

Ve výše uvedeném případě nebude nula (0) vypuštěna


Změna pořadí sloupců nemá žádný vliv na dotaz INSERT v MySQL pokud byly správné hodnoty mapovány do správných sloupců.

Níže uvedený dotaz demonstruje výše uvedený bod.

INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`)  VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');

Výše uvedené dotazy přeskočily sloupec data narození. Ve výchozím stavu, MySQL vloží hodnoty NULL do sloupců, které jsou v dotazu INSERT vynechány.

Nyní vložíme záznam pro Leslie, který má zadané datum narození. Hodnota data by měla být uzavřena v jednoduchých uvozovkách ve formátu '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');

Všechny výše uvedené dotazy specifikovaly sloupce a mapovaly je na hodnoty v MySQL vložit příkaz. Pokud dodáváme hodnoty pro VŠECHNY sloupce v tabulce, můžeme sloupce z tabulky vynechat MySQL vložit dotaz.

Příklad:-

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

Pojďme nyní použít příkaz SELECT pro zobrazení všech řádků v tabulce členů.

SELECT * FROM `members`;
členské číslo celá_ jména rod datum narození fyzická adresa poštovní_ adresa číslo_kontaktu e-mail
1 Janet Jonesová Žena 21-07-1980 První ulice pozemek č. 4 Soukromá taška 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jonesová Žena 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Muž 12-07-1989 3. ulice 34 NULL 12345 rm@tstreet.com
4 Gloria Williamsová Žena 14-02-1984 2. ulice 23 NULL NULL NULL
5 Leonard Hofstadter Muž NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Muž NULL Woodcrest NULL 0976736763 NULL
7 Rajesh Koothrappali Muž NULL Woodcrest NULL 0938867763 NULL
8 Leslie Winkle Muž 14-02-1984 Woodcrest NULL 0987636553 NULL
9 Howard Wolowitz Muž 24-08-1981 South Park PO Box 4563 0987786553 lwolowitz@email.me

Všimněte si, že u kontaktního čísla Leonarda Hofstadtera klesla nula (0) z kontaktního čísla. Ostatní kontaktní čísla neklesla na nulu (0) na začátku.

Vkládání do tabulky z jiné tabulky

Příkaz INSERT lze také použít k vložení dat do tabulky z jiné tabulky. Základní syntaxe je uvedena níže.

INSERT INTO table_1 SELECT * FROM table_2;

Podívejme se nyní na praktický příklad. Pro demonstrační účely vytvoříme fiktivní tabulku pro kategorie filmů. Novou tabulku kategorií nazveme category_archive. Skript zobrazený níže vytvoří tabulku.

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`))

Pro vytvoření tabulky spusťte výše uvedený skript.

Vložme nyní všechny řádky z tabulky kategorií do tabulky archivu kategorií. Níže uvedený skript nám k tomu pomáhá.

INSERT INTO `categories_archive` SELECT * FROM `categories`;

Spuštěním výše uvedeného skriptu se vloží všechny řádky z tabulky kategorií do tabulky archivu kategorií. Všimněte si, že struktury tabulek musí být stejné, aby skript fungoval. Robustnější skript je ten, který mapuje názvy sloupců ve vkládací tabulce na ty v tabulce obsahující data.

Dotaz uvedený níže ukazuje jeho použití.

INSERT INTO `categories_archive`(category_id,category_name,remarks)  SELECT category_id,category_name,remarks FROM `categories`;

Provedení dotazu SELECT

SELECT * FROM `categories_archive`

poskytuje následující výsledky uvedené níže.

category_id category_name poznámky
1 Komedie Filmy s humorem
2 Romantický Milostné příběhy
3 Úžasné Příběhové starověké filmy
4 Hrůza NULL
5 Sci-fi NULL
6 Detektivka NULL
7 Akce NULL
8 Romantická komedie NULL
9 Kreslené NULL
10 Kreslené NULL

Příklad PHP: Vložit do MySQL Tabulka

K provedení se používá funkce mysqli_query SQL dotazy.

Funkci SQL insert into table lze použít k provedení následujících typů dotazů:

  • Vložit
  • vybrat
  • Aktualizace
  • vymazat

Má následující syntaxi.

mysqli_query($db_handle,$query);

TADY,

„mysqli_query(…)“ je funkce, která provádí dotazy SQL.

„$query“ je dotaz SQL, který se má provést

„$link_identifier“ je volitelný, lze jej použít k předání odkazu na připojení k serveru

Příklad

$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);
	}
}

Shrnutí

  • Příkaz INSERT se používá k přidání nových dat do tabulky. MySql přidá nový řádek po provedení příkazu.
  • Hodnoty data a řetězce by měly být uzavřeny v jednoduchých uvozovkách.
  • Číselné hodnoty není nutné uzavírat do uvozovek.
  • Příkaz INSERT lze také použít k vložení dat z jedné tabulky do druhé.

Denní zpravodaj Guru99

Začněte svůj den s nejnovějšími a nejdůležitějšími zprávami o umělé inteligenci, které vám přinášíme právě teď.