martes, 30 de agosto de 2011

TAREA 33 CONSULTAS

REALIZAR LAS SIGUIENTES CONSULTAS

1. Listar todos los funcionarios.

select *
from funcionario
2. Listar las unidades que tengan el texto "EDUCACION" en su descripción.

select *
from UNIDAD
where descripcion like '%EDUCACION%'
3. Listar el código del funcionario que tiene como nombre: "LUISA REYES".

select ci
from funcionario
where nombre='LUISA REYES'
4. Listar todos los distritos.

select *
from DISTRITO
5. Listar los proyectos que se iniciaron en fecha "03-30-2010".
select *
from PROYECTO
where fechainicio='03-30-2010'
6. Listar los distritos que tengan el texto "CALIDAD DE VIDA MEDIA".

select *
from DISTRITO
where descripcion like 'CALIDAD DE VIDA MEDIA%'
7. Listar los ítems de funcionarios cuyos teléfonos se inicie con “732”.

select f.nombre, t.nroTelefono
from FUNCIONARIO f, TELEFONOF t
where f.item like t.Item and t.nroTelefono like '732%'

8. Listar los proyectos cuyo código termine con “1?”.
select *
from PROYECTO
where codP like '%1'

 
9. Listar los proyectos cuyo carnet empiece con “0000”.

select *
from PROYECTO
where codP like '0000%'



 
 10. Listar todas las unidades.

select *
from UNIDAD

 
11. Determinar la cantidad de pasos que siguió el proyecto  “000005

select p.nombre, o.descripcion
from PROYECTO p , OBSERVACIONP o
where p.codP like o.codProy

 
12. Determinar la cantidad de documentos con extension “aplicable”

select *
from DOCUMENTO
where extencion='aplicable'

 
13. Determinar la cantidad de documentos tipo “Minuta Descriptiva” y extension “aplicable”

select *
from DOCUMENTO
where extencion='aplicable' and descripcion='minuta descriptiva'

 
14. Listar todos los proyectos que se iniciaron a partir del ‘20/12/1990’

select *
from PROYECTO
where fechainicio like '20/12/1990'

 
15. Listar todos los documentos correspondientes al proyecto ‘000009

select p.nombre
from PROYECTO p, SEGUIMIENTO s, DOCUMENTO d
where p.codP like s.codProy and s.codDoc like d.codD

16. Cuantos y cuales son pasos en los que intervino el funcionario 146?.

select d.*
from DOCUMENTO d, SEGUIMIENTO s
where d.codD like s.codDoc and s.Item like '146'


 
17. Quién es el funcionario 104?

select *
from FUNCIONARIO
where item='104'

 
18. Cuántos registros tiene la tabla unidad?

select COUNT (*)
from UNIDAD

 
19. El remanente del proyecto ‘000005’ esta correcto?

Select p.codProy, p.remanente
from PRESUPUESTO p
where p.codProy  = '000005'

 
20. Cuánto se presupuesto en todos los proyectos?

select SUM(p.costofin)
from PRESUPUESTO p

 
21. Cuántos proyectos se llevan a cabo en el distrito 5? (4 filas)

select p.*
from PROYECTO p, DIST_PROY dp, DISTRITO d
where p.codP like dp.codProy and  dp.nroDist='5'

 
22. Cuántos distritos son del tipo ‘CALIDAD DE VIDA BAJA’?

select *
from DISTRITO
where descripcion like '%baja%'

 
23. Mostrar los proyectos que se adjudico la empresa ‘Coca Cola’

select p.nombre
from EMPRESA e, ADJUDICACION a, PROYECTO p
where e.nombre = 'COCA-COLA' and a.codProy like p.codP

 
24. Determinar el monto entre todos los proyectos adjudicados por la empresa ‘000008’?

select SUM(p.costoIni)
from ADJUDICACION a, PROYECTO proy, PRESUPUESTO p
where a.Nit='000008' and a.codProy like proy.codP and proy.codP like p.codProy

 
25. Cuántos son los proyectos presupuestados con mas de 15.000Bs?

select *
from PRESUPUESTO
where costoIni > 15000

 
26. Cuántos son los proyectos financiados por el Banco Mundial u ONG?

select COUNT(f.nombre)
from TIPO_FINANCIAMIENTO f, PRESUPUESTO p, PROYECTO proy
where f.nombre='financiado' or f.nombre = 'cooperativo' and f.nrocp like p.nro_cp and p.codProy like proy.codP

 
27. Mostrar los proyectos financiados por la empresa ‘SOBOCE’?

select p.nombre
from EMPRESA e, ADJUDICACION a, PROYECTO p
where e.nombre = 'SOBOCE' and a.codProy like p.codP

 
28. Determinar los proyectos con monto superior a 20.000 de costo inicial?

select proy.nombre
from PRESUPUESTO p, PROYECTO proy
where p.costoIni > 20000 and p.codProy=proy.codP

 
29. Determinar la cantidad de funcionarios de la unidad ’cobranzas’?

select COUNT(f.nombre)
from FUNCIONARIO f, UNIDAD u
where u.nombreU='control' and u.nombreU like f.NombreU
 
30. Mostrar la unidad en la que se encuentra el funcionario ‘MENDEZ PRIETO VICTOR’?

select f.nombre, u.nombreU, u.descripcion
from FUNCIONARIO f, UNIDAD u
where f.nombre='MENDEZ PRIETO VICTOR' and u.nombreU like f.NombreU

31. Determinar el numero de usuarios cuyo idUsuario empieza con el carácter ‘M’?

select COUNT(u.idUsuario)
from USUARIO u
where u.idUsuario like  'M%'





 

32. Determinar la cantidad de teléfonos del funcionario104?

select COUNT(*)
from TELEFONOF tf
where tf.item='104'

 
33. Mostrar los números de teléfono de la empresa 524413?
select te.nroTelefono, te.Nit
from TELEFONOE te
where te.Nit='524413'


viernes, 26 de agosto de 2011

Base-Datos Proy Turismo

El Script es:

create database BDturismo
USE BDturismo

CREATE TABLE pais(
        pais_active integer not null,
        pais_nombre varchar(225),
        pais_iso_cod2 varchar(15),
        pais_iso_cod3 varchar(15),
        pais_id integer not null
primary key(pais_id)
);

CREATE TABLE dest_lugar(
        dest_id varchar(30) not null,
        pais_id integer,
        dept_id integer,
        mun_id integer,
        dest_lugar varchar(30)
primary key(dest_lugar)
);

CREATE TABLE departamento(
        dept_id integer not null,
        pais_id integer,
        dept_nombre varchar(25),
        dept_cod Varchar(15)
        primary key(dept_id),
        foreign key(pais_id) references pais
);

CREATE TABLE observacion(
        obs_id integer,
        ent_id varchar(15),
        obs_titulo varchar(255),
        obs_descripcion text,
        obs_fcreacion date
primary key(obs_id)
);

CREATE TABLE provincia(
        prov_nombre varchar(25) ,
        prov_id integer not null,
        dept_id integer
primary key(prov_id),
foreign key(dept_id) references departamento
);
CREATE TABLE municipio(
        mun_id integer not null,
        prov_id integer,
        mun_nombre varchar(200)
primary key(mun_id),
foreign key(prov_id) references provincia
);

CREATE TABLE tipo_guia(
        tipo_id integer not null,
        tipo_nombre varchar(240),
        tipo_descripcion text
primary key(tipo_id),

);

CREATE TABLE agen_guia(
        ent_id varchar(15),
        guia_id varchar(15)
    primary key(ent_id)
);

CREATE TABLE guia_turistico(
        guia_id varchar(30),
        tipo_id integer,
        mun_id integer,
        guia_ap_paterno varchar(225),
        guia_ap_materno varchar(225),
        guia_vi varchar(35),
        guia_telefono varchar(35),
        guia_celular varchar(35),
        guia_email varchar(225),
        guia_direccion varchar(225),
        guia_fvencimiento_cred date,
        guia_dependiente varchar(225),
        guia_estado integer,
        guia_femision date,
        guia_nombre varchar(225),
        guia_fnacimiento date,
        guia_req_titulo varchar(15),
        guia_req_idioma varchar(225),
        guia_req_bc varchar(5)
      primary key (guia_id),
      foreign key(tipo_id) references tipo_guia,
      foreign key(mun_id) references municipio
);


CREATE TABLE destinos(
        dest_id varchar(30),
        dest_nombre varchar(225),
        dest_descripcion text
      primary key(dest_id)
);

CREATE TABLE agen_dest(
        ent_id varchar(15),
        agdest_id varchar(15),
        dest_id varchar(30)
      primary key(agdest_id)
    
);
CREATE TABLE agencia_operadora(
        agoperadora_id varchar(15) not null,
        ent_id varchar(15)
primary key(agoperadora_id)
);

CREATE TABLE especialidades(
        esp_id integer not null,
        esp_nombre varchar(225),
        esp_descripcion text
        primary key(esp_id),
);

CREATE TABLE agen_esp(
        esp_id integer,
        ent_id varchar(15),
        agesp_id integer
      primary key(agesp_id)
      foreign key(esp_id) references especialidades
);

CREATE TABLE actividades(
        act_id integer not null,
        act_nombre varchar(225),
        act_descripcion text
        primary key(act_id),
);

CREATE TABLE agen_act(
        ent_id varchar(15) ,
        agact_id integer,
        act_id integer
primary key(agact_id),
foreign key(act_id) references actividades
);


CREATE TABLE entidad(
        mun_id integer,
        ent_id varchar(15),
        ent_reg_dept varchar(30),
        ent_reg_dept_ant varchar(30),
        ent_resol_gob varchar(35),
        ent_razon_social varchar(225),
        ent_telefono varchar(35),
        ent_fax varchar(35),
        ent_email varchar(225),
        ent_sitio_web varchar(225),
        ent_latitud double precision,
        ent_longitud double precision,
        ent_fcreacion date,
        ent_fmodificacion date,
        ent_eliminar integer,
        ent_categoria varchar(225),
        ent_tipo varchar(30),
        ent_nro_nit varchar(20),
        ent_direccion varchar(255),
        ent_zona varchar(255),
        ent_nro_folio varchar(30),
        ent_rd_femision date,
        ent_rd_fvencimiento date
primary key(ent_id),
foreign key(mun_id) references municipio
);

CREATE TABLE representante_legal(
        rep_id integer not null,
        ent_id varchar(15),
        rep_nombre varchar(220),
        rep_ap_paterno varchar(225),
        rep_ap_materno varchar(225),
        rep_ci varchar(35),
        rep_telefono varchar(35),
        rep_celular varchar(35),
        rep_email varchar(225),
        rep_direccion varchar(225),
        rep_nacionalidad varchar(200)
primary key(rep_id),
foreign key(ent_id) references entidad
);

CREATE TABLE gerente(
        ger_id integer,
        ent_id varchar(15),
        ger_nombre varchar(220),
        ger_ap_paterno varchar(225),
        ger_ap_materno varchar(225),
        ger_ci varchar(35),
        ger_telefono varchar(35),
        ger_celular varchar(35),
        ger_email varchar(225),
        ger_direccion varchar(225),
        ger_nacionalidad varchar(200)
primary key(ger_id),
foreign key(ent_id) references entidad

);

CREATE TABLE pmc(
        pmc_id integer,
        ent_id varchar(15),
        pmc_codigo varchar(30),
        pmc_nro_act_eco varchar(30),
        pmc_femision date,
        pmc_fvencimiento date
    primary key(pmc_id),
    foreign key(ent_id) references entidad
);


CREATE TABLE fundempresa(
        ent_id varchar(15),
        fund_id integer,
        fund_nro_matricula varchar(30),
        fund_capital double precision,
        fund_nro_registro varchar(30),
        fund_fregistro date,
        fund_fvencimiento date,
        fund_moneda varchar(30),
        fund_factualizacion date
      primary key (fund_id),
      foreign key(ent_id) references entidad
    
);

CREATE TABLE hospedajes(
        ent_id varchar(15),
        hosp_nro_rest integer,
        hosp_nro_camas integer,
        hosp_nro_hab_banho_comp integer,
        hosp_nro_hab_banho_priv integer,
        hosp_id integer,
      primary key(hosp_id),
      foreign key(ent_id) references entidad
);

CREATE TABLE aseguradora(
        aseg_id integer,
        aseg_nombre varchar(255),
        aseg_telefono varchar(100),
        aseg_email varchar(255),
        aseg_direccion varchar(255),
        aseg_sitio_web varchar(255)
primary key(aseg_id),
);

CREATE TABLE poliza_seguro(
        pol_id integer,
        ent_id varchar(15),
        aseg_id integer,
        pol_nro_poliza varchar(30),
        pol_cod varchar(10),
        pol_precio double precision,
        pol_moneda varchar(10),
        pol_fapertura date,
        pol_fvencimiento date,
        pol_observacion text
primary key(pol_id),
foreign key (ent_id) references entidad,
foreign key (aseg_id) references aseguradora
);

CREATE TABLE cobertura(
        cob_id integer ,
        pol_id integer,
        cob_nombre varchar(255),
        cob_precio double precision,
        cob_moneda varchar(10)
primary key(cob_id),
foreign key(pol_id) references poliza_seguro
);

CREATE TABLE pers_hosp(
        pers_id integer,
        ent_id varchar(15),
        fecha_ingreso date,
        nro_pieza varchar(30),
        procedencia varchar(255),
        fecha_salida date,
        tipo_ing varchar(30)
primary key(pers_id),
foreign key(ent_id) references entidad

);

CREATE TABLE profesion(
        prof_id integer,
        prof_nombre varchar(255),
        prof_descripcion text
      primary key (prof_id),        
);

CREATE TABLE persona_hospedada(
        pais_id integer,
        prof_id integer,
        pers_id integer,
        pers_nombre varchar(255),
        pers_apellidos varchar(255),
        pers_edad integer,
        pers_ci varchar(30),
        pers_nro_pasaporte varchar(30),
        pers_sexo varchar(10)
    primary key(pers_id),
    foreign key(pais_id) references pais,
    foreign key(prof_id) references profesion
);


CREATE TABLE historial(
        ent_id varchar(15),
        hist_id integer,
        pol_id integer,
        pmc_id integer,
        fund_id integer,
        usu_id integer,
        hist_descrip text,
        hist_fecha date
      primary key(hist_id),
      foreign key(ent_id) references entidad,
      foreign key(pmc_id) references pmc,
      foreign key(pol_id) references poliza_seguro,
      foreign key(fund_id) references fundempresa,
      foreign key(ent_id) references entidad
);

CREATE TABLE usuario(
        usu_id integer,
        fund_id integer,
        rol_cod varchar(10),
        usu_login varchar(255),
        usu_pass varchar(255),
        usu_fcreacion date,
        usu_fmodif date,
        usu_est integer,
        usu_acces_ent varchar(10),
        usu_acces_guia varchar(10),
        usu_acces_pd varchar(10),
        usu_acces_aseg varchar(10),
        usu_acces_prof varchar(10),
        usu_acces_pais varchar(10),
        usu_acces_dept varchar(10),
        usu_acces_prov varchar(10),
        usu_acces_mun varchar(10),
        usu_acces_tipo_guia varchar(10),
        usu_acces_email varchar(10),
        usu_acces_act varchar(10),
        usu_acces_esp varchar(10),
        usu_acces_dest varchar(10)
primary key(usu_id),
foreign key()
);

CREATE TABLE historial_usuario(
        hist_id integer,
        hist_descripcion text,
        usu_id integer,
        hist_fecha date
primary key(hist_id),
foreign key (usu_id) references usuario
);

CREATE TABLE roles(
        rol_cod varchar(10),
        rol_nombre varchar(255),
        rol_descripcion text
primary key(rol_cod),
);

CREATE TABLE dependencia(
        dep_id integer,
        dep_sigla varchar(150),
        dep_nombre varchar(255),
        dep_est integer,
        dep_tipo varchar(150),
        dep_nivel varchar(255),
        dep_telefono varchar(15),
        dep_tel_interno varchar(15),
        dep_direccion varchar (255)
primary key(dep_id)
);

CREATE TABLE cargo(
        car_id integer,
        car_fcreacion date,
        car_nombre varchar(255),
        car_descripcion text,
        car_est varchar(15),
         primary key(car_id)
);

CREATE TABLE funcionario(
        fun_id integer,
        car_id integer,
        dep_id integer,
        fun_fingreso date,
        fun_est varchar(15),
        fun_nombre varchar(255),
        fun_ap varchar(255),
        fun_am varchar(255),
        fun_direc varchar(255),
        fun_telf varchar(15),
        fun_titulo varchar(255)
      primary key (fun_id),
      foreign key (car_id) references cargo,
      foreign key(dep_id) references dependencia       
);

martes, 23 de agosto de 2011

Consultas Multitabla

Las consultas multitabla
El INNER JOIN
El Inner join es un tipo de combinación interna.
La combinación interna nos permite mostrar los datos de dos o más tablas a través de una condición
Otra opción es utilizar la cláusula INNER JOIN. Su sintaxis es identica a la de una consulta SELECT habitual, con la particularidad de que én la cláusula FROM sólo aparece una tabla o vista, añadiendose el resto de tablas a través de cláusulas INNER JOIN .

SELECT [ALL | DISTINCT ]
             <nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>
[{INNER JOIN  <nombre_tabla> ON <condicion_combinacion>}]
[WHERE <condicion> [{ AND|OR <condicion>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
                  [{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]
 

El ejemplo anterior escrito utilizando la clausula INNER JOIN  quedaria de la siguiente manera:

SELECT tCoches.matricula,
       tMarcas.marca,
       tCoches.modelo,
       tCoches.color,
       tCoches.numero_kilometros,
       tCoches.num_plazas
FROM tCochesINNER JOIN tMarcas ON tCoches.marca = tMarcas.codigo 



La cláusula INNER JOIN permite separar completamente las condiciones de combinación con otros criterios, cuando tenemos consultas que combinan nueve o diez tablas esto realmente se agradece. Sin embargo muchos programadores no son amigos de la cláusula INNER JOIN, la razón es que uno de los principales gestores de bases de datos, ORACLE, no la soportaba. Si nuestro porgrama debia trabajar sobre bases de datos ORACLE no podiamos utilizar INNER JOIN. A partir de la versión.
Debajo vemos por separado la consulta de datos de las tablas CARGO y EMPLEADO:El resultado del Inner Join vendria a ser:

El LEFT JOIN y RIGHT JOIN
Si queremos hablar del left join y del right join debemos hablar primero de la combinación externa, Son una extensión del INNER JOIN
Combinación Externa
    La combinación interna es excluyente. Esto quiere decir que si un registro no cumple la condición de combinación no se incluye en los resultados. De este modo en el ejemplo anterior si un coche no tiene grabada la marca no se devuelve en mi consulta.
    Según la naturaleza de nuestra consulta esto puede ser una ventaja , pero en otros casos significa un serio problema. Para modificar este comportamiento SQL pone a nuestra disposición la combinación externa. La combinación externa no es excluyente.
    La sintaxis es muy parecida a la combinación interna

SELECT [ALL | DISTINCT ]
             <nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>
[{LEFT|RIGHT OUTER JOIN  <nombre_tabla> ON <condicion_combinacion>}]
[WHERE <condicion> [{ AND|OR <condicion>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
                  [{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]] 



Como mejor se ve la combinación externa es con un ejemplo La combinación externa puede ser diestra o siniestra, LEFT OUTER JOIN o RIGHT OUTER JOIN.  Con LEFT  OUTER JOIN obtenemos todos los registros de en la tabla que situemos a la izquierda de la clausula JOIN, mientras que con RIGHT OUTER JOIN obtenmos el efecto contrario.
    Como mejor se ve la combinación externa es con un ejemplo.

SELECT tCoches.matricula,
       tMarcas.marca,
       tCoches.modelo,
       tCoches.color,
       tCoches.numero_kilometros,
       tCoches.num_plazas
FROM tCochesLEFT OUTER JOIN tMarcas ON tCoches.marca = tMarcas.codigo

Esta consulta devolverá todos los registros de la tabla tCoches, independientemente de que tengan marca o no. En el caso de que el coche no tenga marca se devolverá el valor null para los campos de la tabla tMarcas.
    Visualmente (la consulta devuelve los datos en azul)
    El mismo ejemplo con RIGHT OUTER JOIN.

SELECT tCoches.matricula,
       tMarcas.marca,
       tCoches.modelo,
       tCoches.color,
       tCoches.numero_kilometros,
       tCoches.num_plazas
FROM tCochesRIGHT OUTER JOIN tMarcas ON tCoches.marca = tMarcas.codigo 


Esta consulta devolverá los registros de la tabla tCoches que tengan marca relacionada y todos los registros de la tabla tMarcas, tengan algún registro en tCoches o no.
    Visualmente (la consulta devuelve los datos en azul) 
En Resumen
FUNCIONES AGREGADAS
Utilizando como ejemplo y aplicando junto a las anteriores funciones ya vistas INNER JOIN , RIGHT JOIN, LEFT JOIN, tenemos las siguientes funcoines agregadas:

comp representa cualquier operador de comparación ( =, <, >, <=, >=, o <> ) y se utiliza para establecer la condición de emparejamiento.
Se pueden definir varias condiciones de emparejamiento unidas por los operadores AND y OR poniendo cada condición entre paréntesis. Ejemplo:
SELECT *
FROM detalle-compra INNER JOIN productos ON (detalle-compra.fab = productos.idfab) AND (pedidos.producto = productos.idproducto)

Se pueden combinar más de dos tablas
En este caso hay que
sustituir en la sintaxis una tabla por un INNER JOIN completo.

Por ejemplo:
SELECT *
FROM (pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie) INNER JOIN empleados ON pedidos.rep = empleados.numemp


La cláusula GROUP BY
    La clausula GROUP BY combina los registros con valores idénticos en un único registro. Para cada registro se puede crear un valor agregado si se incluye una función SQL agregada, como por ejemplo Sum o Count, en la instrucción SELECT. Su sintaxis es: 

SELECT [ALL | DISTINCT ]
             <nombre_campo> [{,<nombre_campo>}]
             [{,<funcion_agregado>}]
FROM <nombre_tabla>|<nombre_vista>
        [{,<nombre_tabla>|<nombre_vista>}]
[WHERE <condicion> [{ AND|OR <condicion>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
       [{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]] 



GROUP BY es opcional. Si se utiliza GROUP BY pero no existe una función SQL agregada en la instrucción SELECT se obtiene el mismo resultado que con una consulta SELECT DISTINCT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalúan en ninguna de las funciones SQL agregadas.
    Todos los campos de la lista de campos de SELECT deben incluirse en la cláusula GROUP BY o como argumentos de una función SQL agregada.

SELECT marca, modelo, SUM(numero_kilometros)
FROM tCoches
GROUP BY marca, modelo


La cláusula HAVING
    Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING. Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar los registros una vez agrupados.HAVING es similar a WHERE, determina que registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar. HAVING permite el uso de funciones agregadas 

SELECT marca, modelo, SUM(numero_kilometros)
FROM tCoches
WHERE marca <> 'BMW'
GROUP BY marca, modelo
HAVING SUM(numero_kilometros)>100000


En el ejemplo anterior, no se cuentan los datos para todas las marcas menos "BMW", una vez que se han contado, se evalua HAVING, y el conjunto de resultados devuelve solo aquellos modelos con más de 100.000 km.

AVG
. Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una consulta. Su sintaxis es la siguiente.
  

AVG(<expr>)   
 


En donde expr representa el campo que contiene los datos numéricos para los que se desea calcular la media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La media calculada por Avg es la media aritmética (la suma de los valores dividido por el número de valores). La función Avg no incluye ningún campo Null en el cálculo.

SELECT marca, modelo, AVG(numero_kilometros)
FROM tCoches

GROUP BY marca, modelo


Count
    Calcula el número de registros devueltos por una consulta. Su sintaxis es la siguiente:

 COUNT(<expr>)  



En donde expr contiene el nombre del campo que desea contar. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texot.

Aunque expr puede realizar un cálculo sobre un campo. Count simplemente cuenta el número de registros sin tener en cuenta que valores se almacenan en los registros. La función Count  no cuenta los registros que tienen campos null a menos que expr  sea el caracter comodin asterisco(*). Si utiliza un asterisco, Count  calcula el numero total de registros, incluyendo aquellos  que contienen campos null, Count(*) es considerablemente más rápida que Count (Campo). No se debe poner el asterisco entre dobles comillas('*').
 
SELECT COUNT(*) FROM tCoches;
SELECT marca, COUNT(modelo)
FROM tCoches
GROUP BY marca;
SELECT marca, COUNT(DISTINCT modelo)
FROM tCoches
GROUP BY marca;


 Max, Min

    Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es:


MIN(<expr>)
  MAX(<expr>)  




En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).

SELECT marca, modelo, MIN(numero_kilometros)
                    , MAX(numero_kilometros)
FROM tCoches
GROUP BY marca, modelo



Sum

    Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es:


SUM(<expr>)


 En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).