Consultas en sql – 2da entrega - Davis Flores...

Post on 11-Mar-2018

244 views 5 download

Transcript of Consultas en sql – 2da entrega - Davis Flores...

qwertyuiopasdfghjklzxcvbnmqw

ertyuiopasdfghjklzxcvbnmqwert

yuiopasdfghjklzxcvbnmqwertyui

opasdfghjklzxcvbnmqwertyuiopa

sdfghjklzxcvbnmqwertyuiopasdf

ghjklzxcvbnmqwertyuiopasdfghj

klzxcvbnmqwertyuiopasdfghjklz

xcvbnmqwertyuiopasdfghjklzxcv

bnmqwertyuiopasdfghjklzxcvbn

mqwertyuiopasdfghjklzxcvbnmq

wertyuiopasdfghjklzxcvbnmqwe

rtyuiopasdfghjklzxcvbnmqwerty

uiopasdfghjklzxcvbnmqwertyuio

pasdfghjklzxcvbnmqwertyuiopas

dfghjklzxcvbnmqwertyuiopasdfg

hjklzxcvbnmqwertyuiopasdfghjk

Consultas en sql – 2da entrega

Ingeniería de Sistemas - UNICA

VII CICLO

FLORES ARCE, DAVIS PURAY HUAMANI, MIRIAM QUISPE CONDORI, CARMEN

ROJAS PURAY, CARLOS

INDICE

1.- Consulta SELECT, WHERE, FROM

2.- Consulta el (*)

3.- Consulta con condiciones: WHERE=’__’

4.- El uso del DISTINCT

5.- Consulta del uso del ORDER BY

6.- Consulta del uso del ASC, DESC

7.- Consulta de opción AND

8.- Consulta de opción OR

9.- Consulta de opción WHERE-IN

10.- Consulta de opción NOT IN

11.- Consulta de rangos el BETWEEN

12.- Consulta de opción- rangos mediante operadores

13.- Consultas del uso de LIKE,’%’

14.- Consulta de las funciones integradas: COUNT, SUM, AVG, MAX, MIN

15.- Consulta con el uso del RTRIM

16.- Múltiples consultas: utilizando el order by, el count, el where; etc.

17.- El uso del HAVING

18.- El uso del INNER JOIN

19.- El uso del MIN y el MAX

20.- EL MIN, MAX; combinaciones

21.- El uso del AS

DIVERSAS CONSULTAS

El uso del WHERE, FROM, SELECT

La clausula “SELECT”: especifica que columnas serán vistan en el resultado de la consulta

La clausula “FROM”: especifica que tablas serán seleccionadas

La clausula “WHERE”: especifica que filas serán seleccionadas

SELECT cod_area, descripcion FROM area

EL USO DEL (*)

SELECT *FROM aula

CONSULTAS CONDICIONALES

SELECT* FROM profesor WHERE apellido= 'Jose'

select cod_pfin, cod_clase from profinal where cod_est= 20101501

EL USO DEL DISTINCT

SELECT DISTINCT NOMBRE, APELLIDO FROM estudiante

SELECT DISTINCT DESCRIPCION, HECHO FROM inasistencia

EL USO DEL ORDER BY

select nombre, fechnac from estudiante order by nombre, fechnac

EL USO DEL ASC Y DESC

select *from estudiante order by nombre desc, cod_est asc

EL USO DEL AND

select*from area where cod_area='A009' and descripcion= 'CTA'

EL USO DEL OR

SELECT*FROM nota WHERE valor='10' OR valor='14 '

EL USO DEL IN

SELECT *FROM profesor WHERE nombre IN ('QUISPE CARRIZALES', 'BARRIOS')

EL USO DEL NOT IN

SELECT * FROM estudiante WHERE nombre NOT IN ('luis fernando','carlos

antonio');

EL USO DEL RANGO - BETWEEN

select*from nota where valor between '11' and '15'

EL USO DEL AND ENTRE RANGOS

SELECT COD_EST, valor FROM profinal WHERE valor >= 15 AND valor <=18

EL USO DEL LIKE ‘%a’, ‘a%’, ‘%a%’

SELECT * FROM estudiante WHERE nombre LIKE 'Luis%'

select cod_est, tutor from estudiante where direccion like '%meza%'

select *from logger where pass like '%53'

select cod_tip from logger where pass like '%53'

El USO DEL SUM Y DEL AVG,MIN Y MAX EN CONJUNTO

select SUM (valor) as promedio from profinal where cod_clase='5AARTE'

select SUM (cod_est) as notaSUM,

AVG (cod_est) as notaAVG,

MIN (cod_est) as notaMIN,

MAX(cod_est) as notaMAX

from nota

EL USO DEL COUNT (*)

SELECT COUNT (*) AS CANTIDAD_DE_ALUMNOS FROM estudiante

EL USO DEL COUNT (*) CON EL ALIAS ‘AS’

SELECT COUNT (DISTINCT valor) AS LAS_NOTAS FROM nota

EL USO DEL RTRIM

SELECT DISTINCT RTRIM (NOMBRE) + ' IN ' + RTRIM (direccion) AS NOM_APEL

FROM estudiante

MULTIPLES CONSULTAS

SELECT COD_CLASE, COD_PRO, COUNT(*) AS CANTIDAD_CLASE FROM clase GROUP BY

cod_clase, cod_pro

MULTIPLES CONSULTAS CON EL USO DE OPERADORES (<>)

SELECT FECHNAC , COUNT (*) AS PRO_CANT FROM estudiante WHERE cod_est <>

20101505 group by fechnac

order by PRO_CANT

EL USO DEL HAVING

SELECT FECHNAC , COUNT (*) AS PRO_CANT FROM estudiante WHERE cod_est <>

20101505 group by fechnac

having COUNT(*) > 1 order by PRO_CANT

EL USO DEL SUM CON MULTIPLES CONSULTAS CONDICIONALES

select SUM(valor ) as renuevo from nota where cod_clase in (select

cod_clase from clase where cod_area= 'A001')

SELECT NOMBRE FROM estudiante WHERE cod_est IN (SELECT cod_est FROM aula

WHERE cod_aula IN (SELECT cod_aula FROM area WHERE cod_area= 'A003' AND

descripcion ='MATEMATICA' ))

EL USO DEL INNER JOIN

SELECT nombre , cod_area FROM profesor, clase WHERE profesor.cod_pro =

clase.cod_pro

SELECT TUTOR, BIMESTRE, cod_pro FROM estudiante, nota,clase WHERE

estudiante.cod_est=nota.cod_est AND nota.cod_clase=clase.cod_clase

SELECT NOMBRE , cod_aula FROM profesor INNER JOIN clase ON

profesor.cod_pro = clase.cod_pro

EL USO DEL MIN

select MIN (valor) as elmin from nota where bimestre='I'

EL USO DEL MAX

select MAX (valor) as elmax from nota WHERE bimestre= 'II'

EL USO DEL MIN Y MAX EN MULTIPLES COMBINACIONES

SELECT COUNT (BIMESTRE) FROM NOTA

SELECT MIN (BIMESTRE) AS PERIODO FROM nota WHERE valor ='14'

USO DEL AS

SELECT COUNT (*) AS AREA_FERMIN FROM area

EJERCICIOS CON ESTAS CONSULTAS

1.- CREACION DE UNA BASE DE DATOS EN CONSOLA.

CREATE DATABASE COLEGIODB

ON

(NAME=COLEGIODB,

FILENAME='C:\COLEGIODB\COLEGIODB.mdf',

SIZE=10MB,

MAXSIZE=20,

FILEGROWTH=2 )

LOG ON

(NAME=AMIGO_LOG,

FILENAME='C:\COLEGIODB\COLEGIODB_log.ldf',

SIZE=10MB,

MAXSIZE=20,

FILEGROWTH=2);

2.- lista de notas de alumnos por curso, nota.

3.- USANDO LA SENTENCIA SELECT SE USARA PARA VER LA FECHA DE CUMPLEAÑOS DE LOS

DOCENTES.

4.- OBTENER LOS DATOS DE LOS PROFESORES CUYA COLUMNA “DIRECCION” ES NULA

5.- CON UNA CONSULTA MUESTRA EL NOMBRE Y EDAD DE CADA UNO DE LOS ALUMNOS

(LA EDAD SE CALCULA RESTANDO AL AÑO DE NACIMIENTO 2010).

6.- Con una consulta se concatena el apellido y el nombre de los

estudiantes y se transforma el apellido en mayúscula.

7.- Seleccionar al estudiante con promedio

final=PF11

select cod_est, cod_clase,VALOR

from profinal

where cod_pfin = 'PF11'

ORDER BY cod_est

COMPUTE SUM(VALOR);

8.-ordenar a los estudiantes por codigo de

promediofinal y por codigo del estudiante sumando

sus promedios finales

select cod_pfin,cod_est, cod_clase,VALOR

from profinal

ORDER BY cod_pfin,cod_est

COMPUTE SUM(VALOR) by cod_pfin;

9.-seleccionar al estudiante cuyo sexo sea masculino

select sum(valor) as va

from profinal

where cod_pfin ='PF11'(select cod_est from estudiante where

sexo ='M');

10.- contar cuantos profesores enseñan en el colegio

select COUNT

(distinct nombre)

as nombre_prof

from profesor;

11.- seleccionar y sumar cuantas aulas hay en 5to grado

select seccion,grado,

COUNT(*) as sec_grado

from aula

group by seccion, grado;

12.- SELECCIONAR A LOS ALUMNOS QUE TENGAN UNA CALIFICACION DE

19 EN EL ARE DE COMUNICACIÓN

select distinct e.nombre as Alumno, ar.descripcion as Area, n.valor as

Calificacion

from estudiante as e

inner join nota as n on e.cod_est=n.cod_est

inner join aula as a on e.cod_aula=a.cod_aula

inner join clase as c on a.cod_aula=c.cod_aula

inner join area as ar on c.cod_area=ar.cod_area

where descripcion ='COMUNICACION' AND valor = '19';

13.- seleccionar todos los doscentes que enseñan el area de

matematica o comunicación

select DISTINCT p.nombre as Profesor ,ar.descripcion

from profesor as p

INNER JOIN clase as c on p.cod_pro=c.cod_pro

inner join area as ar on c.cod_area=ar.cod_area

where descripcion = 'MATEMATICA'or

descripcion = 'COMUNICACION'

order by nombre;

14.- Seleccionar la relacion de alumnos matriculados en el

area de INGLES

SELECT distinct e.nombre as alumno, ar.descripcion

from estudiante as e

inner join nota as n on e.cod_est=n.cod_est

inner join clase as c on n.cod_clase=c.cod_clase

inner join area as ar on c.cod_area=ar.cod_area

where descripcion='INGLES'

15.- Seleccionar los estudiantes del 5to grado “C” que hayan nacido en el año 1993 select distinct e.nombre as alumno,e.fechnac as nacimiento ,a.grado as

Grado, a.seccion as Sección

from estudiante as e inner join aula as a

on e.cod_aula=a.cod_aula

where grado='5' and seccion='c'

and fechnac between '1993/01/01' and '1993/12/31'

order by nombre;

16.- Seleccionar a todos los alumnos ordenados por promedio final descendente select e.nombre as alumno, pr.valor as promedio, pr.cod_clase

from estudiante as e inner join profinal as pr on e.cod_est=pr.cod_est

order by valor desc;