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

Πίνακας περιεχομένων:

Anonim

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