Modulo I: Introducción
Gestores de Bases De
Datos
El SQL
El SQL (Lenguaje de Consulta Estructurado – Structure
Query Language), es un lenguaje de consulta estructurado
establecido claramente como el lenguaje de alto nivel
estándar para sistemas de base de datos relaciones. Los
responsables de publicar este lenguaje como estándar,
fueron precisamente los encargados de publicar
estándares, la ANSI (Instituto Americano de
Normalización). Es por lo anterior que este lenguaje lo vas
a encontrar en cualquiera de los DBMS relacionales que
existen en la actualidad, por ejemplo, ORACLE, PORTGRES,
SQL SERVER por mencionar algunos.
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 1
Contenido
INTRODUCCIÓN............................................................................................................................. 2
COMANDOS................................................................................................................................... 2
Lenguaje de Definición de Datos (DLL, Data Definiton Language)............................................ 2
Lenguaje de Manipulación de Datos (DML, Data Management Language).............................. 3
Comodines................................................................................................................................. 3
CLÁUSULAS.................................................................................................................................... 3
Comando Descripción ............................................................................................................... 3
OPERADORES................................................................................................................................. 4
Operadores Lógicos................................................................................................................... 4
Operadores de Comparación .................................................................................................... 4
FUNCIONES DE AGREGADO........................................................................................................... 4
CONSULTAS ................................................................................................................................... 5
Consultas de Selección.............................................................................................................. 5
Consultas básicas................................................................................................................... 5
Ordenar los registros............................................................................................................. 5
Consultas con Predicado........................................................................................................... 5
ALIAS.............................................................................................................................................. 6
RECUPERAR INFORMACIÓN DE UNA BASE DE DATOS EXTERNA.................................................. 6
Criterios de Selección................................................................................................................ 6
Creación de tablas......................................................................................................................... 6
Tipos de datos ............................................................................................................................... 7
TIPO DE ÍNDICE.............................................................................................................................. 8
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 2
INTRODUCCIÓN
El SQL (Lenguaje de Consulta Estructurado – Structure Query Language), es un lenguaje
de consulta estructurado establecido claramente como el lenguaje de alto nivel
estándar para sistemas de base de datos relaciones. Los responsables de publicar este
lenguaje como estándar, fueron precisamente los encargados de publicar estándares,
la ANSI (Instituto Americano de Normalización). Es por lo anterior que este lenguaje lo
vas a encontrar en cualquiera de los DBMS relacionales que existen en la actualidad,
por ejemplo, ORACLE, PORTGRES, SQL SERVER por mencionar algunos.
COMANDOS
El SQL agrupa dos tipos de sentencias con objetivos particulares, en los siguientes
lenguajes:
Lenguaje de definición de datos (DDL, Data Definition Lenguage)
DLL: permiten crear y definir nuevas bases de datos, campos e índices.
Lenguaje de manipulación de datos (DML, Data Management Language)
DML: permiten generar consultas para ordenar, filtrar y extraer datos
de la base de datos.
A continuación se describe cada uno de los lenguajes:
Lenguaje de Definición de Datos (DLL, Data Definiton Language)
Grupo de sentencias del SQL que soportan la definición y declaración de los objetos de la base
de datos. Objetos tales como: la base de datos misma (DATABASE), las tablas (TABLE), las
Vistas (VIEW), los índices (INDEX), los procedimientos almacenados (PROCEDURE), los
disparadores (TRIGGER), Regla (RULE), Dominios (Domain) y Valores por defecto (DEFAULT).
CREATE Crea nuevas tablas, campos e índices
DROP Elimina tablas e índices
ALTER Modifica las tablas agregando campos o cambiando la definición de los
campos.
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 3
Lenguaje de Manipulación de Datos (DML, Data Management
Language)
Grupo de sentencias del SQL para manipular los datos que están almacenados en las bases de
datos, a nivel de filas (tuplas) y/o columnas (atributos). Ya sea que se requiera que los datos
sean modificados, eliminados, consultados o que se agregaren nuevas filas a las tablas de las
bases de datos.
SELECT Consulta registros de la base de datos que satisfagan un criterio
determinado
INSERT Carga lotes de datos en la base de datos en una única operación.
UPDATE Modifica los valores de los campos y registros especificados
DELETE Elimina registros de una tabla de una base de datos
Comodines
* Sustituye a todos los campos
% Sustituye a cualquier cosa o nada dentro de una cadena
_ Sustituye un solo carácter dentro de una cadena
CLÁUSULAS
Son condiciones de modificación utilizadas para definir los datos que desea seleccionar
o manipular.
Comando Descripción
FROM Especifica la tabla de la cual se van a seleccionar los registros.
WHERE Especifica las condiciones que deben reunir los registros que se van a
seleccionar.
GROUP BY Separa los registros seleccionados en grupos específicos.
HAVING Expresa la condición que debe satisfacer cada grupo.
ORDER BY Ordena los registros seleccionados de acuerdo con un orden
específico.
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 4
OPERADORES
Operadores Lógicos
AND Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo
si ambas son ciertas.
OR Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si
alguna de las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.
Operadores de Comparación
Los operandos de las conectivas lógicas pueden ser expresiones que contengan los operadores
de comparación. SQL permite usar los operadores de comparación para comparar cadenas y
expresiones aritméticas, así como tipos especiales, tales como el tipo fecha
< Menor que
> Mayor que
< > Distinto de
<= Menor ó Igual que
>= Mayor ó Igual que
BETWEEN…AND Selecciona los registros comprendidos en un intervalo
LIKE Selecciona los registros cuyo valor de campo se asemeje, no teniendo en
cuenta mayúsculas y minúsculas.
In y Not In Da un conjunto de valores para un campo para los cuales la
condición de selección es (o no) valida
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.
AVG (campo) Calcula el promedio de los valores de un campo determinado
COUNT (*)Devuelve el número de registros de la selección
SUM (campo) Devuelve la suma de todos los valores de un campo determinado
MAX (campo) Devuelve el valor más alto de un campo especificado
MIN (campo) Devuelve el valor más bajo de un campo especificado
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 5
CONSULTAS
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, esta información es devuelta en forma de conjunto
de registros que se pueden almacenar en un objeto recordset. Este conjunto de
registros es modificable.
Consultas básicas
La sentencia SELECT, obtiene filas de la base de datos y permite realizar la sentencia de una o
varias filas o columnas de una o varias tablas.
La sintaxis básica de una consulta de selección es la siguiente:
SELECT Campos FROM Tabla;
En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de
los mismos, por ejemplo:
SELECT Nombre, Teléfono FROM Clientes;
Esta consulta devuelve un recordset con el campo nombre y teléfono de la tabla
clientes.
Ordenar los registros
Se puede especificar el orden en que se desean recuperar los registros de las tablas
mediante la cláusula ORDER BY Lista de Campos. En donde Lista de campos representa
los campos a ordenar.
SELECT Nombre, Teléfono FROM Clientes ORDER BY Nombre;
Consultas con Predicado
El predicado se incluye entre la cláusula y el primer nombre del campo a recuperar, los
posibles predicados son:
ALL Devuelve todos los campos de la tabla
TOP Devuelve un determinado número de registros de la tabla
DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente
DISTINCROW Omite los registros duplicados basándose en la totalidad del
registro y no sólo en los campos seleccionados.
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 6
ALIAS
En determinadas circunstancias es necesario asignar un nombre a alguna columna
determinada de un conjunto devuelto.
Para ello se tiene la palabra reservada AS que se encarga de asignar el nombre que
deseamos a la columna deseada. Podemos hacer que la columna devuelta por la
consulta, en lugar de llamarse apellido (igual que el campo devuelto) se llame
Empleado.
En este caso procederíamos de la siguiente forma:
SELECT DISTINCTROW Apellido AS Empleado FROM Empleados;
RECUPERAR INFORMACIÓN DE UNA BASE DE DATOS EXTERNA
En ocasiones es necesaria la recuperación de información que se encuentra contenida
en una tabla que no se encuentra en la base de datos que ejecutará la consulta o que
en ese momento no se encuentra abierta, esta situación la podemos salvar con la
palabra reservada IN de la siguiente forma:
SELECT DISTINCTROW Apellido AS Empleado FROM EmpleadosIN
'c:databasesgestion.mdb';
En donde c:databasesgestion.mdb es la base de datos que contiene la tabla
Empleados.
Criterios de Selección
Los criterios de selección o las posibilidades de filtrar los registros se realizan con el fin
de recuperar solamente aquellos que cumplan unas condiciones preestablecidas.
CREACIÓN DE TABLAS
Como ya hemos visto, la estructura de almacenamiento de los datos del modelo
relacional son las tablas. Para crear una tabla, es necesario utilizar la sentencia CREATE
TABLE. Veamos su formato:
Donde definición_columna es:
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 7
El proceso que hay que seguir para crear una tabla es el siguiente:
1) Lo primero que tenemos que hacer es decidir qué nombre queremos poner a la
tabla (nombre_tabla).
2) Después, iremos dando el nombre de cada uno de los atributos que formarán
las columnas de la tabla (nombre_columna).
3) A cada una de las columnas le asignaremos un tipo de datos predefinido o bien
un dominio definido por el usuario. También podremos dar definiciones por
defecto y restricciones de columna.
4) Una vez definidas las columnas, sólo nos quedará dar las restricciones de tabla.
TIPOS DE DATOS
Los tipos de datos SQL se clasifican en tipos de datos primarios y de varios sinónimos
válidos reconocidos por dichos tipos de datos. Tipos de datos primarios:
Tipos de datos predefinidos
Tipos de datos Descripción
CHARACTER (longitud) Cadenas de caracteres de longitud fija.
CHARACTER VARYING (longitud) Cadenas de caracteres de longitud variable.
BINARY 1 byte Para consultas sobre tabla adjunta de
productos de bases de datos que definen un tipo de
datos Binario.
BIT (longitud) Cadenas de bits de longitud fija.
BIT VARYING (longitud) Cadenas de bits de longitud variables.
BYTE 1 byte Un valor entero entre 0 y 255.
NUMERIC (precisión, escala) Número decimales con tantos dígitos como indique
la precisión y tantos decimales como indique la
escala.
DECIMAL (precisión, escala) Número decimales con tantos dígitos como indique
la precisión y tantos decimales como indique la
escala.
INTEGER Números enteros.
SINGLE 4 bytes Un valor en punto flotante de precisión
simple con un rango de 3.402823*1038 a -
1.401298*10-45 para valores negativos,
1.401298*10-45 a 3.402823*1038 para valores
positivos, y 0.
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 8
SMALLINT Números enteros pequeños.
SHORT 2 bytes Un entero corto entre -32,768 y 32,767.
REAL Números con coma flotante con precisión
predefinida.
LONG 4 bytes Un entero largo entre - 2,147,483,648 y
2,147,483,647.
FLOAT (precisión) Números con coma flotante con la precisión
especificada.
DOUBLE PRECISION Números con coma flotante con más precisión
predefinida que la del tipo REAL. 8 bytes Un valor en
punto flotante de doble precisión con un rango de -
1.79769313486232*10308 a -
4.94065645841247*10-324 para valores negativos,
4.94065645841247*10-324 a
1.79769313486232*10308 para valores positivos, y
0.
DATE Fechas. Están compuestas de: YEAR año, MONTH
mes, DAY día.
TEXT 1 byte por carácter. De cero a 255 caracteres.
TIME Horas. Están compuestas de HOUR hora, MINUT
minutos, SECOND segundos.
TIMESTAMP Fechas y horas. Están compuestas de YEAR año,
MONTH mes, DAY día, HOUR hora, MINUT minutos,
SECOND segundos.
TIPO DE ÍNDICE
UNIQUE Genera un índice de clave única. Lo que implica que los registros de la
tabla no pueden contener el mismo valor en los campos indexados.
PRIMARY KEY Genera un índice primario el campo o los campos especificados.
Todos los campos de la clave principal deben ser únicos y no nulos, cada tabla
sólo puede contener una única clave principal.
FOREIGN KEY Genera un índice externo (toma como valor del índice campos
contenidos en otras tablas). Si la clave principal de la tabla externa consta de
más de un campo, se debe utilizar una definición de índice de múltiples
campos, listando todos los campos de referencia, el nombre de la tabla
externa, y los nombres de los campos referenciados en la tabla externa en el
mismo orden que los campos de referencia listados.
Unidad 2- Lenguaje SQLModulo I: Introducción Gestores de Bases De Datos
Página 9
Si los campos referenciados son la clave principal de la tabla externa, no tiene que
especificar los campos referenciados, predeterminado por valor, el motor Jet se
comporta como si la clave principal de la tabla externa fueran los campos
referenciados .