Τι είναι το INSERT INTO;
Το INSERT INTO χρησιμοποιείται για την αποθήκευση δεδομένων στους πίνακες. Η εντολή INSERT δημιουργεί μια νέα σειρά στον πίνακα για την αποθήκευση δεδομένων. Τα δεδομένα παρέχονται συνήθως από προγράμματα εφαρμογών που εκτελούνται στην κορυφή της βάσης δεδομένων.
Βασική σύνταξη
Ας δούμε τη βασική σύνταξη της εντολής INSERT INTO MySQL:
INSERT INTO `table_name` (στήλη_1, στήλη_2,…) ΤΙΜΕΣ (τιμή_1, τιμή_2,…);
ΕΔΩ
- INSERT INTO «table_name» είναι η εντολή που λέει στο διακομιστή MySQL να προσθέσει μια νέα σειρά σε έναν πίνακα με το όνομα «table_name».
- (στήλη_1, στήλη_2,…) καθορίζει τις στήλες που θα ενημερωθούν στη νέα σειρά MySQL
- VALUES (value_1, value_2,…) καθορίζει τις τιμές που θα προστεθούν στη νέα σειρά
Κατά την παροχή των τιμών δεδομένων που θα εισαχθούν στον νέο πίνακα, πρέπει να ληφθούν υπόψη τα ακόλουθα:
- Τύποι δεδομένων συμβολοσειράς - όλες οι τιμές συμβολοσειράς πρέπει να περικλείονται σε εισαγωγικά.
- Αριθμητικοί τύποι δεδομένων - όλες οι αριθμητικές τιμές πρέπει να παρέχονται απευθείας χωρίς να τις περικλείουν σε μονά ή διπλά εισαγωγικά.
- Τύποι δεδομένων ημερομηνίας - επισυνάψτε τιμές ημερομηνίας σε μεμονωμένα εισαγωγικά με τη μορφή «ΕΕΕΕ-ΜΜ-ΗΗ».
Παράδειγμα:
Ας υποθέσουμε ότι έχουμε την ακόλουθη λίστα νέων μελών της βιβλιοθήκης που πρέπει να προστεθούν στη βάση δεδομένων.
Πλήρη ονόματα | Ημερομηνια γεννησης | γένος | Φυσική διεύθυνση | ταχυδρομική διεύθυνση | Αριθμός επαφής | Διεύθυνση ηλεκτρονικού ταχυδρομείου |
---|---|---|---|---|---|---|
Λεονάρντ Χόφσταντ | Αρσενικός | Woodcrest | 0845738767 | |||
Sheldon Cooper | Αρσενικός | Woodcrest | 0976736763 | |||
Rajesh Koothrappali | Αρσενικός | Fairview | 0938867763 | |||
Λέσλι Γουίνκλ | 14/02/1984 | Αρσενικός | 0987636553 | |||
Χάουαρντ Βόλοβιτς | 24/08/1981 | Αρσενικός | South Park | Τ.Θ. 4563 | 0987786553 | Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από κακόβουλη χρήση. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να τη δείτε. |
ΑΣΦΑΛΙΣΤΕ τα δεδομένα ένα προς ένα. Θα ξεκινήσουμε με τον Leonard Hofstadter. Θα αντιμετωπίσουμε τον αριθμό επαφής ως αριθμητικό τύπο δεδομένων και δεν θα συμπεριλάβουμε τον αριθμό σε μεμονωμένα εισαγωγικά.
INSERT INTO "member" ("full_names", "gender", "physical_address", "contact_number") ΤΙΜΕΣ ("Leonard Hofstadter", "Male", "Woodcrest", 0845738767);
Η εκτέλεση του παραπάνω σεναρίου πέφτει το 0 από τον αριθμό επαφής του Leonard. Αυτό συμβαίνει επειδή η τιμή θα αντιμετωπίζεται ως αριθμητική τιμή και το μηδέν (0) στην αρχή μειώνεται αφού δεν είναι σημαντικό.
Για την αποφυγή τέτοιων προβλημάτων, η τιμή πρέπει να περικλείεται σε μεμονωμένα εισαγωγικά όπως φαίνεται παρακάτω -
INSERT INTO "member" ("full_names", "gender", "physical_address", "contact_number") ΤΙΜΕΣ ("Sheldon Cooper", "Male", "Woodcrest", "0976736763");
Στην παραπάνω περίπτωση, το μηδέν (0) δεν θα πέσει
Η αλλαγή της σειράς των στηλών δεν επηρεάζει το ερώτημα INSERT στη MySQL, εφόσον οι σωστές τιμές έχουν αντιστοιχιστεί στις σωστές στήλες.
Το ερώτημα που εμφανίζεται παρακάτω δείχνει το παραπάνω σημείο.
INSERT INTO "member" ("contact_number", "gender", "full_names", "physical_address") ΤΙΜΕΣ ("0938867763", "Male", "Rajesh Koothrappali", "Woodcrest");
Τα παραπάνω ερωτήματα παρέλειψαν τη στήλη ημερομηνίας γέννησης. Από προεπιλογή, η MySQL θα εισαγάγει τιμές NULL σε στήλες που παραλείπονται στο ερώτημα INSERT.
Ας εισάγουμε τώρα το ρεκόρ για τη Leslie, η οποία περιέχει την ημερομηνία γέννησης. Η τιμή ημερομηνίας πρέπει να περικλείεται σε μεμονωμένα εισαγωγικά χρησιμοποιώντας τη μορφή «ΕΕΕΕ-ΜΜ-ΗΗ».
INSERT INTO "member" ("full_names", "date_of_birth", "gender", "physical_address", "contact_number") ΤΙΜΕΣ ("Leslie Winkle", "1984-02-14", "Male", "Woodcrest", " 0987636553 ');
Όλα τα παραπάνω ερωτήματα καθόρισαν τις στήλες και τις χαρτογράφησαν σε τιμές στη δήλωση εισαγωγής MySQL. Εάν παρέχουμε τιμές για ΟΛΕΣ τις στήλες στον πίνακα, τότε μπορούμε να παραλείψουμε τις στήλες από το ερώτημα εισαγωγής MySQL.
Παράδειγμα:-
INSERT INTO "μέλη" VALUES (9, "Howard Wolowitz", "Male", "1981-08-24",
"SouthPark", "PO Box 4563", "0987786553", "lwolowitz [at] email.me") ;
Ας χρησιμοποιήσουμε τώρα τη δήλωση SELECT για να δούμε όλες τις σειρές στον πίνακα του μέλους.
SELECT * FROM `members`;
αριθμός μέλους | πλήρη_ ονόματα | γένος | Ημερομηνια γεννησης | φυσική διεύθυνση | ταχυδρομική διεύθυνση | αριθμός contct_ | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ |
---|---|---|---|---|---|---|---|
1 | Τζένετ Τζόουνς | Θηλυκός | 21-07-1980 | Πρώτη οδός Νο 4 | Ιδιωτική τσάντα | 0759 253 542 | Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από κακόβουλη χρήση. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να τη δείτε. |
2 | Janet Smith Jones | Θηλυκός | 23-06-1980 | Melrose 123 | ΜΗΔΕΝΙΚΟ | ΜΗΔΕΝΙΚΟ | Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από κακόβουλη χρήση. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να τη δείτε. |
3 | Ρόμπερτ Φιλ | Αρσενικός | 12-07-1989 | 3η οδός 34 | ΜΗΔΕΝΙΚΟ | 12345 | Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από κακόβουλη χρήση. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να τη δείτε. |
4 | Γκλόρια Ουίλιαμς | Θηλυκός | 14-02-1984 | 2ος δρόμος 23 | ΜΗΔΕΝΙΚΟ | ΜΗΔΕΝΙΚΟ | ΜΗΔΕΝΙΚΟ |
5 | Λεονάρντ Χόφσταντ | Αρσενικός | ΜΗΔΕΝΙΚΟ | Woodcrest | ΜΗΔΕΝΙΚΟ | 845738767 | ΜΗΔΕΝΙΚΟ |
6 | Sheldon Cooper | Αρσενικός | ΜΗΔΕΝΙΚΟ | Woodcrest | ΜΗΔΕΝΙΚΟ | 976736763 | ΜΗΔΕΝΙΚΟ |
7 | Rajesh Koothrappali | Αρσενικός | ΜΗΔΕΝΙΚΟ | Woodcrest | ΜΗΔΕΝΙΚΟ | 938867763 | ΜΗΔΕΝΙΚΟ |
8 | Λέσλι Γουίνκλ | Αρσενικός | 14-02-1984 | Woodcrest | ΜΗΔΕΝΙΚΟ | 987636553 | ΜΗΔΕΝΙΚΟ |
9 | Χάουαρντ Βόλοβιτς | Αρσενικός | 24-08-1981 | SouthPark | Τ.Θ. 4563 | 987786553 | Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από κακόβουλη χρήση. Χρειάζεται να ενεργοποιήσετε τη JavaScript για να τη δείτε. |
Παρατηρήστε ότι ο αριθμός επαφής για τον Leonard Hofstadter έπεσε το μηδέν (0) από τον αριθμό επικοινωνίας. Οι άλλοι αριθμοί επαφής δεν έχουν μειώσει το μηδέν (0) στην αρχή.
Εισαγωγή σε έναν πίνακα από έναν άλλο πίνακα
Η εντολή INSERT μπορεί επίσης να χρησιμοποιηθεί για την εισαγωγή δεδομένων σε έναν πίνακα από έναν άλλο πίνακα. Η βασική σύνταξη είναι όπως φαίνεται παρακάτω.
INSERT INTO table_1 SELECT * FROM table_2.
Ας δούμε τώρα ένα πρακτικό παράδειγμα. Θα δημιουργήσουμε ένα πλαστό τραπέζι για κατηγορίες ταινιών για σκοπούς επίδειξης. Θα καλέσουμε τον πίνακα κατηγοριών για τις νέες κατηγορίες_archive. Το σενάριο που φαίνεται παρακάτω δημιουργεί τον πίνακα.
ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ `pages_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` comments` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Εκτελέστε το παραπάνω σενάριο για να δημιουργήσετε τον πίνακα.
Ας εισάγουμε τώρα όλες τις σειρές από τον πίνακα κατηγοριών στον πίνακα αρχείων κατηγοριών. Το σενάριο που φαίνεται παρακάτω μας βοηθά να το επιτύχουμε.
ΕΙΣΑΓΩΓΗ ΣΤΙΣ «κατηγορίες_αρχείο` ΕΠΙΛΟΓΗ * ΑΠΟ« κατηγορίες ».
Η εκτέλεση του παραπάνω σεναρίου εισάγει όλες τις σειρές από τον πίνακα κατηγοριών στον πίνακα αρχειοθέτησης κατηγοριών. Σημειώστε ότι οι δομές του πίνακα θα πρέπει να είναι οι ίδιες για να λειτουργήσει το σενάριο. Ένα πιο ισχυρό σενάριο είναι αυτό που αντιστοιχίζει τα ονόματα των στηλών στον πίνακα εισαγωγής με αυτά στον πίνακα που περιέχει τα δεδομένα.
Το ερώτημα που εμφανίζεται παρακάτω δείχνει τη χρήση του.
ΕΙΣΑΓΩΓΗ ΣΤΙΣ «κατηγορίες_αρχείο` (category_id, category_name, παρατηρήσεις) SELECT category_id, category_name, παρατηρήσεις ΑΠΟ« κατηγορίες »;
Εκτέλεση του ερωτήματος SELECT
ΕΠΙΛΟΓΗ * ΑΠΟ «κατηγορίες_αρχειοθέτηση»
δίνει τα ακόλουθα αποτελέσματα που φαίνονται παρακάτω.
κατηγορία_id | όνομα κατηγορίας | παρατηρήσεις |
---|---|---|
1 | Κωμωδία | Ταινίες με χιούμορ |
2 | Ρομαντικός | Ιστορίες αγάπης |
3 | Επος | Ιστορίες ταινιών |
4 | Φρίκη | ΜΗΔΕΝΙΚΟ |
5 | Επιστημονική φαντασία | ΜΗΔΕΝΙΚΟ |
6 | Συγκινών | ΜΗΔΕΝΙΚΟ |
7 | Δράση | ΜΗΔΕΝΙΚΟ |
8 | Ρομαντική κωμωδία | ΜΗΔΕΝΙΚΟ |
9 | Κοινουμενα σχεδια | ΜΗΔΕΝΙΚΟ |
10 | Κοινουμενα σχεδια | ΜΗΔΕΝΙΚΟ |
Παράδειγμα PHP: Εισαγωγή στον πίνακα MySQL
Η συνάρτηση mysqli_query χρησιμοποιείται για την εκτέλεση ερωτημάτων SQL.
Η συνάρτηση μπορεί να χρησιμοποιηθεί για την εκτέλεση των ακόλουθων τύπων ερωτημάτων.
- Εισάγετε
- Επιλέγω
- Εκσυγχρονίζω
- διαγράφω
Έχει την ακόλουθη σύνταξη.
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 connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Περίληψη
- Η εντολή INSERT χρησιμοποιείται για την προσθήκη νέων δεδομένων σε έναν πίνακα. Το MySql θα προσθέσει μια νέα σειρά, μόλις εκτελεστεί η εντολή.
- Οι τιμές ημερομηνίας και συμβολοσειράς θα πρέπει να περικλείονται σε εισαγωγικά.
- Οι αριθμητικές τιμές δεν χρειάζεται να περικλείονται σε εισαγωγικά.
- Η εντολή INSERT μπορεί επίσης να χρησιμοποιηθεί για την εισαγωγή δεδομένων από έναν πίνακα σε έναν άλλο.