Vous êtes sur la page 1sur 52

BASE DE DATOS PARA APLICACIONES

Universidad Tecnolgica de San Juan del Ro Ingeniera en Tecnologas de la Informacin y Comunicacin 8 Cuatrimestre

MTI. Alejandro Csar Valencia Garca

BREVE HISTORIA Y DESCRIPCIN DE SQL


La historia de SQL comienza en un laboratorio de IBM en San Jose, California a finales de los 70s. Fue desarrollado originalmente para DB2. SQL es el lenguaje estndar para manipular y obtener datos de bases de datos relacionales. SQL permite al programador o al administrador de base de datos (DBA) hacer lo siguiente:

MTI. Alejandro Csar Valencia Garca

BREVE HISTORIA Y DESCRIPCIN DE SQL


Modificar la estructura de una base de datos

Modificar la configuracin de seguridad


Aadir permisos de usuario en bases de datos o tablas Hacer consultas en una base de datos Actualizar los contenidos de una base de datos

MTI. Alejandro Csar Valencia Garca

SENTENCIAS: CONSULTAS
La estructura bsicas de una consulta consiste en 3 clusulas:

Select: Se utiliza para listar los atributos deseados del resultado de una consulta.
From: Lista las relaciones que deben ser analizadas en la evaluacin de la expresin. Where: engloba los atributos de las relaciones que aparecen en la clusula from. Esta clusula es opcional.
MTI. Alejandro Csar Valencia Garca

SENTENCIAS: CONSULTAS
Ejemplos:

select * from clientes;


select numpedido, total from pedidos; select distinct nombre from datos; SQL permite duplicados en los resultados, pero si se desea eliminar duplicados, se emplea la palabra clave distinct.
MTI. Alejandro Csar Valencia Garca

SENTENCIAS: CONSULTAS
Tambin se puede emplear la palabra All para especificar explcitamente que no se eliminan duplicados. Sin embargo All est implcita en Select por lo que su utilizacin carece de sentido. Las siguientes sentencias obtienen los mismos resultados:

Select all nombre from datos;


Select nombre from datos;

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Expresiones.

La definicin de una expresin es simple: Una expresin retorna un valor. Los tipos de expresiones pueden abarcar tipos de datos como String, Numricos y Booleanos. Por ejemplo, en la siguiente sentencia, monto es una expresin que retorna el valor contenido en la columna o campo monto:
Select monto from pagos;
MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Condiciones.

Si lo que deseas es encontrar un elemento o grupo de elementos en particular en tu base de datos, requieres de una o ms condiciones. Estas se agregan en la clusula where. Las condiciones te permiten hacer consultas especficas. En su forma ms comn, incluyen una variable, una constante y un operador de comparacin. Ejemplo:
Select nombre, apellido, domicilio from clientes where apellido=Perez;
MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Operadores.

Son los elementos que se usan dentro de una expresin para determinar cmo deseas armar tu condicin para obtener los datos. Hay seis tipos de operadores: aritmticos, de comparacin, de carcter, lgicos, de conjunto y miscelneos.
Los operadores aritmticos son: Suma (+), resta (-), divisin (/), multiplicacin (*) y mdulo (%). El operador mdulo obtiene el residuo de una divisin y slo se puede usar con valores enteros.
MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Ejemplo del operador suma.

Supongamos que tenemos una tabla de productos con su precio. Y queremos obtener un listado de los productos donde veamos su precio actual y un nuevo precio al que le agreguemos 100 pesos. La sentencia sera:
Select producto, precio, precio+100 From productos;

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


En el ejemplo anterior la salida nos agrega una columna virtual as:
producto sabritas Coca-cola Precio 15 8 Precio+100 115 108

Si quisiramos cambiar el ttulo de la columna virtual a Total, la sentencia sera:

Select producto, precio, (precio+100) total From productos;


MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Ejemplo del operador resta.

Este operador tiene dos usos posibles. Uno es para cambiar el signo de un nmero. Supongamos que tenemos una tabla de temperaturas como esta:
estado maxima minima

QRO HGO
GTO

28 24
32

2 -4
6

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Esta sentencia manipulara los datos cambiando su signo:

Select estado, -maxima, -minima From temperaturas;


La salida sera:
estado QRO HGO maxima -28 -24 minima -2 4

GTO

-32

-6

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


El otro uso es el de una resta normal. Por ejemplo:

Select estado, maxima, minima, (maxima-minima) diferencia From temperaturas;


Nos dara:
estado QRO HGO maxima 28 24 minima 2 -4 Diferencia 26 28

GTO

32

26

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Ejemplo de los operadores divisin y multiplicacin.

Estos operadores tiene solamente su funcin obvia.


Ejemplos: Select producto,precio,(precio*0.20) descuento From productos;

Select producto,precio,(precio/2) mitadprecio From productos;


MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Operadores de Comparacin.

Se utilizan para comparar expresiones y pueden retornar uno de tres posibles valores: TRUE, FALSE o UNKNOWN (desconocido).
Para entender el concepto de Unknown, es algo similar a NULL. En bases de datos, NULL es la ausencia de datos en un campo (que no es lo mismo a cero o espacio en blanco). Si haces una comparacin como CAMPO=9 y hay un NULL, la comparacin retorna un UNKNOWN.

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


La mayora de las implementaciones proveen un operador especial llamado IS NULL para probar una condicin NULL. Por ejemplo, si queremos obtener los valores nulos de un campo precio en la tabla de productos la sentencia sera:

Select * from productos where precio is null;

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Ejemplo de uso del operador de comparacin igual (=)

Supongamos que tenemos una tabla llamada Amigos con los siguientes datos:
id 1
2 3 4

nombre JUAN
PEDRO LUIS MARIA

apaterno PEREZ
CHAVEZ MACIAS MORALES

amaterno LOPEZ
JUAREZ AGUILAR GUTIERREZ

telefono 129-2000
219-0876 222-3344

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


La siguiente sentencia:

Select * from amigos where nombre=JUAN;


Nos dara este resultado:
id 1 nombre JUAN apaterno PEREZ amaterno LOPEZ telefono 129-2000

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Los otros operadores de comparacin son:

> >= < <= <> !=

Mayor que Mayor o igual que Menor que Menor o igual que Diferente que Diferente que

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Operadores de Caracter.

Se utilizan para manipular la forma en que son representadas las cadenas de caracteres, tanto en la salida de datos como en las condiciones para obtener datos. Si deseas seleccionar partes de una base de datos conforme a un patrn pero no deseas resultados exactos, puedes usar el operador LIKE.

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Supongamos que tenemos una tabla de partes del cuerpo llamada Partes con los siguientes datos:
Id 1 2 3 4 nombre Apendice Manzana de Adn Corazn Columna Vertebral ubicacion Estomago Garganta Pecho Espalda

5
6

Pupila
Rin

Ojo
Baja Espalda

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Si quisieramos obtener las partes del cuerpo que se encuentran en la espalda, la sentencia sera: Select * from partes where ubicacin like %Espalda%; Obtendramos:
Id 4 6 nombre Columna Vertebral Rin ubicacion Espalda Baja Espalda

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Cuando se usa dentro de una expresin LIKE, el signo % es un comodn. Por ejemplo si quiero todas las partes cuyo nombre comience con C, la sentencia sera:

Select * from partes where nombre like C%;


Id 3 4 nombre Corazn Columna Vertebral ubicacion Pecho Espalda
MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Hay otro comodn. EL guin bajo (_), el cual se utiliza para un solo carcter. Digamos que tenemos un campo en una tabla de estados llamado abreviatura, ms o menos as:
Id 1 2 3 4 estado Quertaro Distrito Federal Guerrero Hidalgo abreviatura QR DF GR HG

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Deseamos una consulta que nos diga cuales estados tienen en su abreviatura una letra R como segunda letra. La sentencia sera: Select * from estados where abreviatura like _R;
Id 1 3 estado Quertaro Guerrero abreviatura QR GR

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


El operador de Concatenacin (||) permite unir dos cadenas de caracteres. Por ejemplo, si de la tabla amigos quisieramos obtener una lista con el nombre completo de cada uno la sentencia sera: Select nombre || apaterno || amaterno from amigos;
NOTA: Este operador no lo soporta MySQL, en su lugar se utiliza el comando Concat(campo1,campo2)

MTI. Alejandro Csar Valencia Garca

PRACTICA 1
Hacer una base de datos llamada Practica1 con las siguientes tablas:

MTI. Alejandro Csar Valencia Garca

PRACTICA 1
Alumno
Campo matricula nombre apaterno amaterno domicilio telefono municipio NumHermanos clavecurso Tipo de Dato Int Varchar Varchar Varchar Varchar Varchar Varchar Int int
MTI. Alejandro Csar Valencia Garca

Observaciones Llave primaria

PRACTICA 1
Materia
Campo Clavemateria Nombremateria Tipomateria Tipo de Dato Int Varchar Varchar Observaciones Llave primaria

Cursos
Campo Clavecurso descripcion turno Tipo de Dato Int Varchar Varchar
MTI. Alejandro Csar Valencia Garca

Observaciones Llave primaria

PRACTICA 1
AlumnoMateria
Campo matricula Clavemateria calificacion Tipo de Dato Int Int double Observaciones

MTI. Alejandro Csar Valencia Garca

PRACTICA 1
Realizar las sentencias necesarias para:

Seleccionar a los alumnos que se encuentren inscritos en el segundo turno. Seleccionar el nombre y direccin de los alumnos, concatenando la direccion con el siguiente formato: direccion , Poblacion. Seleccionar nombre y numero de hermanos de los alumnos, agregando despus del numero del campo, la palabra hermano(s). Seleccione el tipo de materia, de la tabla materias, mostrando nicamente los valores nicos.
MTI. Alejandro Csar Valencia Garca

PRACTICA 1
Realizar las sentencias necesarias para:

Seleccionar a los alumnos que tengan hermanos Seleccionar a los alumnos que tengan hermanos y se encuentren en el primer turno Seleccionar a los alumnos que este cursando la materia de Dibujo. Seleccionar las materias que sean de modalidad u optativas. Seleccionar a los alumnos que no se encuentren en primer nivel Seleccionar a los alumnos que tengan de 1 a 2 hermanos cursando el segundo turno.
MTI. Alejandro Csar Valencia Garca

PRACTICA 1
Seleccionar a los alumnos que tengan como apellido GARCA y que estn en el nivel 1 del primer ciclo. Mostrar a los alumnos del ejercicio anterior ordenados por poblacin de forma descendente. Seleccionar a los alumnos cuyo primer apellido comience con M del segundo turno y que no tengan hermanos.

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Operadores Lgicos.

Se utilizan para separar dos o ms condiciones en una clasula where.


AND La expresin debe ser verdadera en ambos lados. OR Si alguna de las comparacines es TRUE, la expresin retorna TRUE NOT Negacin. Si una expresin devuelve un TRUE, NOT lo hace FALSE

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Operadores de Conjunto.

UNION Retorna los resultados de dos consultas excepto los registros duplicados.
Ejemplo: supongamos que tenemos dos tablas de equipos deportivos, una de Futbol y una de Basquetbol y deseamos saber qu jugadores estn en los equipos.

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Futbol
Id 1 2 3 4 nombre Juan Pedro Luis Jorge Id 1 2 3 4

Basquetbol
nombre Antonio Juan Jorge Paco

Select nombre from futbol UNION Select nombre from basquetbol;


MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Si quisiramos obtener todos los registros de ambas tablas, incluyendo duplicados se usara UNION ALL, de esta forma: Select nombre from futbol UNION ALL Select nombre from basquetbol;

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


INTERSECT Retorna nicamente las filas encontradas en ambas consultas. Por ejemplo para saber qu jugadores estn tanto en futbol como en basquetbol, la sentencia sera: Select nombre from futbol INTERSECT Select nombre from basquetbol;

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


MINUS Retorna las filas de la primera consulta que no estn presentes en la segunda. Si quisiramos saber que jugadores solo pertenecen a futbol la sentencia sera: Select nombre from futbol MINUS Select nombre from basquetbol;

MTI. Alejandro Csar Valencia Garca

EXPRESIONES, CONDICIONES Y OPERADORES


Operadores Miscelneos.

IN Permite obtener valores que se encuentren como parte de un campo


BETWEEN Permite obtener valores dentro de un determinado rango

MTI. Alejandro Csar Valencia Garca

FUNCIONES
Funciones de Agregacin.

COUNT Retorna el nmero de filas que cumplen la condicin establecida en la clausula where.
Por ejemplo, supongamos que tenemos la tabla de jugadores de futbol con estadsticas como la que se muestra a continuacin:

MTI. Alejandro Csar Valencia Garca

FUNCIONES
Futbol
Id 1 2 3 4 nombre Juan Pedro Luis Jorge jj 10 8 10 6 goles 4 1 7 2 1 asistencias 1 posicion MD DF DL MD 1 1 2 tarjetasamarillas tarjetasrojas

MTI. Alejandro Csar Valencia Garca

FUNCIONES
Si quisiramos saber cuntos jugadores han anotado ms de 5 goles, la sentencia sera: Select COUNT(*) Goleadores From Futbol Where goles > 5;

MTI. Alejandro Csar Valencia Garca

FUNCIONES
SUM Retorna la suma de todos los valores en una columna. Por ejemplo, para obtener el total de goles anotados por todos los jugadores la sentencia sera: Select SUM(goles) totalgoles From Futbol;

MTI. Alejandro Csar Valencia Garca

FUNCIONES
AVG Retorna el promedio de una columna Por ejemplo, para obtener el promedio de tarjetas amarillas de todos los jugadores, la sentencia sera: Select AVG(tarjetasamarillas) promediotarjetas From Futbol;

MTI. Alejandro Csar Valencia Garca

FUNCIONES
MAX Retorna el valor ms grande de una columna Por ejemplo, para obtener el nmero ms alto de goles obtenidos por un goleador, la sentencia sera: Select MAX(goles) goleador From Futbol;

MTI. Alejandro Csar Valencia Garca

FUNCIONES
MIN Retorna el valor ms pequeo de una columna Por ejemplo, para obtener el nmero menor de tarjetas rojas obtenidas por un jugador, la sentencia sera: Select MIN(tarjetasrojas) menosrojas From Futbol;

MTI. Alejandro Csar Valencia Garca

FUNCIONES
Funciones Estadsticas VARIANCE Retorna el cuadrado de la desviacin estndar STDDEV Obtiene la desviacin estndar de una columna de nmeros

MTI. Alejandro Csar Valencia Garca

PRCTICA 2
Seleccionar a todos los alumnos de primer turno y calcular el promedio de cada uno de todas las materias. Contar el numero de alumnos que hay inscritos por materia Buscar a los alumnos que tienen mas materias cursadas. Sumar el numero de hermanos que tienen todos los alumnos Buscar al alumno con al ms bajo promedio del segundo turno Buscar al alumno con el promedio mas alto de toda la institucin.
MTI. Alejandro Csar Valencia Garca

PRCTICA 2
Buscar a los alumnos con los promedios mas altos de cada materia Contar el numero de materias por tipo. Listar los promedios de los alumnos del segundo turno del promedio mas alto al mas bajo Contar a los alumnos con la misma calificacin en informtica Contar al numero de alumnos por turno Promediar las calificaciones de los alumnos por turno Seleccionar a los alumnos del primer ciclo que no estn cursando lenguas.
MTI. Alejandro Csar Valencia Garca

PRCTICA 2
Contar a los alumnos que cursan dibujo, pero no cursan informtica. Contar a los alumnos por poblacin de origen. Incluir el calculo de su promedio. Calcular el promedio de los alumnos que tengan como en algn apellido Garca.

MTI. Alejandro Csar Valencia Garca

Vous aimerez peut-être aussi