La sintaxis para insertar un nuevo registro en una mesa es muy sencilla:
12INSERTINTO nombre_tabla (campo1, campo2,...)VALORES(valor1, valor2,...);
sql
Donde
- El campo 1 y el campo 2 son campos de nombre_tabla.
- El valor1 y el valor2 son los valores del campo1 y del campo2, respectivamente. SQL le da la flexibilidad de listar los campos en el orden que desee, siempre y cuando especifique los valores correspondientes en consecuencia. Por lo tanto, el siguiente código es equivalente a la consulta anterior:
12INSERTINTO nombre_tabla (campo2, campo1,...)VALORES(valor2, valor1,...);
sql
Cabe señalar que el tipo y la longitud de los datos deben coincidir con la declaración de la tabla. En el mejor de los casos, los valores booleanos (0 ó 1) pueden encajar en un campo declarado como un número entero, pero no necesariamente al revés. En el peor de los casos, el intento de introducir cadenas de 100 caracteres en los campos VARCHAR(50) simplemente terminará en un error o en datos que se truncan. Por lo tanto, es mejor ser tan preciso como sea posible en la declaración del tipo de datos y su uso.
- La elipsis (…) no es parte del código SQL. Indica que otros campos y sus valores correspondientes también pueden ser incluidos en la declaración.
Una variación de INSERT permite insertar varios registros separados por comas a la vez, como se indica a continuación:
1234INSERTINTO nombre_tabla (campo1, campo2,...)VALORES(valor3, valor4,...),(valor5, valor6,...),(valor7, valor8,...);
sql
En la figura 1 se ilustra este enfoque (comúnmente conocido como inserto a granel ), que se utilizó para poblar el cuadro de clientes de la guía anterior. Dado que customer_id es una columna de incremento automático, se rellena automáticamente en cada inserción.
Además, también puede insertar filas en una tabla utilizando los resultados de una consulta SELECT. Por ejemplo,
12INSERTINTO nombre_tabla (campo1, campo2,...)SELECCIONAR campoX, campoY DE otra_tabla;
sql
insertará todos los valores de campoX y campoY en otra_tabla a nombre_tabla . Como es de esperar, el SELECT puede ser simple como el anterior o complejo, implicando dos o más tablas.
Para ilustrarlo, añadamos a nuestra biblioteca un nuevo libro llamado Kicking In the Wall escrito por Barbara Abercrombie y publicado por Harper Collins.
12345678INSERTINTO books(book_name, book_isbn, book_edition, author_id, publisher_id)SELECT$0027Kicking in the wall$0027AS book_name,$00279781608681563$0027AS book_isbn,1AS book_edition, a. author_id, p.publisher_idFROM authors AS a, publishers pWHERE a.author_name =$0027Barbara Abercrombie$0027AND p.publisher_name =$0027Harper Collins$0027;
sql
La Fig. 2 muestra la salida del SELECT por sí solo antes de realizar la inserción real:
Ahora que hemos aprendido a insertar datos en una tabla, exploremos cómo actualizar o eliminar la información que ya está disponible en la base de datos.