Introducción
El Lenguaje de Consulta Estructurado (Structured
Query Language).
Es un lenguaje declarativo de acceso a base de
datos relacionales.
En 1970 Dr. Edgard F. Codd propone el modelo
relacional.
IBM definen el lenguaje SEQUEL (Structured
English QUEry Language) que se implementa en
“System R” en 1977.
Por problema de derecho de autor el nombre pasó
de SEQUEL a SQL.
Introducción
Oracle lo implementó en 1979 en forma
comercial en Oracle V2 (Versión 2) para
los computadores VAX.
IBM lo implementa en DB2 en 1983.
En 1986 se adopta como estándar
ANSI/ISO.
ANSI ha declarado que la pronunciación
oficial de SQL es “ɛs kju| ɛl“.
Introducción
Año Nombre Alias Comentarios
1986 SQL-86 SQL-87 Primera publicación ANSI ratificado
por ISO en 1987
1989 SQL-89 Revisiones menores
1992 SQL-92 SQL2 Revisiones menores
1999 SQL-99 SQL3 Agrega expresiones regulares,
triggers, tipos no escalares (Array,Ref
Type, BLOB)
2003 SQL-2003 Introducir XML, estandarizar las
secuencias y todo lo auto generado
Introducción
En los comandos SQL no se distingue
entre mayúsculas y minúsculas
(SELECT es equivalente a SeLeCt o
SelecT).
Se acostumbra escribir todos los
comandos SQL en mayúsculas.
En algunas bases de datos se diferencia
el nombre de las tablas y de las
columnas si son en mayúsculas o en
minúsculas.
Componentes del SQL
El lenguaje SQL está compuesto por:
Comandos.
Cláusulas.
Operadores y
Funciones de agregado.
Estos elementos se combinan en las
instrucciones para:
Crear.
Actualizar y
Manipular las bases de datos.
Componentes del SQL – Comandos
Existen dos tipos de comandos
SQL:
DDL (Data Definition Language): permiten
crear y definir nuevas bases de datos,
campos e índices.
DML (Data Manipulation Language):
permiten generar consultas para ordenar,
filtrar y extraer datos de la base de datos.
Componentes del SQL – Comandos
DDL
Comando Descripción
CREATE Utilizado para crear nuevas tablas,
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.
Componentes del SQL – 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.
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
Componentes del SQL – Cláusulas
Son condiciones de modificación utilizadas para definir
los datos que desea seleccionar o manipular.
Cláusula Descripción
FROM Utilizada para especificar la tabla de la cual se van a
seleccionar los registros.
WHERE Utilizada para especificar las condiciones que deben reunir
los registros que se van a seleccionar.
GROUP BY Utilizada para separar los registros seleccionados en grupos
específicos.
HAVING Utilizada para expresar la condición que debe satisfacer
cada grupo.
ORDER BY Utilizada para ordenar los registros seleccionados de
acuerdo con un orden específico.
Componentes del SQL – Operadores lógicos
Operador USO
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 verdadero si alguna de
las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de
la expresión.
Componentes del SQL – Operadores de
comparación
Operador USO
< Menor que
> Mayor que
<> 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 .
Componentes del SQL – 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.
Función Descripción
AVG Calcular el promedio de los valores de un campo determinado .
COUNT Devuelve el número de registros de la selección.
SUM Devuelve la suma de todos los valores de un campo
determinado.
MAX Devuelve el valor más alto de un campo especificado.
MIN Devuelve el valor más bajo de un campo especificado.
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. Se finaliza
La sintaxis básica es: con ;
Consultas de selección –
Consultas básicas
Consultas de selección – Ordenar
los registros
Los registro se ordenan utilizando la cláusula ORDER
BY.
Consultas de selección – Consultas
con predicado
Se incluye entre la cláusula y el primer
nombre del campo a recuperar:
DISTINCT: Omite los registros cuyos campos seleccionados
coincidan totalmente.
DISTINCTROW: Omite los registros duplicados basándose en la
totalidad del registro y no sólo en los campos seleccionados.*
LIMIT.*
TOP.*
ALL.*
* : No implementado por todas las bases
Consultas de selección – Consultas con predicado
Consultas de selección – Alias
En determinadas circunstancias es necesario
asignar un nombre a alguna columna en
particular de un conjunto devuelto.
Criterios de selección
Hasta ahora hemos visto como
recuperar todos los registros de una
tabla.
A continuación veremos como aplicar
filtros para obtener ciertos datos con
algún criterio de búsqueda.
Dos puntos importantes a considerar:
Para buscar por un valor no numérico
debemos encerrarlo entre comillas simples
‘’.
En MySql al referirse a la fecha lo haremos
de esta manera: ‘yyyy-mm-dd’.
Criterios de selección – Where
Esta cláusula es usada para determinar
qué registros de las tablas enumeradas
en la cláusula FROM aparecerán en los
resultados de la instrucción SELECT.
Después de escribir esta cláusula se
deben especificar las condiciones de
búsqueda.
Criterios de selección –
Where
Criterios de selección –
Operadores lógicos
Para preguntar si es distinto de
NULL se utiliza IS NOT NULL
Criterios de selección –
Rango de valores
Se utiliza el operador BETWEEN.
Su sintaxis es así:
La condición NOT es opcional.
Criterios de selección –
LIKE e IN
LIKE: se utiliza para buscar
en cadenas de caracteres.
IN: se utiliza para buscador
en de un listado.
Opcional
Agrupamiento de registros y
funciones agregadas
GROUP BY:
Combina los registros con valores idénticos, en la lista de
campos especificados, en un único registro.
Para cada registro se crea un valor sumario si se incluye una
función SQL agregada.
Su sintaxis es:
Los valores NULL en los campos GROUP BY se agrupan y no
se omiten.
Los valores NULL no se evalúan en ninguna de las funciones
SQL agregadas.
Se utiliza la cláusula WHERE para excluir aquellas filas que no
desea agrupar, y la cláusula HAVING para filtrar los registros
una vez agrupados.
Agrupamiento de registros y funciones
agregadas
También existen MIN, AVG y otros más.
Consultas de actualización
Las consultas de acción son aquellas
que no devuelven ningún registro.
Son las encargadas de acciones como
añadir, borrar y modificar registros.
Las operaciones son:
DELETE : borra registros.
INSERT INTO: agrega registro.
UPDATE: actualiza registros.
Consultas de actualización
Consultas de unión
Se utilizan para relacionar varias tablas
en una sola consulta.
Existen dos tipos:
Unión interna, conocida como INNER JOIN.
Unión externa, conocida como UNION.
Consultas de unión – INNER JOIN
La cláusula INNER que combina registros de dos
tablas.
Su sintaxis es:
Donde comp es algún criterio de comparación.
Si no agregamos el operador ON el resultados
será la combinación de todas las filas.
Si la tabla_1 tiene 2 filas y la tabla_2 tiene 3 filas
el resultado final será de 6 filas.
Consultas de unión –
INNER JOIN
Equivalentes
Consultas de unión –
INNER JOIN
Elimina
ambigüedad
Equivalentes
Consultas de unión – UNION
Se utiliza para crear una consulta de unión,
combinando los resultados de dos o más consultas.
Su sintaxis es:
UNION no devuelve filas repetidas.
Es posible obligar a UNION que retorne todas las
filas usando el predicado ALL. Esto lo hace más
eficiente.
Todas las consultas deben tener el mismo número
de campos.
No es necesario que coincidan los tipo de las
columnas.
Consultas de unión – UNION
Estructuras de las tablas
Conceptos previos:
Llave primaria (PK): en inglés Primary Key,
las columnas que tienen esta característica no
podrán ser nulas y tampoco podrán ser
repetidas (como tupla).
Llave única: en inglés Unique Key, las
columnas que tienen esta característica no
podrán ser repetidas.
Llave foránea (FK): en inglés Foreign Key, las
columnas que tienen esta característica
apuntan a columnas de otras tablas, por lo
tanto al insertar una nueva fila el valor de la
columna indicada como FK debe existir en la
tabla referenciada.
Estructuras de las tablas
Creando nuevas tablas:
La cláusula usada es
CREATE con el operador
TABLE.
La tabla nueva debe tener
al menos una columna.
Se debe indicar el nombre
de columna, su tipo y su
tamaño.
Es posible asignar una
columna como PK.
Es posible asignar llave
únicas y asignar columnas
como no nulas.
Estructuras de las tablas
Modificación de
tablas:
Con la cláusula
ALTER es posible
agregar nuevas
columnas y agregar
llaves.
Con la cláusula
DROP es posible
eliminar tablas,
columnas y llaves.
Estructuras de las tablas
Índices:
Los índices agilizan la labor de búsqueda.
Los índices se definen sobre columnas.
Las columnas con índices tienen un acceso más rápido.
En la mayoría de las BD las llaves primarias tienen un índice
automáticamente.
Con la cláusula CREATE se definen los índices.
Con la cláusula DROP se borran los índices.