MySQL INSERT INTO -kysely: Rivin lisääminen taulukkoon (esimerkki)
⚡ Älykäs yhteenveto
MySQL INSERT INTO -kysely lisää uusia rivejä taulukkoon joko nimeämällä kohdesarakkeet erikseen tai antamalla arvon jokaiselle sarakkeelle. Merkkijonojen, numeroiden ja päivämäärien oikea lainausmerkkijärjestys määrittää, säilyvätkö tallennetut tiedot ehjinä.

Mikä on INSERT INTO?
LAITTAA SISÄÄN käytetään tietojen tallentamiseen taulukoihin. INSERT-komento luo taulukkoon uuden rivin tietojen tallentamista varten. Tiedot toimittavat yleensä sovellusohjelmat, jotka toimivat tietokannan päällä.
Perussyntaksi
Katsotaanpa INSERT INTO:n perussyntaksia MySQL komento:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
TÄÄLTÄ
- INSERT INTO `taulukon_nimi` on komento, joka kertoo MySQL palvelin lisäämään uuden rivin taulukkoon nimeltä "taulukon_nimi".
- (sarake_1, sarake_2,…) määrittää sarakkeet, jotka päivitetään uudessa MySQL rivi
- ARVOT (arvo_1,arvo_2,…) määrittää uudelle riville lisättävät arvot
Kun annat uuteen taulukkoon lisättävät tietoarvot, on otettava huomioon seuraavat asiat:
- Merkkijonotietotyypit – kaikki merkkijonoarvot tulee laittaa lainausmerkkeihin.
- Numeeriset tietotyypit – kaikki numeeriset arvot tulee antaa suoraan ilman lainausmerkkejä.
- Päivämäärätietotyypit – kirjoita päivämääräarvot lainausmerkkeihin muodossa 'VVVV-KK-PP'.
Useiden rivien lisääminen kerralla
Yksi INSERT-lauseke voi sisältää useita rivejä. Erota arvojoukot pilkulla. Yksi lauseke on nopeampi kuin monta, koska indeksi päivittyy kerran.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL INSERT INTO -kyselyesimerkki
Oletetaan, että meillä on seuraava luettelo uusista kirjaston jäsenistä, jotka on lisättävä tietokantaan.
| Koko nimet | Syntymäaika | sukupuoli | Fyysinen osoite | postiosoite | Yhteysnumero | Sähköpostiosoite |
|---|---|---|---|---|---|---|
| Leonard Hofstadter | Mies | Woodcrest | 0845738767 | |||
| Sheldon Cooper | Mies | Woodcrest | 0976736763 | |||
| Rajesh Koothrappali | Mies | Woodcrest | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Mies | Woodcrest | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | Mies | Eteläpuisto | PO Box 4563 | 0987786553 | lwolowitz@email.me |
LISÄTÄÄN tiedot rivi kerrallaan alkaen Leonard Hofstadterista. Käsittelemme puhelinnumeroa numeerisena tietotyyppinä emmekä laita numeroa lainausmerkkeihin.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Yllä olevan komentosarjan suorittaminen poistaa Leonardin yhteystietonumerosta nollan, koska arvoa käsitellään numeerisesti eikä alussa olevalla nollalla ole merkitystä.
Tällaisten ongelmien välttämiseksi arvo on kirjoitettava lainausmerkkeihin alla olevan kuvan mukaisesti.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Vinkki: Tallenna puhelinnumerot, postinumerot ja vastaavat tunnisteet tekstisarakkeeseen, kuten VARCHAR. Numeerisissa sarakkeissa ei voi olla alussa nollaa.
Sarakejärjestyksen muuttaminen
Sarakkeiden järjestyksen muuttamisella ei ole vaikutusta INSERT-kyselyyn MySQL, kunhan oikeat arvot on yhdistetty oikeisiin sarakkeisiin. Alla oleva kysely osoittaa tämän asian.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Yllä olevat kyselyt ohittivat syntymäaikasarakkeen. Oletuksena, MySQL lisää NULL-arvoja sarakkeisiin, jotka jätetään pois INSERT-kyselystä.
Lisätään nyt Leslien tietue, jossa on syntymäaika. Päivämäärän on oltava lainausmerkkien sisällä muodossa 'VVVV-KK-PP'.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Sarakeluettelon poisjättäminen
Kaikissa yllä olevissa kyselyissä sarakkeet nimettiin ja ne yhdistettiin arvoihin. Jos annamme arvot KAIKILLE taulukon sarakkeille, sarakeluettelo voidaan jättää pois. MySQL lisää kysely.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Otetaan nyt käyttöön SELECT-lause nähdäksesi kaikki jäsentaulukon rivit.
SELECT * FROM `members`;
| jäsennumero | täydet_ nimet | sukupuoli | syntymäaika | fyysinen osoite | postiosoite | yhteystieto_ numero | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Nainen | 21-07-1980 | First Street -tontti nro 4 | Yksityinen laukku | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Nainen | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Mies | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Nainen | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Mies | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Mies | NULL | Woodcrest | NULL | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | Mies | NULL | Woodcrest | NULL | 0938867763 | NULL |
| 8 | Leslie Winkle | Mies | 14-02-1984 | Woodcrest | NULL | 0987636553 | NULL |
| 9 | Howard Wolowitz | Mies | 24-08-1981 | Eteläpuisto | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Huomaa, että Leonard Hofstadterin puhelinnumeron etunolla on pudonnut pois, täsmälleen ennustetusti. Lainausmerkeissä se on säilynyt.
Lisääminen taulukkoon toisesta taulukosta
INSERT-komentoa voidaan käyttää myös tietojen lisäämiseen taulukkoon toisesta taulukosta. Perussyntaksi on alla olevan kuvan mukainen.
INSERT INTO table_1 SELECT * FROM table_2;
Luomme nyt elokuvaluokkia varten mallitaulukon nimeltä categories_archive. Alla oleva skripti luo taulukon.
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`))
Suorita yllä oleva komentosarja taulukon luomiseksi. Lisää nyt kaikki kategoriataulukon rivit kategoria-arkistotaulukkoon.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Taulukkorakenteiden on oltava samat, jotta kyseinen komentosarja toimisi. Vankempi komentosarja yhdistää kohdetaulukon sarakenimet tiedot sisältävän taulukon nimiin, kuten alla on esitetty.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Alla olevan SELECT-kyselyn suorittaminen antaa seuraavat tulokset.
SELECT * FROM `categories_archive`;
| kategorian_tunnus | Kategorian nimi | huomautukset |
|---|---|---|
| 1 | Komedia | Elokuvat huumorilla |
| 2 | Romanttinen | Rakkaustarinat |
| 3 | Eeppinen | Tarina vanhat elokuvat |
| 4 | Kauhu | NULL |
| 5 | Tieteiskirjallisuus | NULL |
| 6 | Trilleri | NULL |
| 7 | Toiminta | NULL |
| 8 | Romanttinen komedia | NULL |
| 9 | Sarjakuvat | NULL |
| 10 | Sarjakuvat | NULL |
PHP Esimerkki: Insert into MySQL Pöytä
Mysqli_query-funktiota käytetään suorittamaan SQL PHP-kyselyt. Se suorittaa sekä Insert-, Select-, Update- että Delete-lausekkeita, ja sen syntaksi on seuraava.
mysqli_query($db_handle,$query);
TÄSSÄ,
- "mysqli_query(…)" on funktio, joka suorittaa SQL-kyselyt.
- ”$query” on suoritettava SQL-kysely.
- ”$db_handle” on mysqli_connectin palauttama palvelinyhteyslinkki.
esimerkki
$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); }
