MySQL INSERT INTO Query: Ako pridať riadok do tabuľky (príklad)

Obsah:

Anonim

Čo je INSERT INTO?

INSERT INTO slúži na ukladanie údajov do tabuliek. Príkaz INSERT vytvorí v tabuľke nový riadok na ukladanie údajov. Dáta sú zvyčajne dodávané aplikačnými programami, ktoré bežia nad databázou.

Základná syntax

Pozrime sa na základnú syntax príkazu INSERT INTO MySQL:

INSERT INTO `table_name` (stĺpec_1, stĺpec_2, ...) HODNOTY (hodnota_1, hodnota_2, ...);

TU

  • INSERT INTO `table_name` je príkaz, ktorý povie serveru MySQL, aby pridal nový riadok do tabuľky s názvom` table_name.`
  • (stĺpec_1, stĺpec_2, ...) určuje stĺpce, ktoré sa majú aktualizovať v novom riadku MySQL
  • VALUES (hodnota_1, hodnota_2, ...) určuje hodnoty, ktoré sa majú pridať do nového riadku

Pri zadávaní údajových hodnôt, ktoré sa majú vložiť do novej tabuľky, je potrebné vziať do úvahy toto:

  • Reťazcové dátové typy - všetky reťazcové hodnoty by mali byť uzavreté v jednoduchých úvodzovkách.
  • Číselné typy údajov - všetky číselné hodnoty by sa mali zadávať priamo bez toho, aby sa uvádzali v jednoduchých alebo dvojitých úvodzovkách.
  • Dátové typy dátumu - uveďte hodnoty dátumu v jednoduchých úvodzovkách vo formáte RRRR-MM-DD.

Príklad:

Predpokladajme, že máme nasledujúci zoznam nových členov knižnice, ktorých je potrebné pridať do databázy.

Celé mená Dátum narodenia rod Fyzická adresa Poštová 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ž Južný park PO Box 4563 0987786553 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.

VKLADAJME údaje jeden po druhom. Začneme Leonardom Hofstadterom. S kontaktným číslom budeme zaobchádzať ako s číselným údajovým typom a nebudeme ho uzatvárať do jednoduchých úvodzoviek.

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

Vykonaním vyššie uvedeného skriptu klesne 0 z Leonardovho kontaktného čísla. Je to z toho dôvodu, že s hodnotou sa bude zaobchádzať ako s číselnou hodnotou a nula (0) na začiatku bude zrušená, pretože nie je významná.

Aby sa zabránilo takýmto problémom, musí byť hodnota uvedená v jednoduchých úvodzovkách, ako je uvedené nižšie -

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

V uvedenom prípade nula (0) nebude vynechaná

Zmena poradia stĺpcov nemá žiadny vplyv na INSERT dotaz v MySQL, pokiaľ sú správne hodnoty namapované na správne stĺpce.

Dotaz uvedený nižšie demonštruje vyššie uvedený bod.

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

Vyššie uvedené dotazy preskočili stĺpec dátumu narodenia. Predvolene MySQL vloží hodnoty NULL do stĺpcov, ktoré sú v dotaze INSERT vynechané.

Poďme teraz vložiť záznam pre Leslie, ktorý má uvedený dátum narodenia. Hodnota dátumu by mala byť uvedená v jednoduchých úvodzovkách vo formáte 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šetky vyššie uvedené dotazy špecifikovali stĺpce a mapovali ich na hodnoty vo vyhlásení vloženia MySQL. Ak dodávame hodnoty pre VŠETKY stĺpce v tabuľke, môžeme stĺpce z dotazu na vloženie MySQL vynechať.

Príklad: -

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

Poďme si teraz pomocou príkazu SELECT pozrieť všetky riadky v členskej tabuľke.

SELECT * FROM `members`; 
členské číslo celé_mená rod dátum narodenia fyzická adresa Poštová adresa kontct_ cislo e-mail
1 Janet Jones Žena 21-07-1980 Pozemok prvej ulice č. 4 Súkromná taška 0759 253 542 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
2 Janet Smith Jones Žena 23-06-1980 Melrose 123 NULOVÝ NULOVÝ Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
3 Robert Phil Muž 12.7.1989 3. ulica 34 NULOVÝ 12345 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
4 Gloria Williams Žena 14-02-1984 2. ulica 23 NULOVÝ NULOVÝ NULOVÝ
5 Leonard Hofstadter Muž NULOVÝ Woodcrest NULOVÝ 845738767 NULOVÝ
6 Sheldon Cooper Muž NULOVÝ Woodcrest NULOVÝ 976736763 NULOVÝ
7 Rajesh Koothrappali Muž NULOVÝ Woodcrest NULOVÝ 938867763 NULOVÝ
8 Leslie Winkle Muž 14-02-1984 Woodcrest NULOVÝ 987636553 NULOVÝ
9 Howard Wolowitz Muž 24-08-1981 Južný park PO Box 4563 987786553 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.

Všimnite si, že kontaktné číslo pre Leonarda Hofstadtera kleslo na nulu (0) z kontaktného čísla. Ostatné kontaktné čísla na začiatku neznížili nulu (0).

Vkladanie do tabuľky z inej tabuľky

Príkaz INSERT možno použiť aj na vloženie údajov do tabuľky z inej tabuľky. Základná syntax je uvedená nižšie.

INSERT INTO table_1 SELECT * FROM table_2; 

Pozrime sa teraz na praktický príklad. Pre demonštračné účely vytvoríme fiktívnu tabuľku pre kategórie filmov. Novú tabuľku kategórií budeme nazývať category_archive. Skript zobrazený nižšie vytvára tabuľku.

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

Vykonaním vyššie uvedeného skriptu vytvorte tabuľku.

Poďme teraz vložiť všetky riadky z tabuľky kategórií do tabuľky archívov kategórií. To nám pomáha dosiahnuť skript uvedený nižšie.

VLOŽTE DO `category_archive` VYBERTE * Z` category`; 

Vykonaním vyššie uvedeného skriptu sa vložia všetky riadky z tabuľky kategórií do tabuľky archívov kategórií. Upozorňujeme, že aby tabuľky fungovali, štruktúry tabuľky musia byť rovnaké. Robustnejší skript je taký, ktorý mapuje názvy stĺpcov v tabuľke vloženia na tie v tabuľke, ktorá obsahuje údaje.

Dopyt zobrazený nižšie demonštruje jeho použitie.

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

Vykonáva sa dotaz SELECT

VYBERTE * Z `category_archive`

poskytuje nasledujúce výsledky uvedené nižšie.

id_kategórie meno kategórie poznámky
1 Komédia Filmy s humorom
2 Romantické Milostné príbehy
3 Epické Príbehové filmy
4 Hrôza NULOVÝ
5 Sci-fi NULOVÝ
6 Thriller NULOVÝ
7 Akcia NULOVÝ
8 Romantická komédia NULOVÝ
9 Kreslené NULOVÝ
10 Kreslené NULOVÝ

Príklad PHP: Vložte do tabuľky MySQL

Funkcia mysqli_query sa používa na vykonávanie dotazov SQL.

Túto funkciu je možné použiť na vykonanie nasledujúcich typov dotazov;

  • Vložte
  • Vyberte
  • Aktualizácia
  • vymazať

Má nasledujúcu syntax.

mysqli_query($db_handle,$query);

TU,

"mysqli_query (

…) „Je funkcia, ktorá vykonáva dotazy SQL.

„$ query“ je dotaz SQL, ktorý sa má vykonať

„$ link_identifier“ je voliteľný, možno ho použiť na odovzdanie odkazu na pripojenie k serveru

Prí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);}}

Zhrnutie

  • Príkaz INSERT sa používa na pridanie nových údajov do tabuľky. Po vykonaní príkazu MySql pridá nový riadok.
  • Dátum a hodnoty reťazca by mali byť uvedené v jednoduchých úvodzovkách.
  • Číselné hodnoty nie je potrebné uvádzať v úvodzovkách.
  • Príkaz INSERT možno použiť aj na vloženie údajov z jednej tabuľky do druhej.