MySQL INSERT INTO Query: Πώς να προσθέσετε σειρά στον πίνακα (Παράδειγμα)

Τι είναι το INSERT INTO;

ΕΙΣΑΓΩΓΕΤΕ ΣΤΗΝ χρησιμοποιείται για την αποθήκευση δεδομένων στους πίνακες. Η εντολή INSERT δημιουργεί μια νέα σειρά στον πίνακα για την αποθήκευση δεδομένων. Τα δεδομένα παρέχονται συνήθως από προγράμματα εφαρμογών που εκτελούνται πάνω από τη βάση δεδομένων.

Βασική σύνταξη

Ας δούμε τη βασική σύνταξη του INSERT INTO MySQL εντολή:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

ΕΔΏ

  • INSERT INTO «όνομα_πίνακα» είναι η εντολή που λέει MySQL διακομιστή για να προσθέσετε μια νέα σειρά σε έναν πίνακα με το όνομα `table_name.`
  • (στήλη_1,στήλη_2,…) καθορίζει τις στήλες που θα ενημερωθούν στο νέο MySQL σειρά
  • VALUES (τιμή_1, τιμή_2,…) καθορίζει τις τιμές που θα προστεθούν στη νέα σειρά

Κατά την παροχή των τιμών δεδομένων που θα εισαχθούν στον νέο πίνακα, θα πρέπει να ληφθούν υπόψη τα ακόλουθα:

  • Τύποι δεδομένων συμβολοσειράς – όλες οι τιμές συμβολοσειράς πρέπει να περικλείονται σε μεμονωμένα εισαγωγικά.
  • Αριθμητικοί τύποι δεδομένων - όλες οι αριθμητικές τιμές πρέπει να παρέχονται απευθείας χωρίς να περικλείονται σε μονά ή διπλά εισαγωγικά.
  • Τύποι δεδομένων ημερομηνίας – εσωκλείστε τις τιμές ημερομηνίας σε μεμονωμένα εισαγωγικά με τη μορφή «ΕΕΕΕ-ΜΜ-ΗΗ».


Παράδειγμα:

Ας υποθέσουμε ότι έχουμε την ακόλουθη λίστα με νέα μέλη της βιβλιοθήκης που πρέπει να προστεθούν στη βάση δεδομένων.

Πλήρη ονόματα Ημερομηνία γεννήσεως των δύο φύλων Φυσική διεύθυνση ταχυδρομική διεύθυνση Αριθμός επαφής Διεύθυνση ηλεκτρονικού ταχυδρομείου
Λέοναρντ Χόφσταντερ Άντρας Ξυλόστεγο 0845738767
Sheldon Cooper Άντρας Ξυλόστεγο 0976736763
Rajesh Koothrappali Άντρας Fairview 0938867763
Λέσλι Γουίνκλ 14/02/1984 Άντρας 0987636553
Χάουαρντ Γούλοβιτς 24/08/1981 Άντρας South Park ΤΑΧΥΔΡΟΜΕΙΟ Box 4563 0987786553 lwolowitz@email.me

Ας ΕΙΣΑΓΕΤΕ δεδομένα ένα προς ένα. Θα ξεκινήσουμε με τον Leonard Hofstadter. Θα αντιμετωπίσουμε τον αριθμό επικοινωνίας ως έναν αριθμητικό τύπο δεδομένων και δεν θα περικλείουμε τον αριθμό σε μεμονωμένα εισαγωγικά.

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

Η εκτέλεση της παραπάνω δέσμης ενεργειών αφαιρεί το 0 από τον αριθμό επικοινωνίας του Leonard. Αυτό συμβαίνει επειδή η τιμή θα αντιμετωπίζεται ως αριθμητική τιμή και το μηδέν (0) στην αρχή απορρίπτεται, καθώς δεν είναι σημαντικό.

Για να αποφευχθούν τέτοια προβλήματα, η τιμή πρέπει να περικλείεται σε μονά εισαγωγικά όπως φαίνεται παρακάτω –

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

Στην παραπάνω περίπτωση, το μηδέν(0) δεν θα απορριφθεί


Η αλλαγή της σειράς των στηλών δεν έχει καμία επίδραση στο ερώτημα INSERT in MySQL εφόσον οι σωστές τιμές έχουν αντιστοιχιστεί στις σωστές στήλες.

Το ερώτημα που φαίνεται παρακάτω δείχνει το παραπάνω σημείο.

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

Τα παραπάνω ερωτήματα παρέλειψαν τη στήλη ημερομηνίας γέννησης. Από προεπιλογή, MySQL θα εισαγάγει NULL τιμές σε στήλες που παραλείπονται στο ερώτημα INSERT.

Ας εισαγάγουμε τώρα το αρχείο για τη Leslie, το οποίο έχει την ημερομηνία γέννησης. Η τιμή ημερομηνίας θα πρέπει να περικλείεται σε μονά εισαγωγικά χρησιμοποιώντας τη μορφή «ΕΕΕΕ-ΜΜ-ΗΗ».

INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`)  VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');

Όλα τα παραπάνω ερωτήματα καθόρισαν τις στήλες και τις αντιστοιχούσαν σε τιμές στο MySQL εισαγωγή δήλωσης. Εάν παρέχουμε τιμές για ΟΛΕΣ τις στήλες του πίνακα, τότε μπορούμε να παραλείψουμε τις στήλες από το MySQL εισαγωγή ερωτήματος.

Παράδειγμα:-

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

Ας χρησιμοποιήσουμε τώρα το Δήλωση SELECT για να δείτε όλες τις σειρές στον πίνακα του μέλους.

SELECT * FROM `members`;
αριθμός μέλους πλήρη_ ονόματα των δύο φύλων Ημερομηνια γεννησης φυσική_διεύθυνση ταχυδρομική διεύθυνση αριθμός επικοινωνίας ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
1 Τζάνετ Τζόουνς Γυναίκα 21-07-1980 Οικόπεδο First Street No 4 Ιδιωτική τσάντα 0759 253 542 janetjones@yagoo.cm
2 Τζάνετ Σμιθ Τζόουνς Γυναίκα 23-06-1980 Melrose 123 Τιμή NULL Τιμή NULL jj@fstreet.com
3 Ρόμπερτ Φιλ Άντρας 12-07-1989 3η Οδός 34 Τιμή NULL 12345 rm@tstreet.com
4 Γκλόρια Ουίλιαμς Γυναίκα 14-02-1984 2η οδός 23 Τιμή NULL Τιμή NULL Τιμή NULL
5 Λέοναρντ Χόφσταντερ Άντρας Τιμή NULL Ξυλόστεγο Τιμή NULL 845738767 Τιμή NULL
6 Sheldon Cooper Άντρας Τιμή NULL Ξυλόστεγο Τιμή NULL 0976736763 Τιμή NULL
7 Rajesh Koothrappali Άντρας Τιμή NULL Ξυλόστεγο Τιμή NULL 0938867763 Τιμή NULL
8 Λέσλι Γουίνκλ Άντρας 14-02-1984 Ξυλόστεγο Τιμή NULL 0987636553 Τιμή NULL
9 Χάουαρντ Γούλοβιτς Άντρας 24-08-1981 South Park ΤΑΧΥΔΡΟΜΕΙΟ Box 4563 0987786553 lwolowitz@email.me

Παρατηρήστε ότι ο αριθμός επικοινωνίας για τον Leonard Hofstadter έχει αφαιρέσει το μηδέν (0) από τον αριθμό επικοινωνίας. Τα άλλα τηλέφωνα επικοινωνίας δεν έχουν πέσει το μηδέν (0) στην αρχή.

Εισαγωγή σε πίνακα από άλλο πίνακα

Η εντολή INSERT μπορεί επίσης να χρησιμοποιηθεί για την εισαγωγή δεδομένων σε έναν πίνακα από άλλον πίνακα. Η βασική σύνταξη είναι όπως φαίνεται παρακάτω.

INSERT INTO table_1 SELECT * FROM table_2;

Ας δούμε τώρα ένα πρακτικό παράδειγμα. Θα δημιουργήσουμε έναν εικονικό πίνακα για τις κατηγορίες ταινιών για λόγους επίδειξης. Θα ονομάσουμε τον πίνακα νέων κατηγοριών κατηγορίες_αρχείο. Το σενάριο που φαίνεται παρακάτω δημιουργεί τον πίνακα.

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

Εκτελέστε το παραπάνω σενάριο για να δημιουργήσετε τον πίνακα.

Ας εισαγάγουμε τώρα όλες τις σειρές από τον πίνακα κατηγοριών στον πίνακα αρχειοθέτησης κατηγοριών. Το σενάριο που φαίνεται παρακάτω μας βοηθά να το πετύχουμε.

INSERT INTO `categories_archive` SELECT * FROM `categories`;

Η εκτέλεση της παραπάνω δέσμης ενεργειών εισάγει όλες τις σειρές από τον πίνακα κατηγοριών στον πίνακα αρχειοθέτησης κατηγοριών. Σημειώστε ότι οι δομές του πίνακα θα πρέπει να είναι ίδιες για να λειτουργήσει το σενάριο. Ένα πιο ισχυρό σενάριο είναι αυτό που αντιστοιχίζει τα ονόματα στηλών στον πίνακα εισαγωγής με αυτά του πίνακα που περιέχει τα δεδομένα.

Το ερώτημα που φαίνεται παρακάτω δείχνει τη χρήση του.

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

Εκτέλεση του ερωτήματος SELECT

SELECT * FROM `categories_archive`

δίνει τα ακόλουθα αποτελέσματα που φαίνονται παρακάτω.

κατηγορία_αναγνωριστικό όνομα_κατηγορίας παρατηρήσεις
1 Κωμωδία Ταινίες με χιούμορ
2 Ρομαντικά Ιστορίες αγάπης
3 Έπος Ταινίες με ιστορία
4 Φρίκη Τιμή NULL
5 Επιστημονική φαντασία Τιμή NULL
6 Συγκινών Τιμή NULL
7 Ενέργειες Τιμή NULL
8 Ρομαντική κωμωδία Τιμή NULL
9 Κινούμενα σχέδια Τιμή NULL
10 Κινούμενα σχέδια Τιμή NULL

Παράδειγμα PHP: Εισαγωγή σε MySQL Τραπέζι

Η συνάρτηση mysqli_query χρησιμοποιείται για την εκτέλεση SQL ερωτήματα.

Η συνάρτηση SQL insert into table μπορεί να χρησιμοποιηθεί για την εκτέλεση των ακόλουθων τύπων ερωτημάτων:

  • Κύριο θέμα
  • Αγορά
  • Ενημέρωση
  • διαγράψετε

Έχει την εξής σύνταξη.

mysqli_query($db_handle,$query);

ΕΔΩ,

"mysqli_query(...)" είναι η συνάρτηση που εκτελεί τα ερωτήματα SQL.

Το "$query" είναι το ερώτημα SQL που πρέπει να εκτελεστεί

Το "$link_identifier" είναι προαιρετικό, μπορεί να χρησιμοποιηθεί για να περάσει στον σύνδεσμο σύνδεσης διακομιστή

Παράδειγμα

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

Σύνοψη

  • Η εντολή INSERT χρησιμοποιείται για την προσθήκη νέων δεδομένων σε έναν πίνακα. Η MySql θα προσθέσει μια νέα σειρά, μόλις εκτελεστεί η εντολή.
  • Οι τιμές ημερομηνίας και συμβολοσειράς πρέπει να περικλείονται σε μονά εισαγωγικά.
  • Οι αριθμητικές τιμές δεν χρειάζεται να περικλείονται σε εισαγωγικά.
  • Η εντολή INSERT μπορεί επίσης να χρησιμοποιηθεί για την εισαγωγή δεδομένων από έναν πίνακα σε έναν άλλο.