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

Obsah:

Anonim

Co je INSERT INTO?

INSERT INTO slouží k ukládání dat v tabulkách. 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 příkazu INSERT INTO MySQL:

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

TADY

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

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

  • Řetězcové datové typy - všechny řetězcové hodnoty by měly být uzavřeny v jednoduchých uvozovkách.
  • Číselné datové typy - všechny číselné hodnoty by měly být dodávány přímo, aniž by byly uzavřeny do jednoduchých nebo dvojitých uvozovek.
  • Datové typy data - uzavřete hodnoty data 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žský Woodcrest 0845738767
Sheldon Cooper mužský Woodcrest 0976736763
Rajesh Koothrappali mužský Fairview 0938867763
Leslie Winkle 14/02/1984 mužský 0987636553
Howard Wolowitz 24/08/1981 mužský South Park PO Box 4563 0987786553 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.

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 toto číslo neuzavřeme do jednoduchých uvozovek.

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

Provedením výše uvedeného skriptu klesne 0 z Leonardova kontaktního čísla. Důvodem je, že s hodnotou bude zacházeno jako s číselnou hodnotou a nula (0) na začátku bude zrušena, protože není významná.

Aby se předešlo těmto problémům, musí být hodnota uvedena 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 zrušena nula (0)

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

Dotaz zobrazený níže ukazuje 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 datum narození. Ve výchozím nastavení MySQL vloží hodnoty NULL do sloupců, které jsou v dotazu INSERT vynechány.

Vložme nyní záznam pro Leslie, do kterého je zadáno datum narození. Hodnota data by měla být uzavřena do jednoduchých uvozovek 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 určily sloupce a namapovaly je na hodnoty v příkazu MySQL insert. Pokud dodáváme hodnoty pro VŠECHNY sloupce v tabulce, můžeme sloupce z vloženého dotazu MySQL vynechat.

Příklad:-

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

Pojďme nyní pomocí příkazu SELECT zobrazit všechny řádky v členské tabulce.

SELECT * FROM `members`; 
členské číslo celá_jména Rod datum narození fyzická adresa postal_ address Kontaktní_číslo e-mailem
1 Janet Jones ženský 21-07-1980 Pozemek první ulice č. 4 Soukromá taška 0759 253 542 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
2 Janet Smith Jones ženský 23-06-1980 Melrose 123 NULA NULA Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
3 Robert Phil mužský 12.7.1989 3. ulice 34 NULA 12345 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.
4 Gloria Williams ženský 14-02-1984 2. ulice 23 NULA NULA NULA
5 Leonard Hofstadter mužský NULA Woodcrest NULA 845738767 NULA
6 Sheldon Cooper mužský NULA Woodcrest NULA 976736763 NULA
7 Rajesh Koothrappali mužský NULA Woodcrest NULA 938867763 NULA
8 Leslie Winkle mužský 14-02-1984 Woodcrest NULA 987636553 NULA
9 Howard Wolowitz mužský 24-08-1981 SouthPark PO Box 4563 987786553 Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.

Všimněte si, že kontaktní číslo Leonarda Hofstadtera kleslo na nulu (0) z kontaktního čísla. Ostatní kontaktní čísla na začátku nezrušila nulu (0).

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; 

Pojďme se nyní podívat na praktický příklad. Pro demonstrační účely vytvoříme fiktivní tabulku pro kategorie filmů. Zavoláme novou tabulku kategorií category_archive. Níže uvedený skript vytvoří tabulku.

CREATE TABLE `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` remarks` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`)) 

Proveďte výše uvedený skript a vytvořte tabulku.

Vložme nyní všechny řádky z tabulky kategorií do tabulky archivů kategorií. Skript zobrazený níže nám k tomu pomáhá.

INSERT INTO `category_archive` SELECT * FROM` category`; 

Provedení výše uvedeného skriptu vloží všechny řádky z tabulky kategorií do tabulky archivů kategorií. Všimněte si, že struktury tabulky budou muset být stejné, aby skript fungoval. Robustnější skript je ten, který mapuje názvy sloupců v tabulce vložení na ty v tabulce obsahující data.

Níže uvedený dotaz ukazuje jeho použití.

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

Provádění dotazu SELECT

VYBERTE * Z `kategorie_archiv`

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

id_kategorie Název Kategorie poznámky
1 Komedie Filmy s humorem
2 Romantický Milostné příběhy
3 Epické Příběh starých filmů
4 Hrůza NULA
5 Sci-fi NULA
6 Thriller NULA
7 Akce NULA
8 Romantická komedie NULA
9 Kreslené NULA
10 Kreslené NULA

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

Funkce mysqli_query se používá k provádění dotazů SQL.

Funkci 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 connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}

souhrn

  • 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 do jednoduchých uvozovek.
  • Číselné hodnoty není nutné uvádět v uvozovkách.
  • Příkaz INSERT lze také použít k vložení dat z jedné tabulky do druhé.