INSTITUTO TECNOLÓGICO SAN AGUSTÍN

Anuncio
INSTITUTO TECNOLÓGICO SAN
AGUSTÍN
Guía número 2 Bases de datos 1
Ing. Francisco Berrocal Machado
Primero debes crear la base de datos “empresa”
CREATE DATABASE empresa;
Luego selecciona la base de datos que acabas de crear:
USE empresa;
Cree las siguientes tablas en MYSQL utilizando la línea de comandos:
Seccion
Id int (PK)
Nombre varchar (20)
Área varchar (20)
1
n
Persona
ced int (PK)
Nombre varchar (20)
direccion varchar (20)
edad int
idSeccion int (FK)
Primero se deben crear las tablas, por ejemplo la tabla Seccion se crea de la siguiente forma
CREATE TABLE Seccion(
id
int primary key,
nombre varchar(20),
área varchar(20)
);
CREACIÓN DE CONSULTAS BÁSICAS (MOSTRANDO DATOS) SELECT, FROM, WHERE
Para ver los datos almacenados en una tabla usaremos el formato "SELECT campos FROM
tabla". Si queremos ver todos los campos, lo indicaremos usando un asterisco:
SELECT * FROM persona;
Que, en nuestro caso, daría como resultado:
Si queremos ver sólo ciertos campos, detallamos sus nombres, separados por comas:
SELECT nombre, dirección FROM persona;
Y obtendríamos:
Normalmente no querremos ver todos los datos que hemos introducido, sino sólo aquellos que
cumplan cierta condición. Esta condición se indica añadiendo un apartado WHERE a la orden
"SELECT", así:
SELECT nombre, dirección FROM persona WHERE nombre = 'juan';
Que nos diría el nombre y la dirección de nuestros amigos llamados "juan":
Comúnmente realizaremos búsquedas por claves primarias, las cuales son las búsquedas más
usuales. La siguiente orden SQL no permite listar la información de una persona, haciendo uso del
campo clave primaria:
SELECT * FROM persona WHERE ced = 787123456;
Utiliza esta orden y observa el resultado obtenido del servidor
ORDER BY
Quizá advirtió, en los ejemplos anteriores, que las filas resultantes se mostraron sin ningún orden
en particular. A menudo es más fácil examinar la salida de una consulta cuando las filas se ordenan
de algún modo significativo. Para ordenar un resultado, se usa la cláusula ORDER BY.
SELECT nombre, dirección FROM persona ORDER BY nombre;
Se organizan los datos obtenidos por el campo nombre en orden ascendente, con lo cual
obtendríamos:
nombre
Andres Ortega
Bayron Mejía
Carlos Pérez
Pedro López
Zulma Petro
Direccion
Calle 46
Calle 14
Calle 24
Calle 60
Calle 48
El sentido de ordenación, por defecto, es ascendente, con los valores más pequeños primero. Para
ordenar en sentido inverso (descendente), agregue la palabra clave DESC luego del nombre de la
columna por la que ordena:
SELECT nombre, dirección FROM persona ORDER BY nombre DESC;
Con lo cual obtendríamos el orden inverso:
nombre
Zulma Petro
Pedro López
Carlos Pérez
Bayron Mejía
Andres Ortega
Direccion
Calle 48
Calle 60
Calle 24
Calle 14
Calle 46
OPERADORES DE COMPARACIÓN Y OPERADORES LÓGICOS
Operador
Descripción
>
<
>=
<=
<>
=
Mayor que
Menor que
Mayor igual
Menor igual
Distinto
Igual
Estos operadores nos sirven para realizar búsquedas de información más específicas, es decir, nos
permiten filtrar los resultados de acuerdo a ciertos criterios que deben cumplir los registros
seleccionados.
SELECT nombre, dirección, edad FROM persona WHERE edad > 18;
Lo cual nos traería las personas mayores de edad:
NOMBRE
Pedro Pérez
Julio Puertas
DIRECCIÓN
Calle 24
Calle 66
EDAD
36
24
SELECT nombre, dirección, edad FROM persona WHERE edad < 18;
Lo cual nos traería las personas menores de edad:
NOMBRE
Luis Rodríguez
María Petro
DIRECCIÓN
Calle 14
Calle 68
EDAD
17
15
SELECT nombre, dirección, edad FROM persona WHERE edad = 40;
Lo cual nos traería las personas con edad de 40 años:
NOMBRE
Paola Gómez
Martín González
DIRECCIÓN
Calle 34
Calle 69
EDAD
40
40
Crea consultas utilizando los demás operadores de comparación y analiza los resultados
obtenidos.
OPERADORES LÓGICOS
Operador
Descripción
And
Or
Not
()
Significa Y
Significa O
Significa NO
Paréntesis
Podemos establecer más de una condición con la cláusula "WHERE", para ello aprenderemos los
operadores lógicos. Estos nos permiten crear consultas que recuperen datos los cuales cumplan
más de una condición determinada. Por ejemplo:
SELECT nombre, dirección, edad FROM persona WHERE edad < 11 or edad > 60;
Esta consulta nos devolverá registros, los cuales cumplan con una de las dos condiciones, que la
persona tenga menos de 11 años o que la persona tenga más de 60 años:
NOMBRE
Luis Aguirre
Gloria Pardo
DIRECCIÓN
Calle 24
Calle 22
EDAD
84
8
Otro ejemplo: queremos obtener las personas cuya edad sea mayor de 50 años y cuya sección sea
la 2:
SELECT nombre, idSeccion, edad FROM persona WHERE edad > 50 and idSeccion = 2;
NOMBRE
Marta Vergara
Mónica Lorduy
IDSECCION
2
2
EDAD
55
52
La siguiente consulta incluye más de dos condiciones:
SELECT nombre, idSeccion, edad FROM persona WHERE edad > 50 and (idSeccion = 2
or idSeccion = 5);
NOMBRE
Marta Vergara
Mónica Lorduy
Pedro Dager
Manuel Contreras
IDSECCION
2
2
5
5
EDAD
55
52
60
80
Esta consulta incluye tres condiciones las cuales deben ser cumplidas por los registros
seleccionados, observa el uso de los paréntesis los cuales separan las comparaciones realizadas
por los operadores lógicos.
Crea una consulta que muestre las personas menores de 18 años que
trabajen en la sección 12.
FUNCIONES DE AGREGACIÓN (MAX, MIN, AVG, COUNT)
También podemos aplicar ciertas funciones matemáticas a todo un conjunto de datos de una
tabla. Por ejemplo, podemos saber cuál es la edad más joven de entre las personas que tenemos
en nuestra base de datos, haríamos:
SELECT min(edad) FROM persona;
Con lo cual obtendríamos la persona con la edad más pequeña de la base de datos:
Cedula
78723456
Nombre
Juan Álvarez
Dirección
Calle 34
Edad
16
Idsección
2
Estos comandos operan con datos numéricos a excepción del comando COUNT.
Las funciones de agregación más habituales son:





MIN = mínimo valor
MAX = máximo valor
SUM = suma de los valores
AVG = media de los valores
COUNT = cantidad de valores
Crea consultas utilizando los comando MAX, SUM, AVG.
COUNT: Devuelve un contador con el número de valores distintos de NULL en las filas recuperadas
por una sentencia. Por lo general se realiza el conteo de registros por campos que no sean NULL
ya que estos no se incluyen en el conteo y puede resultar un dato de conteo erróneo:
SELECT count(ced) FROM persona;
Con lo cual se obtendría:
COUNT
35
Lo cual me indica que existen 35 registros en la tabla persona.
Prueba la siguiente orden en el servidor de bases de datos:
SELECT count(*) FROM persona;
Descargar