mysql insert into table insert statement syntax examples
Aquest tutorial explica la declaració de la taula INSERT INTO de MYSQL juntament amb la sintaxi i exemples de consulta. A més, apreneu diferents variacions de l’ordre d’inserció MYSQL:
A MySQL, l'ordre INSERT s'utilitza per afegir dades a la taula. Mitjançant aquesta ordre, podem inserir dades en una o més files en una sola transacció. A més, les dades es poden afegir a una o més taules d'una sola transacció.
Repassarem tot això en les properes seccions. Abans de continuar endavant, tingueu en compte que estem utilitzant la versió 8.0 de MySQL. Podeu descarregar-lo des de aquí .
Què aprendreu:
- Sintaxi d’ordres MySQL INSERT
- Variacions de la declaració INSERT de MySQL
- Preguntes i respostes freqüents
- Conclusió
Sintaxi d’ordres MySQL INSERT
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Sintaxi Explicació:
- La sintaxi comença amb la paraula clau “INSERT INTO”, informant així el servidor MySQL sobre el tipus d’activitat a realitzar. Aquesta és una paraula clau obligatòria i no es pot ometre.
- A continuació ve el nom de la taula en què s'ha de realitzar l'acció d'inserció. Això és obligatori i tampoc no es pot ometre.
- A continuació, apareixeran els noms de columna que s’inseriran juntament amb els valors corresponents. Una vegada més, això també és obligatori i no es pot ometre.
- A continuació, apareixerà la clàusula de valors. En aquesta clàusula, cal proporcionar el valor de totes i cadascuna de les columnes que estem inserint a la taula. La seqüència de valors i la seqüència de noms de columnes haurien d’estar sincronitzats.
- El nombre i els tipus de dades de les columnes han de ser els mateixos que els valors.
Modificadors a la declaració INSERT
- BAIX_PRIORITAT: Aquest modificador informa al motor MySQL de retardar l'execució de la sentència INSERT fins que no hi hagi connexions amb la lectura de la taula que estem intentant INSERTAR. Això ajuda a aconseguir la coherència de totes les altres operacions que es realitzaran en aquesta taula.
- ALTA PRIORITAT: Aquest modificador informa al motor MySQL que doni una alta prioritat a la sentència INSERT sobre qualsevol altra sentència / transacció que s'està realitzant sobre la taula.
- Ignora: Aquest modificador informa a MySQL Engine que ignora els errors que puguin sorgir a causa de l'execució de la instrucció INSERT. Qualsevol error que es produeixi es tractaria com a meres advertències i la inserció de registres a la taula es produiria sense obstacles.
- RETARD: Aquesta és l'extensió MySQL a SQL estàndard. Quan l’usuari emet INSERT DELAYED, el servidor fa cues a totes les files i les dades s’insereixen a la taula més endavant, quan la taula no s’utilitza en cap altra transacció.
MySQL INSERT Exemple
A continuació es mostra una taula de mostra creada a MySQL.
Nom de l'esquema: pacífic
Nom de la taula: empleats
Noms de columna:
- empNum: manté valors enters per al número d'empleat.
- lastName: manté valors varchar per al cognom de l’empleat.
- firstName: manté els valors varchar per al nom de l’empleat.
- correu electrònic: manté valors varchar per a l’identificador de correu electrònic de l’empleat.
- deptNum: manté el nom de departament al qual pertany un empleat.
- salari: manté els valors decimals del salari de cada empleat.
- data_inici: manté valors de data per a la data d’incorporació de l’empleat.
Nom de l'esquema: pacífic
Nom de la taula: història_empleats
Noms de columna:
- empNum: manté valors enters per al número d'empleat.
- lastName: manté valors varchar per al cognom de l’empleat.
- firstName: manté els valors varchar per al nom de l’empleat.
- correu electrònic: manté valors varchar per a l’identificador de correu electrònic de l’empleat.
- deptNum: manté el nom de departament al qual pertany un empleat.
- salari: manté els valors decimals del salari per a cada empleat.
- data_inici: manté valors de data per a la data d’incorporació de l’empleat.
Variacions de la declaració INSERT de MySQL
# 1) MySQL Insereix una fila única
En primer lloc, veurem un escenari en què hem especificat tant els noms de les columnes com els valors que cal inserir mitjançant la paraula clau INSERT INTO.
Per exemple, Aquí intentarem inserir un nou empleat. Afegirem el número, el nom i el cognom de l’empleat, juntament amb l’actualització de l’identificador de correu electrònic, el salari i l’identificació del departament al qual hauria de pertànyer el nou empleat.
La consulta i els resultats corresponents són els següents:
Tal com es mostra a la imatge superior, la instrucció INSERT s’ha executat correctament i ha inserit una fila a la taula de l’empleat.
La sentència de sortida següent mostra l'hora en què s'ha executat la sentència, la sentència MySQL que s'ha executat i el nombre de files afectades.
Tingueu en compte aquí, que el valor de cada columna s'esmenta en el mateix ordre que el dels noms de columna. A més, observeu que la columna amb el tipus de dades enter / decimal no està inclosa dins de comes invertides, però, els tipus de columna amb tipus de dades varchar / char s’han inclòs amb comes invertides.
Per tal de verificar la sortida d’aquesta sentència INSERT, executem la sentència SELECT en aquesta taula amb l’empNum com a 1012.
Consulta:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Instantània de la taula després:
empNum | cognom | nom | correu electrònic | deptNum | Sou | |
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Luter | Martin | ml@gmail.com | 3 | 13000 |
# 2) MySQL Inserint dades només a la columna especificada
A continuació, hi ha una altra manera d’inserir dades en una taula, però inserint registres només a les columnes necessàries i no a totes les columnes. Tanmateix, tingueu en compte que no podem ometre les columnes clau d’aquest escenari. En el cas de la taula del nostre empleat, la columna clau és la columna empNum. Provem-ho.
Per exemple, Inserirem un registre nou a la taula d’empleats amb dades només a empNum, lastName, firstName. No assignarem cap identificació de correu electrònic, cap departament ni cap salari per a aquest empleat.
A continuació es mostra la consulta i el seu resultat:
Tal com es mostra a la imatge superior, la instrucció insert s'ha executat correctament i s'ha inserit una fila a la taula de l'empleat.
com obrir un fitxer apk a Windows
Tingueu en compte, que per inserir només les columnes seleccionades, les columnes que hem saltat s'han de declarar NULS o bé haurien de tenir algun valor per defecte que s'emplenaria en cas que s'ometés aquesta columna. Si aquesta condició no es compleix, la instrucció insert fallaria.
Verifiquem l'execució de la sentència INSERT anterior executant una sentència SELECT per a empNum = 1013.
Consulta:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Instantània de la taula després:
empNum | cognom | nom | correu electrònic | deptNum | Sou |
---|---|---|---|---|---|
1013 | Nolan | Chris | NUL | NUL | NUL |
# 3) MySQL Insereix diverses files
A continuació, passarem per l'escenari en què hem d'inserir diverses files a la taula amb la mateixa sentència INSERT.
Per exemple, en aquest cas, hem d'esmentar els noms de les columnes només una vegada, però podem repetir els valors d'aquestes columnes tantes vegades com calgui.
A continuació es mostra la consulta juntament amb els resultats associats:
Tal com es mostra a la imatge superior, l'execució de la declaració va tenir èxit.
Observeu la part del missatge, que indica que s'han afectat 3 files, això implica que aquesta única instrucció INSERT ha inserit 3 registres amb l'execució d'aquesta instrucció INSERT.
Més lectura = >> Tutorial de declaració de MySQL If
Verifiquem la sortida de la nostra instrucció INSERT executant la instrucció SELECT per als nous identificadors d’empleats 1014, 1015 i 1016.
Els detalls són els següents:
Consulta:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES (1014, 'Murray', 'Keith', 'km@gmail.com', 1, 25000), (1015, 'Branson', 'John', 'jb@gmail.com', 2, 15000), (1016, 'Martin', 'Richard', 'rm@gmail.com', 4, 5000) ;
Instantània de la taula després:
empNum | cognom | nom | correu electrònic | deptNum | Sou |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | 1 | 25000 |
1015 | Branson | Joan | jb@gmail.com | 2 | 15000 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 |
# 4) Data d’inserció de MySQL
A continuació, passarem per l'escenari en què hem d'inserir valors a la columna de data.
Per exemple, Inserir valors a la columna de la data pot ser complicat. La data a MySQL es podria afegir al format 'AAAA-MM-DD'. Per aconseguir-ho, afegim una columna data_inici amb el valor per defecte com a '0001-01-01'.
Això implica que tots els registres existents a la taula de l’empleat amb la data_inici s’actualitzaran com a ‘0001-01-01’. La declaració alter serà la següent.
Consulta:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Verifiquem la sortida de la consulta anterior executant una sentència SELECT senzilla a la taula:
Per tant, hem afegit una nova columna de data amb el tipus de dades com a 'DATE' amb el valor predeterminat com a '0001-01-01'. Inserim ara dos registres nous d’empleats, un amb la data actual i un altre amb una data concreta.
proves de programari preguntes i respostes d’entrevistes doc
A continuació es detallen les consultes i els detalls:
Com es mostra a la imatge anterior, hem utilitzat la funció d’inserir diverses files a la taula tal com s’explica a la secció anterior.
El primer registre es va inserir amb la funció CURRENT_DATE (). Aquesta funció retorna la data actual del sistema. El segon registre es va inserir amb una data concreta en format 'AAAA-MM-DD'.
A continuació, verificarem la sortida de la nostra sentència INSERT amb una sentència SELECT per a empNum 1017 i 1018.
El primer registre, amb empNum = 1017, té la data_inici igual que la data actual, que és 25thNovembre de 2019 (en aquest cas, la data en què es va escriure aquest tutorial) en format 'AAAA-MM-DD'.
Consulta:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary, start_date ) VALUES (1017, 'Johnson', 'Eve', 'ej@gmail.com', 3, 5500, CURRENT_DATE()), (1018, 'Bond', 'Nolan', 'nb@gmail.com', 2, 15000, '2019-09-13') ;
Instantània de la taula després:
empNum | cognom | nom | correu electrònic | deptNum | Sou | Data d'inici |
---|---|---|---|---|---|---|
1017 | Johnson | Vigília | ej@gmail.com | 3 | 5500 | 2019.11.25 00:00:00 |
1018 | Llaç | Nolan | nb@gmail.com | 2 | 15000 | 2019.09.13 00:00:00 |
# 5) MySQL Insereix en una taula d'una altra taula
A continuació, passarem per l'escenari en què hem d'inserir dades en una nova taula d'una taula existent.
Per exemple, Penseu en un escenari en què hem de moure periòdicament dades de la taula existent a una taula històrica o d’arxiu. Per aconseguir-ho, creem una nova taula empleat_història.
La nostra tasca és moure les dades de la taula empleat a la taula empleat_història.
La sentència CREATE és la següent:
Consulta:
CREATE TABLE employees_history LIKE employees ;
Verifiquem la sortida de la consulta anterior executant una sentència DESC simple a la nova taula que ens proporcionarà l'estructura de la taula de la nova taula:
Per tant, hem creat una taula nova. Ara carreguem dades en aquesta nova taula de la taula de l’empleat.
=> Obteniu més informació sobre MySQL CREA UNA ORDRE DE TAULA .
A continuació es detallen la consulta i els seus detalls:
Com es mostra a la imatge anterior, la inserció de dades a la nova taula de la taula existent va tenir èxit.
Tingueu en compte la columna de missatges de la pestanya de sortida. Es diu que hi ha 18 files afectades. Això implica que totes les 18 files de la taula existent es van copiar a la taula recentment creada empleats_història.
A continuació, verificarem la sortida de la nostra instrucció INSERT amb una instrucció SELECT a la taula employ_history.
La imatge de dalt mostra totes les files copiades de la taula de l’empleat a la taula història_empleats.
La imatge anterior mostra totes les files copiades de la taula empleats de la taula empleats_història.
Consulta:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Instantània de la taula després:
empNum | cognom | nom | correu electrònic | deptNum | Sou | Data d'inici |
---|---|---|---|---|---|---|
1001 | Andrews | Jack | ja@gmail.com | 1 | 3182.7 | 0001-01-01 |
1002 | Schwatz | Mike | ms@gmail.com | 1 | 5304.5 | 0001-01-01 |
1003 | Langley | Margaret | margaret.langley@gmail.com | 2 | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | llegeix | Pere | pl@gmail.com | 2 | 14333 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | 2 | 16538 | 0001-01-01 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24.494 | 0001-01-01 |
1009 | Copa | Harry | hb@gmail.com | 5 | 30646 | 0001-01-01 |
1010 | Armstrong | Jacob | jacob.armstrong@gmail.com | 4 | 32670 | 0001-01-01 |
1011 | Hanks | Tom | th@gmail.com | NUL | 10100 | 0001-01-01 |
1012 | Luter | Martin | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Nolan | Chris | NUL | NUL | NUL | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | 1 | 25000 | 0001-01-01 |
1015 | Branson | Joan | jb@gmail.com | 2 | 15000 | 0001-01-01 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | Vigília | ej@gmail.com | 3 | 5500 | 2019.11.25 00:00:00 |
1018 | Llaç | Nolan | nb@gmail.com | 2 | 15000 | 2019.09.13 00:00:00 |
Preguntes i respostes freqüents
P # 1) Com s'insereixen dades a la taula de MySQL?
Resposta: Per inserir dades en una taula MySQL, MySQL ens proporciona una paraula clau important de 'INSERT INTO'. Tot seguit el nom de la taula, la llista de columnes i la llista de valors corresponents que cal inserir. Podem utilitzar aquesta paraula clau per inserir una o més columnes a la mateixa transacció.
Q # 2) Expliqueu la clàusula 'INSERT IGNORE INTO'.
Resposta: Quan intentem inserir més d'una fila en una sola instrucció INSERT, és possible que l'execució pugui fallar a causa de dades incorrectes per a qualsevol fila en particular. Això farà que la transacció s'aturi i es recuperi a la confirmació anterior.
arbre d’extensió mínim c ++
Per evitar aquests escenaris, “INSERT IGNORE INTO” s'utilitza. Aquesta clàusula ignora l'error que causa registres no vàlids i només insereix registres vàlids perquè la transacció no s'aturi. Això és útil si heu de fer insercions massives i no us podeu permetre el luxe de refer-lo per cap dada incorrecta d'una fila.
P # 3) Com actualitzo els atributs a MySQL?
Resposta: Podem actualitzar els atributs mitjançant la sentència MySQL Update, amb la sentència que comença amb la paraula clau UPDATE seguida del nom de la taula. El següent és la clàusula SET seguida d’un nom de columna i una clàusula WHERE.
Q # 4) Puc inserir diversos registres en una única transacció MySQL Insert?
Resposta: Com es mostra més amunt, sota el fitxer 'Inserció de dades en diverses files' secció, podem inserir diverses files en una única transacció d’inserció. Podem utilitzar la clàusula INSERT INTO seguida del nom de la taula i la llista de columnes, però en lloc d’una llista de valors, hem d’esmentar diverses llistes de valors per a cadascuna de les columnes.
P # 5) D'on descarregueu MySQL?
Resposta: Podeu descarregar la versió 8.0 de MySQL des d’aquí: MySQL .
Llegiu també => Com descarregar MySQL
P # 6) Es pot utilitzar la clàusula SELECT a la sentència INSERT de MySQL?
Resposta: Sí, SELECT es pot utilitzar juntament amb la sentència INSERT de MySQL. Això s'ha explicat a la secció 'MySQL Inserir una taula des d'una altra taula'. S’utilitza quan hem d’inserir files en una taula, utilitzant les dades ja presents en alguna altra taula.
Per exemple, moure les dades de la taula actual a la taula històrica del magatzem de dades.
Q # 7) Com data MySQL data a les taules?
Resposta: MySQL utilitza el format 'AAAA-MM-DD' per emmagatzemar la data a les taules. El tipus de dades aquí és DATE. L'interval de dates admeses per MySQL va des del '01-01-01' fins al '9999-12-31'.
MySQL també té un tipus de dades DATETIME per emmagatzemar data i hora. El format és 'AAAA-MM-DD hh: mm: ss'. L'interval acceptable és des de '01-01-01 00:00:00' fins a '9999-12-31 23:59:59'.
Lectura recomanada = >> Tutorial sobre tipus de dades MySQL
Conclusió
Així, en aquest tutorial, hem conegut les cinc maneres diferents d’executar sentències INSERT a MySQL.
- MySQL Inserint una fila única
- MySQL Inserir dades només a la columna especificada
- MySQL Inserció de dades en diverses files
- Data d’inserció de MySQL
- MySQL Inserció d'una taula des d'una altra taula
Podem utilitzar qualsevol d’aquestes opcions, segons el nostre requisit del projecte.
Bona lectura !!
Lectura recomanada
- Diferència entre SQL vs MySQL vs SQL Server (amb exemples)
- Top 40 de les millors preguntes i respostes d’entrevistes de MySQL (preguntes del 2021)
- Tutorial de la declaració d'actualització de MySQL: actualització de sintaxi i exemples de consulta
- Sintaxi d'ordres Unix Cat, opcions amb exemples
- Ordre d'ordenació Unix amb sintaxi, opcions i exemples
- Inseriu diversos documents a MongoDB mitjançant matrius
- C # Ús de declaracions i C # Tutorial de mètode virtual amb exemples
- Estructura del programa C # i sintaxi bàsica amb exemples