MySQL INSERT INTO -kysely: Rivin lisääminen taulukkoon (esimerkki)
Mikä on INSERT INTO?
LAITTAA SISÄÄN käytetään tietojen tallentamiseen taulukoihin. INSERT-komento luo taulukkoon uuden rivin tietojen tallentamista varten. Tiedot toimitetaan yleensä tietokannan päällä toimivista sovellusohjelmista.
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 toimittaa suoraan ilman, että niitä merkitään kerta- tai kaksoislainausmerkkeihin.
- Päivämäärätietotyypit – kirjoita päivämääräarvot lainausmerkkeihin muodossa 'VVVV-KK-PP'.
Esimerkiksi:
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 | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Mies | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | Mies | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
INSERT tiedot yksitellen. Aloitamme Leonard Hofstadterista. Käsittelemme yhteysnumeroa numeerisena tietotyyppinä emmekä kirjoita numeroa yksittäisiin lainausmerkkeihin.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Yllä olevan skriptin suorittaminen pudottaa 0:n Leonardin puhelinnumerosta. Tämä johtuu siitä, että arvoa käsitellään numeerisena arvona ja alussa oleva nolla (0) jätetään pois, koska sillä ei ole merkitystä.
Tällaisten ongelmien välttämiseksi arvo on sisällytettävä lainausmerkkeihin alla olevan kuvan mukaisesti –
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
Yllä olevassa tapauksessa nollaa (0) ei hylätä
Sarakkeiden järjestyksen muuttamisella ei ole vaikutusta INSERT-kyselyyn MySQL niin kauan kuin oikeat arvot on kartoitettu oikeisiin sarakkeisiin.
Alla oleva kysely osoittaa yllä olevan 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-arvot sarakkeisiin, jotka jätetään pois INSERT-kyselystä.
Lisätään nyt Leslien tietue, jossa on syntymäaika. Päivämäärän arvo tulee laittaa lainausmerkkeihin 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');
Kaikki yllä olevat kyselyt määrittelivät sarakkeet ja kartoittivat ne arvoihin MySQL lisää lausunto. Jos toimitamme arvot KAIKKIIN taulukon sarakkeisiin, voimme jättää sarakkeet pois taulukosta MySQL lisää kysely.
Esimerkki: -
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');
Otetaan nyt käyttöön SELECT-lause nähdäksesi kaikki jäsenen taulukon 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 puhelinnumero on pudonnut nollan (0) yhteysnumerosta. Muut puhelinnumerot eivät ole pudonneet nollaa (0) alussa.
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;
Katsotaanpa nyt käytännön esimerkkiä. Luomme elokuvaluokille nukentaulukon esittelytarkoituksiin. Kutsumme uutta luokkataulukkoa kategoriat_arkisto. Alla näkyvä käsikirjoitus 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`))
Luo taulukko suorittamalla yllä oleva komentosarja.
Lisätään nyt kaikki luokkataulukon rivit luokka-arkistotaulukkoon. Alla oleva käsikirjoitus auttaa meitä saavuttamaan sen.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Yllä olevan komentosarjan suorittaminen lisää kaikki luokkataulukon rivit luokka-arkistotaulukkoon. Huomaa, että taulukkorakenteiden on oltava samat, jotta komentosarja toimisi. Vahvempi komentosarja on sellainen, joka yhdistää lisäystaulukon sarakkeiden nimet tiedot sisältävän taulukon sarakkeiden nimet.
Alla oleva kysely osoittaa sen käytön.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Suoritetaan SELECT-kyselyä
SELECT * FROM `categories_archive`
antaa seuraavat alla esitetyt tulokset.
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 kyselyitä.
SQL-lisäys taulukkoon -toimintoa voidaan käyttää seuraavien kyselytyyppien suorittamiseen:
- liite
- valita
- Päivitykset
- poistaa
Sillä on seuraava syntaksi.
mysqli_query($db_handle,$query);
TÄSSÄ,
"mysqli_query(…)" on funktio, joka suorittaa SQL-kyselyt.
"$query" on suoritettava SQL-kysely
"$link_identifier" on valinnainen, sitä voidaan käyttää välittämään 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); } }
Yhteenveto
- INSERT-komentoa käytetään lisäämään uusia tietoja taulukkoon. MySql lisää uuden rivin, kun komento on suoritettu.
- Päivämäärä- ja merkkijonoarvot tulee laittaa lainausmerkkeihin.
- Numeerisia arvoja ei tarvitse laittaa lainausmerkkeihin.
- INSERT-komentoa voidaan käyttää myös tietojen lisäämiseen taulukosta toiseen.