Ce este INSERT INTO?
INSERT INTO este folosit pentru a stoca date în tabele. Comanda INSERT creează un nou rând în tabel pentru stocarea datelor. Datele sunt de obicei furnizate de programele de aplicații care rulează deasupra bazei de date.
Sintaxa de bază
Să ne uităm la sintaxa de bază a comenzii INSERT INTO MySQL:
INSERAȚI ÎN „nume_tabel” (coloană_1, coloană_2, ...) VALORI (valoare_1, valoare_2, ...);
AICI
- INSERT INTO `table_name` este comanda care îi spune serverului MySQL să adauge un rând nou într-un tabel numit„ table_name ”.
- (coloana_1, coloana_2, ...) specifică coloanele care trebuie actualizate în noul rând MySQL
- VALORI (valoare_1, valoare_2, ...) specifică valorile care trebuie adăugate în noul rând
La furnizarea valorilor de date care urmează să fie inserate în noul tabel, trebuie luate în considerare următoarele:
- Tipuri de date șir - toate valorile șirului ar trebui să fie încadrate între ghilimele unice.
- Tipuri de date numerice - toate valorile numerice trebuie furnizate direct fără a le încadra în ghilimele simple sau duble.
- Tipuri de date date - atașați valorile datei între ghilimele unice în formatul „AAAA-LL-ZZ”.
Exemplu:
Să presupunem că avem următoarea listă de noi membri ai bibliotecii care trebuie adăugați la baza de date.
Nume complete | Data nașterii | gen | Adresă fizică | adresa postala | Numar de contact | Adresa de email |
---|---|---|---|---|---|---|
Leonard Hofstadter | Masculin | Woodcrest | 0845738767 | |||
Sheldon Cooper | Masculin | Woodcrest | 0976736763 | |||
Rajesh Koothrappali | Masculin | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Masculin | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | Masculin | Parcul din sud | Căsuța poștală 4563 | 0987786553 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
Să INSERI date unul câte unul. Vom începe cu Leonard Hofstadter. Vom trata numărul de contact ca pe un tip numeric de date și nu vom include numărul între ghilimele unice.
INSERT INTO `members` (` full_names`, `gender`,` physical_address`, `contact_number`) VALORI („ Leonard Hofstadter ”,„ Male ”,„ Woodcrest ”, 0845738767);
Executarea scriptului de mai sus scade 0 din numărul de contact al lui Leonard. Acest lucru se datorează faptului că valoarea va fi tratată ca o valoare numerică, iar zero (0) la început este scăzut, deoarece nu este semnificativ.
Pentru a evita astfel de probleme, valoarea trebuie să fie inclusă între ghilimele simple, după cum se arată mai jos -
INSERT INTO `members` (` full_names`, `gender`,` physical_address`, `contact_number`) VALORI ('Sheldon Cooper', 'Male', 'Woodcrest', '0976736763');
În cazul de mai sus, zero (0) nu va fi eliminat
Modificarea ordinii coloanelor nu are niciun efect asupra interogării INSERT în MySQL, atâta timp cât valorile corecte au fost mapate la coloanele corecte.
Interogarea prezentată mai jos demonstrează punctul de mai sus.
INSERAȚI ÎN „membrii” („contact_number”, „gender”, „full_names”, „physical_address”) VALORI („0938867763”, „Male”, „Rajesh Koothrappali”, „Woodcrest”);
Interogările de mai sus au omis coloana cu data nașterii. În mod implicit, MySQL va insera valori NULL în coloanele care sunt omise în interogarea INSERT.
Să introducem acum înregistrarea pentru Leslie, care are data de naștere furnizată. Valoarea datei trebuie să fie inclusă între ghilimele unice, utilizând formatul „AAAA-LL-ZZ”.
INSERT INTO `members` (` full_names`, `date_of_birth`,` gender`, `physical_address`,` contact_number`) VALORI ('Leslie Winkle', '1984-02-14', 'Male', 'Woodcrest', ' 0987636553 ');
Toate interogările de mai sus au specificat coloanele și le-au mapat la valori din instrucțiunea de inserare MySQL. Dacă furnizăm valori pentru TOATE coloanele din tabel, atunci putem omite coloanele din interogarea de inserare MySQL.
Exemplu:-
INSERAȚI ÎN VALORILE „membrilor” (9, „Howard Wolowitz”, „Masculin”, „1981-08-24”,
„SouthPark”, „PO Box 4563”, „0987786553”, „lwolowitz [at] email.me”) ;
Să folosim acum instrucțiunea SELECT pentru a vizualiza toate rândurile din tabelul membru.
SELECT * FROM `members`;
numar de membru | nume complete | gen | Data de nastere | adresă fizică | adresa postala | număr contct_ | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Femeie | 21-07-1980 | Primul teren, strada nr. 4 | Geantă privată | 0759 253 542 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
2 | Janet Smith Jones | Femeie | 23-06-1980 | 123 | NUL | NUL | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
3 | Robert Phil | Masculin | 07-07-1989 | Strada 3 34 | NUL | 12345 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
4 | Gloria Williams | Femeie | 14-02-1984 | Strada 2 23 | NUL | NUL | NUL |
5 | Leonard Hofstadter | Masculin | NUL | Woodcrest | NUL | 845738767 | NUL |
6 | Sheldon Cooper | Masculin | NUL | Woodcrest | NUL | 976736763 | NUL |
7 | Rajesh Koothrappali | Masculin | NUL | Woodcrest | NUL | 938867763 | NUL |
8 | Leslie Winkle | Masculin | 14-02-1984 | Woodcrest | NUL | 987636553 | NUL |
9 | Howard Wolowitz | Masculin | 24-08-1981 | Parcul din sud | Căsuța poștală 4563 | 987786553 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
Observați că numărul de contact pentru Leonard Hofstadter a scăzut zero (0) din numărul de contact. Celelalte numere de contact nu au scăzut zero (0) la început.
Inserarea într-un tabel dintr-un alt tabel
Comanda INSERT poate fi utilizată și pentru a insera date într-un tabel dintr-un alt tabel. Sintaxa de bază este cea prezentată mai jos.
INSERT INTO table_1 SELECT * FROM table_2;
Să vedem acum un exemplu practic. Vom crea un tabel fals pentru categoriile de filme în scop demonstrativ. Vom numi noul tabel de categorii categories_archive. Scriptul prezentat mai jos creează tabelul.
CREATE TABLE `categories_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` remarks` varchar (500) DEFAULT NULL, CHEIE PRIMARĂ (`category_id`))
Executați scriptul de mai sus pentru a crea tabelul.
Să introducem acum toate rândurile din tabelul categoriilor în tabelul arhivei categoriilor. Scriptul prezentat mai jos ne ajută să realizăm acest lucru.
INSERT INTO `categories_archive` SELECT * FROM` categories`;
Executarea scriptului de mai sus introduce toate rândurile din tabelul categoriilor în tabelul arhivei categoriilor. Rețineți că structurile tabelelor vor trebui să fie aceleași pentru ca scriptul să funcționeze. Un script mai robust este unul care mapează numele coloanelor din tabelul de inserare la cele din tabelul care conține datele.
Interogarea prezentată mai jos demonstrează utilizarea acesteia.
INSERT INTO `categories_archive` (category_id, category_name, remarks) SELECT category_id, category_name, remarks FROM` categories`;
Executarea interogării SELECT
SELECT * FROM `categories_archive`
oferă următoarele rezultate prezentate mai jos.
categorie_id | Numele categoriei | remarci |
---|---|---|
1 | Comedie | Filme cu umor |
2 | Romantic | Povesti de dragoste |
3 | Epic | Filme istorice |
4 | Groază | NUL |
5 | Operă științifico-fantastică | NUL |
6 | Thriller | NUL |
7 | Acțiune | NUL |
8 | Comedie romantica | NUL |
9 | Desene animate | NUL |
10 | Desene animate | NUL |
Exemplu PHP: introduceți în tabelul MySQL
Funcția mysqli_query este utilizată pentru a executa interogări SQL.
Funcția poate fi utilizată pentru a executa următoarele tipuri de interogări;
- Introduce
- Selectați
- Actualizați
- șterge
Are următoarea sintaxă.
mysqli_query($db_handle,$query);
AICI,
"mysqli_query (
...) "este funcția care execută interogările SQL.„$ interogare” este interogarea SQL care trebuie executată
„$ link_identifier” este opțional, poate fi folosit pentru a trece în legătura de conexiune server
Exemplu
$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);}}
rezumat
- Comanda INSERT este utilizată pentru a adăuga date noi într-un tabel. MySql va adăuga un rând nou, odată ce comanda este executată.
- Datele și valorile șirului trebuie să fie cuprinse între ghilimele unice.
- Valorile numerice nu trebuie să fie cuprinse între ghilimele.
- Comanda INSERT poate fi utilizată și pentru a insera date dintr-un tabel în altul.