Este documento explica cómo insertar filas en una tabla de base de datos utilizando el comando SQL INSERT. Existen dos formas de insertar filas: individualmente mediante la instrucción INSERT INTO, o múltiples filas a la vez mediante una consulta SELECT. La sintaxis de INSERT cambia dependiendo del método utilizado.
3. Para almacenar datos en una
base de datos debemos insertar
filas en las tablas. Para ellos SQL
pone a nuestra disposición la
sentencia INSERT.
4. Inserción de filas
El proceso de inserción de filas consiste en añadir a una
tabla una o más filas y en cada fila todos o parte de sus
campos.
Podemos distinguir dos formas de insertar filas:
Inserción individual de filas.
Inserción multiple de filas.
La sintaxis de la sentencia INSERT es diferente según cual
sea nuestro proposito.
Sólo podremos omitir un campo al efectuar una inserción
cuando este acwepte valores nulos.
5. Inserción individual de filas
Para realizar la insercción individual de filas
SQL posee la instrucción INSERT INTO. La insercción
individual de filas es la que más comúnmente
utilizaremos. Su sintaxis es la siguiente:
INSERT INTO <nombre tabla>
[(<campo1>[,<campo2>,...])]
values
(<valor1>,<valor2>,...);
6. Inserción múltiple de filas
La sentencia INSERT permite tambien insertar varios registros en una tabla. Pare
ello se utiliza una combinación de la sentencia INSERT junto a una sentencia
SELECT. El resultado es que se insertan todos los registros devueltos por la
consulta.INSERT INTO <nombre_tabla>
[(<campo1>[,<campo2>,...])]
SELECT
[(<campo1>[,<campo2>,...])]
FROM
<nombre_tabla_origen>;
Para poder utilizar la inserción multiple de filas se deben cumplir las siguientes
normas:
La lista de campos de las sentencias insert y select deben coincidir en número y
tipo de datos.
Ninguna de las filas devueltas por la consulta debe infringir las reglas de integridad
de la tabla en la que vayamos a realizar la inserción
7. La sintaxis de SELECT es compleja, pero en
este capítulo no explicaremos todas sus
opciones. Una forma más general consiste en la
siguiente sintaxis:
SELECT [ALL | DISTINCT | DISTINCTROW]
expresión_select,... FROM referencias_de_tablas
WHERE condiciones [GROUP BY {nombre_col |
expresión | posición} [ASC | DESC], ... [WITH
ROLLUP]] [HAVING condiciones] [ORDER BY
{nombre_col | expresión | posición} [ASC | DESC]
,...] [LIMIT {[desplazamiento,] contador | contador
OFFSET desplazamiento}]
8. Forma incondicional
La forma más sencilla es la que hemos usado hasta
ahora, consiste en pedir todas las columnas y no
especificar condiciones.
mysql>mysql> SELECT * FROM gente;
NOMBRE FECHA
Fulano 1985-04-12
Mengano 1978-06-15
Tulano 2001-12-02
Pegano 1993-02-10
4 rows in set (0.00 sec) mysql>
9. Limitar las columnas: proyección
Mediante la sentencia SELECT es posible hacer una
proyección de una tabla, seleccionando las columnas
de las que queremos obtener datos. En la sintaxis
que hemos mostrado, la selección de columnas
corresponde con la parte "expresion_select". En el
ejemplo anterior hemos usado '*', que quiere decir
que se muestran todas las columnas.
Pero podemos usar una lista de columnas, y de ese
modo sólo se mostrarán esas columnas:
mysql> SELECT nombre FROM gente;
10. NOMBRE
Fulano
Mengano
Tulano
Pegano
Las expresiones_select no se limitan a nombres de columnas de
tablas, pueden ser otras expresiones, incluso aunque no
correspondan a ninguna tabla:
mysql> SELECT SIN(3.1416/2), 3+5, 7*4;
SIN(3.1416/2) 3+5 7*4
0.99999999999325 8 28
4rows inset (0.0 1 row in set (0.00 sec) mysql>
0 sec) mysql> SELECT clave,poblacion FROM ciudad5; Empty set (0.00
sec) mysql>