Insercción de datos y selección de datos
Transcript of Insercción de datos y selección de datos
Para almacenar datos en unabase de datos debemos insertarfilas en las tablas. Para ellos SQLpone a nuestra disposición la
sentencia INSERT.
Inserción de filasEl proceso de inserción de filas consiste en añadir a unatabla una o más filas y en cada fila todos o parte de suscampos.
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 cualsea nuestro proposito.
Sólo podremos omitir un campo al efectuar una insercióncuando este acwepte valores nulos.
Inserción individual de filas
Para realizar la insercción individual de filas
SQL posee la instrucción INSERT INTO. La insercciónindividual de filas es la que más comúnmenteutilizaremos. Su sintaxis es la siguiente:
INSERT INTO <nombre tabla>[(<campo1>[,<campo2>,...])]
values
(<valor1>,<valor2>,...);
Inserción múltiple de filas
La sentencia INSERT permite tambien insertar varios registros en una tabla. Pareello se utiliza una combinación de la sentencia INSERT junto a una sentenciaSELECT. El resultado es que se insertan todos los registros devueltos por laconsulta.
Para poder utilizar la inserción multiple de filas se deben cumplir las siguientesnormas:
La lista de campos de las sentencias insert y select deben coincidir en número ytipo de datos.
Ninguna de las filas devueltas por la consulta debe infringir las reglas de integridadde la tabla en la que vayamos a realizar la inserción
INSERT INTO <nombre_tabla> [(<campo1>[,<campo2>,...])]SELECT [(<campo1>[,<campo2>,...])]FROM
<nombre_tabla_origen>;
La sintaxis de SELECT es compleja, pero en estecapítulo no explicaremos todas sus opciones.Una forma más general consiste en la siguientesintaxis:
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}]
Forma incondicional
La forma más sencilla es la que hemos usado hastaahora, consiste en pedir todas las columnas y noespecificar condiciones.
mysql>mysql> SELECT * FROM gente;
4 rows in set (0.00 sec) mysql>
NOMBRE FECHA
Fulano 1985-04-12
Mengano 1978-06-15
Tulano 2001-12-02
Pegano 1993-02-10
Limitar las columnas: proyección
Mediante la sentencia SELECT es posible hacer unaproyección de una tabla, seleccionando las columnasde las que queremos obtener datos. En la sintaxisque hemos mostrado, la selección de columnascorresponde con la parte "expresion_select". En elejemplo anterior hemos usado '*', que quiere decirque se muestran todas las columnas.
Pero podemos usar una lista de columnas, y de esemodo sólo se mostrarán esas columnas:
mysql> SELECT nombre FROM gente;
4 rows inset (0.0 1 row in set (0.00 sec) mysql>0 sec) mysql> SELECT clave,poblacion FROM ciudad5; Empty set (0.00sec) mysql>
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.9999999999932
5
8 28