Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Anderson Fuentes
Prohibida la reproducción de esta presentación por cualquier medio, total o parcialmente, sin permiso expreso del autor.
• Structured Query Language (SQL)
• Lenguaje declarativo de acceso a bases de datos que combina construcciones
del álgebra relacional y el cálculo relacional.
• Originalmente desarrollado en los '70 por IBM en su Research Laboratory de San
José a partir del cálculo de predicados creado por Codd.
• Lenguaje estándar de facto en los SGBD comerciales
• Estándares:
• SEQUEL(Structured English QUEry Language), IBM 1976
• SQL-86 (ANSI SQL)
• SQL-89 (SQL1)
• SQL-92 (SQL2), gran revisión del estándar
• SQL:1999 (SQL3), Añade disparadores, algo de OO, ...
• SQL:2003. Añade XML, secuencias y columnas autonuméricas.
2
• El Lenguaje de Definición de Datos (LDD)
• Proporciona comandos para la creación, borrado y modificación de esquemas
relacionales
• El Lenguaje de Manipulación de Datos (LMD)
• Basado en el álgebra relacional y el cálculo relacional permite realizar consultas
y adicionalmente insertar, borrar y actualizar de tuplas
• Ejecutado en una consola interactiva
• Embebido dentro de un lenguaje de programación de propósito general
• Definición de vistas
• Autorización
• Definición de usuarios y privilegios
• Integridad de datos
• Control de Transacciones
3
DDL
• CREATE
• ALTER
• DROP
4
CREACIÓN DE TABLAS
5
CREACIÓN DE TABLAS
6
MODIFICACIÓN Y ELIMINACIÓN DE TABLAS
7
EJEMPLO
8
EJEMPLO
9
EJEMPLO
10
DML
• Selección:
• SELECT
• Modificación:
• INSERT
• UPDATE
• DELETE
11
ESTRUCTURA DE LA SENTENCIA SELECT
12
ESTRUCTURA DE LA SENTENCIA SELECT
13
ESTRUCTURA DE LA SENTENCIA SELECT
14
PROYECCIÓN DE ALGUNAS COLUMNAS
15
ELIMINACIÓN DE FILAS DUPLICADAS
16
ELIMINACIÓN DE FILAS DUPLICADAS
17
PROYECCIÓN DE TODOS LOS ATRIBUTOS
18
SALIDA ORDENADA
19
SALIDA ORDENADA
20
SALIDA ORDENADA
21
SELECCIÓN DE FILAS
22
SELECCIÓN DE FILAS
23
SELECCIÓN DE FILAS
24
EJEMPLO DE SELECCIÓN DE FILAS
25
EJEMPLO DE SELECCIÓN DE FILAS
26
EJEMPLO DE SELECCIÓN DE FILAS
27
MÚLTIPLES CONDICIONES - AND
28
MÚLTIPLES CONDICIONES – AND/OR
29
SELECT CON BETWEEN
30
SELECT CON IN
31
BÚSQUEDA PARCIAL - LIKE
32
BÚSQUEDA PARCIAL – LIKE
EJEMPLOS CON %
33
BÚSQUEDA PARCIAL – LIKE
EJEMPLOS CON _
34
BÚSQUEDA PARCIAL – NOT LIKE
35
EXPRESIONES Y RENOMBRAMIENTO
DE COLUMNAS
36
RENOMBRAMIENTO DE TABLAS
37
RENOMBRAMIENTO DE TABLAS
38
TIPOS SQL Y VALORES LITERALES
39
TIPOS SQL Y VALORES LITERALES
40
EXPRESIONES
41
FUNCIONES MATEMÁTICAS COMUNES
42
FUNCIONES DE CADENA
43
OPERACIONES ARITMÉTICAS
44
OPERACIONES ARITMÉTICAS
45
EXPRESIONES EN PREDICADOS
46
USO DE FUNCIONES
47
USO DE FUNCIONES
48
OPERACIONES DE CONJUNTO
49
UNIÓN
50
UNIÓN
Cada entrada debe tener 2 lineas: la
primera debe incluir el número y
nombre del director y la seguna el
número y el nombre del
departamento.
SELECT MGRNO , 'Dept.:', DEPTNAME
FROM DEPARTMENT
UNION
SELECT MGRNO, 'Mgr.:', LASTNAME
FROM DEPARTMENT D, EMPLOYEE E
WHERE D.MGRNO = E.EMPNO
ORDER BY 1,2 DESC
MGRNO DEPTNAME
000010 Mgr.: HAAS
000010 Dept.: SPIFFY COMPUTER SERVICE DIV.
000020 Mgr.: THOMPSON
000020 Dept.: PLANNING
000030 Mgr.: KWAN
000030 Dept.: INFORMATION CENTER
000050 Mgr.: GEYER
000050 Dept.: SUPPORT SERVICES
51
CONSULTAR MÁS DE UNA TABLA
52
SINTAXIS DEL JOIN: FORMATO 1
53
JOIN DE TRES TABLAS
54
JOIN DE TRES TABLAS
55
NOMBRE DE CORRELACIÓN (P,D,E)
56
JOIN DE UNA TABLA CONSIGO MISMA
57
JOIN DE UNA TABLA CONSIGO MISMA
¿Qué empleados
son mayores que
su director? SELECT E.EMPNO, E.LASTNAME,
E.BIRTHDATE, M.BIRTHDATE, M.EMPNO
FROM EMPLOYEE E, EMPLOYEE M,
DEPARTMENT D
WHERE E.WORKDEPT = D.DEPTNO
AND D.MGRNO = M.EMPNO
AND E.BIRTHDATE < M.BIRTHDATE
59
FUNCIONES DE COLUMNA
60
FUNCIONES DE COLUMNA
61
FUNCIONES DE COLUMNA
62
GROUP BY
Necesito conocer los salarios de todos los
empleados de los departamentos A00, B01,
y C01. Además, para estos departamentos
quiero conocer su masa salarial.
WORKDEPT SALARY
A00 52750.00
A00 46500.00 WORKDEPT SUM
A00 29250.00 A00 128500.00
B01 41250.00 B01 41250.00
C01 38250.00 C01 90470.00
C01 23800.00
C01 28420.00
63
GROUP BY-HAVING
Ahora sólo quiero ver los departamentos
cuya masa salarial sea superior a 50000
WORKDEPT SUM
WORKDEPT SUM
A00 128500.00
B01 41250.00 A00 128500.00
C01 90470.00 C01 90470.00
64
GROUP BY-HAVING
65
GROUP BY-HAVING
66
GROUP BY-HAVING
67
GROUP BY-HAVING
68
EJECUCIÓN DE CONSULTAS SELECT
69
SUBCONSULTA CON IN
Tabla DEPARTMENT
¿Qué departamentos no DEPTNO DEPTNAME
tienen proyectos
A00 SPIFFY COMPUTER SERVICE
asignados?
B01 PLANNING
C01 INFORMATION CENTER
... ...
Resultado subconsulta
Resultado final
B01
DEPTNO DEPTNAME C01
A00 SPIFFY COMPUTER SERVICE D01
D11
D21
E01
E11
E21 70
MODIFICACIÓN DE LA BD
71
LA INSTRUCCIÓN INSERT
72
AÑADIR UNA FILA
73
AÑADIR VARIAS FILAS
74
AÑADIR VARIAS FILAS
75
LA INSTRUCCIÓN UPDATE
76
MODIFICAR DATOS
77
LA INSTRUCCIÓN DELETE
78
BORRAR FILAS
79
VENTAJAS DE SQL
• Madurez: Dado que tiene ya muchos años de madurez y aceptación por la comunidad
de desarrolladores existe una gran variedad y cantidad de información para poder
realizar cualquier tipo de desarrollo o extracción de información, lo cual esto ayuda
increíblemente en la mejora de tiempos de entrega de cualquier proyecto de software.
• Atomicidad: En las operaciones e información, esto quiere decir que cualquier
operación realizada en la base de datos, garantiza que si a la mitad de cualquier
operación de base de datos, surgió algún tipo de problema, la información no se
completa, o se realiza al 100% o no se realiza nada.
• Estándares bien definidos: Por ejemplo, la creación de tablas, el insertar, eliminar y
actualizar información, consultas, se escriben bajo la misma sintaxis, basados en el
estándar de SQL.
• Sencillez en la escritura: Su principal aceptación, es su sencillez de escritura ya que se
asemeja mucho al lenguaje humano, la comprensión de las operaciones que se
programen puede ser interpretadas o escritas por personas que no tengan grandes
conocimientos de informática.
80
VENTAJAS DE SQL
81
¿Dudas o preguntas?
Muchas gracias!
Anderson Fuentes
Ingeniería de Sistemas
anderson.fuentes@ieee.org
82