Capítulo 5: Lenguajes
de consulta
I. SQL (DDL, DML, DCL)
II. SQL Restricciones,
triggers
III. Store procedures
Carla Parra 1 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Introducción a SQL
SQL (Structured Query Language)
Permite al usuario crear, leer, actualizar
Es el lenguaje estándar ANSI/ISO de
y eliminar tablas y bases de datos
definición, manipulación y control de
relacionales
datos relacionales
SQL
Todos los sistemas como MySQL, Acceso
SQL es soportado por prácticamente
MS, Oracle, Sybase, PostgreSQL y SQL
por todos SGDB disponibles en el
Server utilizan SQL como lenguaje de base
mercado
de datos estándar
Carla Parra 2 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Evolución de SQL
1970 1977 1989 1995 2000
Modelo Microsoft lanza su
SGBD Open
Relacional Primer SGBD respuesta a Oracle
Source
Uno de los hitos IBM crea el en el año 1989, SQL Lite
llamada SQL Aparece MySQL
más importantes lenguaje SQL y Versión más
Server. se integra con
en la historia de crea el primer ligera y no usa la
SQL server es el PHP que es el
los SGBD fue el SGBD conocido arquitectura
sistema de base de lenguaje más
desarrollo del como Oracle datos más usado cliente-servidor,
importante de la
modelo (primer SGBD en el mundo guarda los datos
web
relacional por comercial del corporativo. Por en archivos
PostgreSQL
Edgar Codd en mundo) encima, incluso de
Oracle. aparece en 1996
IBM en 1970
Recuperado de: [Link]
Carla Parra 3 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Proceso sentencia SQL
Open Close
Parse Bind Fetch
Execute
(Análisis de sintásis y Análisis de las Recuperación
permisos) (Ejecución)
variables de datos
Carla Parra 4 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Arquitectura básica SQL
Cliente envía la
sentencia
Se revisa la sintáxis y
lo convierte en
binario para que sea
procesado por el
servidor
Se analizan las
variables y se ejecuta
la sentencia
El motor de
almacenamiento
gestiona las
operaciones de bajo
nivel y recupera los
Carla Parra datos a los Sistemas de Bases de Datos
Introducción
5
Capítulo 5: BDD SQL Y NO SQL
SQL NO SQL
Data organizada
Esquema
en tablas (filas y
dinámico
columnas)
Modelo Modelo no
relacional relacional
Escalabilidad Escalabilidad
vertical horizontal
ACID MODELO BASE
Carla Parra 6 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Elementos SQL
Comandos: (1)
DML(Data DTL(Data
Manipulación
Language) genera Transaction
consultas para Language)
ordenar, recuperar, realizar
filtrar y extraer transacciones
datos(Insert,
Update, Merge y Comandos: (2) en una BDD
Delete) DDL(Data Definition
Language), crear y
Funciones: definir nuevas
SUM(), MAX(), MIN() bases de datos,
campos e índices
(Create, Alter, Drop,
Rename y Truncate)
Elementos
Comandos: (3)
DCL(Data Control
Operadores: Language):
administra los
lógicos y de derechos y
comparación restricciones de
usuarios (Grant y
Revoke
Cláusulas: From,
Where, Group by,
Having, Order by
Carla Parra 7 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Elementos SQL- Comandos
DDL DML DCL DTL
Create: Revoke: se utiliza Commit: se utiliza
Select: consulta para retirar o revocar para guardar de
1. Crear nuevas
registros de la base permisos manera permanente
tablas.
de datos que previamente los cambios
2. Crear nuevos satisfagan un criterio otorgados a un realizados en una
campos e índices usuario o rol transacción
Grant: se utiliza para Rollback: se utiliza
Insert: cargar lotes de
Drop: Elimina tablas otorgar permisos a un para deshacer los
datos en la base de
e índices usuario o rol en la cambios realizados
datos.
base de datos en una transacción
antes de confirmarlos
con COMMIT
Alter: se utiliza para
modificar la estructura Update: modifica
de una tabla (o de valores de los
otros objetos como campos y registros
vistas o índices)
después de que ha
sido creada
Delete: elimina
registros de una tabla
de una base de datos
Carla Parra 8 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Elementos SQL- Claúsulas
• Especifica la tabla de la cual se van a
FROM seleccionar los registros.
• Especifica las condiciones que deben de reunir
WHERE los registros.
GROUP • Separa los registros seleccionados en
grupos específicos.
BY
• Se utiliza para filtrar resultados de una consulta
HAVING después de aplicar funciones de agregación como
SUM, AVG, MAX, MIN, COUNT, etc
ORDER • Ordena los registros seleccionados de acuerdo a
un orden especifico.
BY
Carla Parra 9 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Elementos SQL- Operadores lógicos
AND • Es el “y” lógico. Evalúa dos condicones 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 si alguna de las dos
es cierta.
NOT • Negación lógica. Devuelve el valor
contrario de la expresión.
Carla Parra 10 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Elementos SQL- Operadores de
comparación
< • Menor que
> • Mayor que
• Igual a
==
<> • Distinto de
<= • Menor o igual que
>= • Mayor o igual que
• Utilizado para especificar un
Between intervalo de valores.
• Se usa junto con comodines (% y _)
Like para especificar patrones de
búsqueda
In • Verifica si un valor coincide con
cualquiera de los valores de una lista
Carla Parra 11 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Elementos SQL- Funciones de
agregación
AVG:utilizado para COUNT: devuelve el
calcular el promedio número de filas que
de los valores de un coinciden con un
campo determinado criterio especificado
SUM: utilizado para
MAX: utilizado para
devolver la suma de
devolver el valor más
todos los valores de
alto de un campo
un campo
MIN: utilizado para
devolver el valor más
bajo de un campo
Carla Parra 12 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Palabras reservadas SQL
Carla Parra 13 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Normas de escritura SQL
Si el nombre de la tabla o Evitar el nombre de una
Las instrucciones columna tiene más de una
En SQL no se distingue tabla/columna en
finalizan con el palabra, utilice un guión
entre mayúsculas y plural, utilice
minúsculas signo de punto y bajo para unirlas, por
employee en lugar de
ejemplo, employee_city o
coma EmployeeCity employees
Evite los caracteres
Los comentarios en el
Se pueden tabular especiales en el
código SQL (varias
líneas para facilitar la Utilice -- para nombre como $, &, * ,
líneas) comienzan por
lectura si fuera
/* y terminan por */ (Por comentar una línea etc. (utilice sólo letras,
necesario números y guiones
lo general)
bajos).
Para la columna de clave
primaria evite el nombre id. Incluya la palabra clave AS Evita dar el mismo
Una buena idea es para crear alias, ya que No empiece el nombre
nombre a una tabla y a
combinar id con el nombre esto hace que el código sea con un guión bajo
de una tabla, por ejemplo: más legible una columna.
id_employee
Utilice las mismas Si el nombre es el
Compruebe que el
reglas de mismo que una palabra
nombre de un objeto
denominación para los clave de SQL, encierre
no se utilice como
alias de columnas o el nombre entre
palabra clave de SQL
tablas comillas
Carla Parra 14 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Alineación e identación (i)
Se recomienda escribir primero las Se sugiere usar espacios para rodear el
palabras clave en una nueva línea a operador igual, usar espacios antes o
la izquierda y luego el resto del después de los apóstrofes, y usar un
código a la derecha, así: espacio después de una coma
Cada nueva línea debe tener una sangría
y se debe colocar comas al final de la
línea
Para las palabras clave FROM, WHERE,
ORDER BY, GROUP BY, y HAVING escriba
cada una en una nueva línea sin sangría.
Carla Parra 15 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Alineación e identación (ii)
Si la sentencia WHERE tiene más de Si une tablas, utilice nuevas líneas para
una condición, separe cada los operadores INNER JOIN, LEFT JOIN,
condición con una nueva línea con etc. Para el operador ON, escriba una
sangría y utilice una nueva línea con nueva línea con sangría dentro de la
sangría con los operadores sentencia JOIN.
condicionales AND o OR dentro de la
sentencia WHERE.
Carla Parra 16 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Alineación e identación (iii)
Las consultas largas a veces • Utilice la sangría para VALUES en las
contienen subconsultas. En este consultas de inserción
caso, la subconsulta debe estar en • En el caso de que insertes más filas en una
una nueva línea con sangría. consulta, escribe cada fila como una nueva
Para la estructura CASE coloque línea con sangría.
cada WHEN y END en una nueva • En una consulta UPDATE utilice SET y
línea. WHERE como en una sentencia SELECT, con
una nueva línea sin sangría:
Carla Parra 17 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Tipos de datos (i)
Descripción Tipos de estándar SQL Descripción Tipos de estándar SQL
Texto Números
Texto de anchura fija CHARACTER(n) CHAR(n) Enteros largos (8 bytes) BIGINT (en realidad no es
estándar, pero es muy
Texto de anchura variable CHARACTER VARYING(n)
utilizado en muchas bases
VARCHAR (n)
de datos)
Números
Decimal de coma variable FLOAT, DOUBLE (Mayor
Enteros pequeños (2 SMALLINT presición)
bytes)
Enteros normales (4 INTEGER INT Decimal de coma fija NUMERIC (precision, scale)
bytes) Ejemplo: precio
NUMERIC(8, 2), 8 dígitos en
total, 2 de ellos después del
punto decimal
DECIMAL(m,d)
Carla Parra 18 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Tipos de datos (ii)
Descripción Tipos de estándar SQL
Fechas
Fechas(año, mes, día) DATE
Fecha y hora TIMESTAMP
Hora(horas, minutos y segundos) TIME
Intervalos(período de tiempo) INTERVAL
Booleanos y binarios
Lógicos BOOLEAN BOOL
Binarios BINARY (n) Se utiliza para almacenar
datos binarios, es decir, datos que no
están en formato de texto o números,
sino que están representados como
secuencias de bits (ceros y unos)
Carla Parra 19 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Alias - Columnas (i)
Sin alias
Un alias es un
nombre Esto hace que
temporal que la consulta sea
se le da a una más clara y
tabla o fácil de
columna en entender
una consulta
Luego se pueden
llamar a sus atributos
desde ese alias,
continuados con un
punto (“.”)
Carla Parra 20 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Alias - Columnas (ii)
Con alias
Proporcionar
Las consultas
nombres más
sean más
significativos a
legibles, más
las columnas o
fáciles de
tablas en los
escribir
resultados
no modifican la
estructura de la base de
datos; son simplemente
utilizados para mejorar
la legibilidad y la
claridad de las
consultas
Carla Parra 21 Introducción a los Sistemas de Bases de Datos
Capítulo 5: Alias -Tablas (ii)
Seleccionar el nombre y edad de
os clientes cuya edad sea menor
de 60 años
Sintáxis
Carla Parra 22 Introducción a los Sistemas de Bases de Datos