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 email
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.