13
Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros.
AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el número de registros de la selección
SUM Utilizada para devolver la suma de todos los valores de un campo determinado
MAX Utilizada para devolver el valor más alto de un campo especificado
MIN Utilizada para devolver el valor más bajo de un campo especificado
14
Supongamos la BD para una librería con la siguiente estructura
15
Mostrar todos los datos que están en la tabla libros
Select * from libros
Otra opción es poner exactamente qué campos quiere mostrar.
16
Otras consultas
select titulo, precio, precio*1.15 from libros
select titulo, precio, precio*.15 from libros where precio>250
select titulo, precio, precio*.15 from libros where precio>250 order by precio
select titulo, precio, precio*.15 from libros where precio between 220 and 300 order by precio
17
Consultas que implican más de una tabla:Mostrar apellido del autor y el título del libro.
select autorlibro.apellidos, libros.titulo from autorlibro, libros where libros.ISBN= autorlibro.ISBN
18
Más consultas
select autorlibro.apellidos, libros.titulo from autorlibro, libros where libros.ISBN= autorlibro.ISBN and autorlibro.apellidos like 'Jo%
Si hacemos la siguiente consulta:
SELECT * FROM ventas
La siguiente consulta:
select sum(preciounidad*cantidad) from ventas
select sum(preciounidad*cantidad) from ventas where fecha = '2003-12-13'
Arrojaría
19
select autorlibro.apellidos, libros.titulo, libros.precio from autorlibro, libros where libros.ISBN= autorlibro.ISBN and autorlibro.apellidos like 'Joy% order by titulo
select autorlibro.apellidos, libros.titulo, libros.precio from autorlibro, libros where libros.ISBN= autorlibro.ISBN and (autorlibro.apellidos like 'Joy%' or autorlibro.apellidos like 'Br%') order by titulo
20
La instrucción DELETE
Crea una consulta de eliminación que elimina los registros de una o más de las tablas listadas en la cláusula FROM que satisfagan la cláusula WHERE. Esta consulta elimina los registros completos, no es posible eliminar el contenido de algún campo en concreto. Su sintaxis es:
DELETE FROM Tabla WHERE criterio
Ejemplo:
delete from ventas where fecha >= '2003-12-16'
21
INSERT
Insertar un único Registro
INSERT INTO Tabla (campo1, campo2, .., campoN)
VALUES (valor1, valor2, …, valorN)
INSERT INTO ventas (id, RFC, ISBN, Cliente, Fecha, Cantidad, PrecioUnidad) VALUES (5, 'SAHC-850226', '33-588-37741-x', 'Santos Hernandez Cristina', '2003-12-14', 6, 250)
Si los datos del registro a insertar le son enviados en el mismo orden en que están definidos en la tabla, se puede usar la siguiente sintaxis
INSERT INTO Tabla VALUES (valor1, valor2, …, valorN)
También es posible insertar datos generados por una consulta.
INSERT INTO Tabla SELECT TablaOrigen.* FROM TablaOrigen
22
Actualización de valores
No genera ningún resultado. Para saber qué registros se van a cambiar, hay que examinar primero el resultado de una consulta de selección que utilice el mismo criterio y después ejecutar la consulta de actualización.
Update tabla set campo1=valor1, campo2=valor2 [, ] where condiciones
update libros set precio=precio*0.95
update libros set sueldo=sueldo*1.05 where sueldo > 45.50
23
USANDO PHP y MySQLConexión a la BD
< ?php
function Conectarse()
{ if (!($link=mysql_connect("localhost","usuario","Password")))
{ echo "Error conectando a la base de datos.";
exit(); //es posible también la instrucción die(mensaje);
}
if (!mysql_select_db("base_datos",$link))
{ echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$link=Conectarse();
echo "Conexión con la base de datos conseguida.< br>";
mysql_close($link); //cierra la conexion
?>
24
Instrucciones para conexión a BD en MySQL
Al ejecutar la instrucción mysql_connect se crea un vínculo entre la base de datos y la pagina PHP, este vínculo será usado posteriormente en las consultas que hagamos a la base de datos.
Finalmente, una vez que hemos terminado de usar el vínculo con la base de datos, lo liberaremos con la instrucción mysql_close para que la conexión no quede ocupada.
mysql_query sirve para hacer una consulta a la base de datos en el lenguaje de consultas SQL
mysql_fetch_array se extraen los datos de la consulta a un array.
mysql_free_result liberamos la memoria usada en la consulta.
25
< body>
< ?php
include("conex.php"); //en este archivo está la función conectarse
$link= conectarse();
$result = mysql_query("select titulo, precio from libros",$link);
?>
< TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
< TR>< TD>Titulo< /TD>< TD>Precio< /TD>< /TR>
< ?php
while($row = mysql_fetch_array($result)) {
printf("< tr>< td>%s< /td>< td>%s< /td>< /tr>", $row[titulo"],$row[precio"]);
}
mysql_free_result($result);
mysql_close($link);
?>
< /table>
< /body>
26
Inserción de registros
< ?php
include("conex.php");
$link=Conectarse();
//Petición de los datos desde la otra forma
$nombre=$_GET['nombre'];
$apellidos=$_GET['apellidos'];
//ejecución de la inserción
mysql_query ("insert into prueba (Nombre,Apellidos) values ('$nombre','$apellidos')",$link);
mysql_close($link);
?>
27
Bibliografía
Tutoriales SQL
http://www.programacion.com/tutorial/sql/
http://www.wwits.net/programs/dbtutorindex.phtml
PHP y MySQL
http://www.webestilo.com/php/php07a.phtml
Libros:
Database Design Guide Pervasive Software (e-book)
FUNDAMENTOS DE BASES DE DATOS – KORTH, HENRY F.
Página anterior | Volver al principio del trabajo | Página siguiente |