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 μπορεί επίσης να χρησιμοποιηθεί για την εισαγωγή δεδομένων από έναν πίνακα σε έναν άλλο.