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

  • 📥 Ydinsyntaksi: INSERT INTO `table_name`(column_1,column_2) VALUES(value_1,value_2) luo yhden uuden rivin nimettyyn taulukkoon.
  • 🔤 Lainaussääntö: Merkkijono- ja päivämääräarvot vaativat yksittäisiä lainausmerkkejä; numeeriset arvot annetaan ilman lainausmerkkejä.
  • 0️⃣ Johtava nolla-ansa: Lainausmerkeissä oleva puhelinnumero luetaan numerona, joten etunolla jätetään huomaamattomasti pois.
  • 🔀 Sarakejärjestys: Sarakkeiden järjestys kyselyn sisällä ei ole merkityksellinen, kunhan jokainen arvo vastaa sitä vastaavaa saraketta.
  • 🕳️ Poistetut sarakkeet: Lausekkeen pois jätetyt sarakkeet saavat NULL-arvon tai niiden ilmoitetun oletusarvon.
  • 📑 Pöydästä pöytään: INSERT INTO … SELECT kopioi rivejä taulukoiden välillä, kun sarakerakenteet ovat linjassa.

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

UKK

MySQL hylkää sen kaksoismerkintävirheen vuoksi. Käytä INSERT IGNORE -komentoa ohittaaksesi rivin äänettömästi tai INSERT … ON DUPLICATE KEY UPDATE -komentoa päivittääksesi olemassa olevan rivin.

Suorita SELECT LAST_INSERT_ID() heti lisäyksen jälkeen tai kutsu mysqli_insert_id($conn) PHP:ssä. Se palauttaa oman yhteytesi viimeisimmälle riville luodun AUTO_INCREMENT-avaimen.

Älä koskaan yhdistä käyttäjän syötettä kyselymerkkijonoon. Käytä valmiiksi laadittuja lauseita sidottujen parametrien kanssa, jotta arvot kulkevat erillään kyselystä. SQL eikä niitä voi suorittaa komentoina.

Kyllä. Tekoälyavustajat muuttavat laskentataulukot tai pelkät kuvaukset INSERT-lausekkeiksi ja MySQL Työpöytä voi ajaa ne. Tarkista sarakejärjestys ja lainausmerkit, koska malli saattaa arvata skeeman.

Lisää se ensin kehitysversioon. Tekoälyn luomat rivit voivat rikkoa viiteavaimia, ylittää sarakepituudet tai keksiä virheellisiä päivämääriä. Suorita erä tapahtumassa, jotta se voidaan peruuttaa.

Tiivistä tämä viesti seuraavasti: