Está en la página 1de 9

Base de datos relacional

:
Una base de datos (BD), o mejor dicho, un sistema gestor de bases de datos
(SGBD), es un software que gestiona una o más bases de datos y nos
permite explotar los datos almacenados en ellas de forma relativamente
simple mediante SQL.
Estructura mínima de almacenamiento:


Tabla: Objeto de almacenamiento perteneciente a una BD. Es una
estructura en forma de cuadrante donde se almacenan registros o
filas de datos. Cada tabla tiene un nombre único en la BD.
Registro: Cada una de las filas de una tabla, está compuesto por
campos o atributos.
Campo: Cada uno de los “cajoncitos” de un registro donde se
guardan los datos. Cada campo tiene un nombre único para la tabla
de la cual forma parte, además es de un tipo (naturaleza)
determinado, por tanto no podemos guardar limones en el cajón de
las naranjas, en términos informáticos y a modo de ejemplo, no
encontraremos un dato alfanumérico (letras y números) en un
campo diseñado para guardar datos numéricos. Dedicaremos una
lección a los tipos de datos más adelante.

Una BD contendrá tablas que a su vez contendrán registros y en estos se
encontrarán los datos distribuidos en una serie de campos. Cada registro de
la tabla guarda la información particular de una unidad o miembro de un
mismo grupo. El SGBD cumple la función de interface entre el usuario y la
BD, permitiéndonos interactuar con ella mediante SQL.
1) Componentes de SQL
a) Comandos:

Existen dos tipos de comandos SQL:

los DLL que permiten crear y definir nuevas bases de datos, campos e índices.

los DML que permiten generar consultas para ordenar, filtrar y extraer datos de
la base de datos.

Comandos DLL

Comando

Descripción

Comandos DML Comando Descripción SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.CREATE Utilizado para crear nuevas tablas. Cláusula FROM Desc Utili . campos e índices DROP Empleado para eliminar tablas e índices ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. UPDATE Utilizado para modificar los valores de los campos y registros especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos b) Cláusulas: Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.

WHERE Utili GROUP BY Utili HAVING Utili ORDER BY Utili c) Operadores Lógicos: Operado r Uso AND Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. NOT Negación lógica. OR Es el "o" lógico. Devuelve el valor contrario de la expresión. d) Operadores de Comparación Operador Uso < Menor que > Mayor que . Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.

Función Descripción AVG Utilizada para calcular el prome COUNT Utilizada para devolver el núme SUM Utilizada para devolver la suma .<> Distinto de <= Menor o Igual que >= Mayor o Igual que = Igual que BETWEEN Utilizado para especificar un intervalo de valores. LIKE Utilizado en la comparación de un modelo In Utilizado para especificar registros de una base de datos e) 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.

Este conjunto de registros es modificable.MAX Utilizada para devolver el valor MIN Utilizada para devolver el valor 1) Consultas de Selección: Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos. a) Consultas básicas: La sintaxis básica de una consulta de selección es la siguiente: SELECT Campos FROM Tabla. Telefono FROM Clientes. En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos. esta información es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. SELECT: select NOMBRE . APELLIDOS from EMPLEADOS where SALARIO > 1350 Seleccióname el NOMBRE y los APELLIDOS de la tabla EMPLEADOS cuyo SALARIO sea mayor a 1350 En general una consulta SQL simple tendrá la siguiente forma: select CAMPOS(separados por comas) from TABLA where CONDICION . por ejemplo: SELECT Nombre. Esta consulta devuelve un recordset con el campo nombre y teléfono de la tabla clientes.

SALARIO from EMPLEADOS order by SALARIO desc También se puede jugar un poco con esta consulta. En este caso se podría utilizar el operador BETWEEN: select NOMBRE .APELLIDOS.SALARIO from EMPLEADOS order by SALARIO Aquí seleccionamos los campos nombre apellido y el salario de la tabla empleados con los datos ordenados por el salario.   Cláusula SELECT: Donde indicamos los campos de la tabla que queremos obtener. indicando que ordene dos campos. de menor a mayor. Responde a la pregunta: ¿Qué datos nos piden? Cláusula FROM: Donde indicamos en que tabla se encuentran estos campos. separados por comas. En donde Lista de campos representa los campos a ordenar. APELLIDOS from EMPLEADOS where SALARIO >= 1350 and SALARIO <= 1450 De esta forma nos mostrara el nombre y el apellido de los empleados cuyo salario este entre 1350 y 1450.APELLIDOS. APELLIDOS from EMPLEADOS where SALARIO between 1350 and 1450 b) Ordenar los registros Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la cláusula ORDER BY Lista de Campos. es decir. Por defecto viene ordenado de forma ascendente (ASC). Jugamos un poco con el WHERE: select NOMBRE . que registros serán considerados para mostrar sus datos y cuáles no. es decir de menor a mayor para obtener el resultado ordenado de mayor a menor se debe indicar que la ordenación es descendente (DESC) select NOMBRE. . Ejemplos: select NOMBRE. Responde a la pregunta: ¿Qué requisitos deben cumplir lo registros? Es de hecho donde se establece el filtro de registros. Responde a la pregunta: ¿Dónde están los datos? Cláusula WHERE: Donde establecemos la condición que han de cumplir los registros de la tabla que serán seleccionados.

NOMBRE asc De esta forma le da prioridad al orden del campo ESTADO y luego al del NOMBRE Por Ejemplo: Antes de ordenar: ID_MASCO TA 1 4 3 2 NOMBRE ESPECIE SEXO ESTADO Budy Bruts Canela Nina P P G G M H M H A B A B ID_MASCO TA 4 2 NOMBRE ESPECIE SEXO ESTADO Bruts Nina P G H H B B 1 3 Budy Canela P G M M A A Después: Aquí se puede notar que se le da prioridad a ESTADO. c) Clausulas con Predicado : Predicado ALL . y como le indicamos que el orden era descendente coloco primero B y luego A. En cambio NOMBRE si fue ordenado de forma alfabética al estar ascendente.select * from MASCOTAS order by ESTADO desc.

TOP DISTINCT DISTINCTROW ALL Si no se incluye ninguno de los predicados se asume ALL. No se conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que contiene. SELECT ALL FROM Empleados. Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la cláusula ORDER BY.TOP no afecta a la posible actualización de la consulta. Si no se incluye la cláusula ORDER BY. la consulta devolverá 26 registros. Supongamos que en lugar de los 25 primeros estudiantes deseamos el 10 por ciento del curso: SELECT TOP 10 PERCENT Nombre.El predicado TOP no elige entre valores iguales. Apellido FROM Estudiantes ORDER BY Nota DESC. TOP Devuelve un cierto número de registros que entran entre al principio o al final de un rango especificado por una cláusula ORDER BY. es mucho más rápido indicar el listado de campos deseados. Apellido FROM Estudiantes ORDER BY Nota DESC. la consulta devolverá un conjunto arbitrario de 25 registros de la tabla Estudiantes . . El valor que va a continuación de TOP debe ser un Integer sin signo. En el ejemplo anterior. SELECT * FROM Empleados. Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso 1994: SELECT TOP 25 Nombre. El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la instrucción SQL. si la nota media número 25 y la 26 son iguales.

El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios.DISTINCT Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instrucción SELECT se incluyan en la consulta deben ser únicos. a diferencia del predicado anterior que sólo se fijaba en el contenido de los campos seleccionados. Si dos registros contienen López en el campo Apellido. . éste lo hace en el contenido del registro completo independientemente de los campos indicados en la cláusula SELECT. varios empleados listados en la tabla Empleados pueden tener el mismo apellido. la siguiente instrucción SQL devuelve un único registro: SELECT DISTINCT Apellido FROM Empleados. Este último ejemplo devuelve dos registros con el valor López en el apellido ya que se buscan no duplicados en el registro completo. Por ejemplo. Si la tabla empleados contiene dos registros: Antonio López y Marta López el ejemplo del predicado DISTINCT devuelve un único registro con el valor López en el campo Apellido ya que busca no duplicados en dicho campo. DISTINCTROW Devuelve los registros diferentes de una tabla. Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cláusula SELECT posean un contenido diferente. SELECT DISTINCTROW Apellido FROM Empleados.