Temario del Curso:
CLASE 1
1. Entendiendo SQL (Tería con slides)
1.1 ¿Qué es una base de datos?
1.2 Características deseables de las bases de datos
1.3 Tipos de bases de datos
1.4 ¿Qué es SQL?
1.5 Historia de SQL
1.6 ¿Donde se utiliza SQL?
1.7 Pros de SQL
1.8 Contras de SQL
1.9 ¿SQL es gratis?
Instalando SQL (Teoría con slides y práctica)
2.1 ¿Qué necesito para utilizar SQL?
2.2 ¿Qué es un RDBMS?
2.3 ¿Cuánto cuesta un RDBMS?
2.4 Alcance del curso
2.5 Características de PostgreSQL
2.6 Instalando PostgreSQL
2.7 Entendiendo psql
2.8 Entendiendo pgAdmin
2.9 Otras formas de trabajar con SQL
3. Introducción a SQL (100% programación, no hay slides)
3.1 Obtención de una base de datos real en formato csv
3.2 Revisión de la base de datos
3.3 Creación de la base de datos
3.4 Creación de la tabla para la base de datos
3.5 Importación de los datos del CSV a PostgreSQL
3.6 Limpieza de la base de datos
3.7 Consultas a la base de datos
3.8 Exportación de resultados
3.9 Graficación de resultados
CLASE 2
4. Tipos de Datos (100% programación, no hay slides)
4.1 Tipos Cadena
4.2 Tipos Numéricos
4.3 Tipos Monetarios
4.4 Tipos Fecha/Hora
4.5 Tipos Booleanos
4.6 Tipos Enumerados
4.7 Tipos Geométricos
4.8 Tipos de Direcciones de Red
4.9 Tipos de Cadena de Bits
4.10 Otros tipos de datos
5. Data Definition Language (DDL) - 100% programación, no hay slides
5.1 Crear una Base de datos
5.2 Listar todas las Bases de datos
5.3 Utilizar una Base de datos
5.4 Listar Tablas dentro de una Base de datos
5.4 Crear una Tabla
5.5 Describir una Tabla
5.6 Eliminar una Tabla
5.7 Eliminar una Columna de una Tabla
5.8 Agregar una Columna a una Tabla
5.9 Cambiar el nombre de una Tabla
5.10 Cambiar el nombre a una Columna de una Tabla
5.11 Cambiar el tipo de dato de una Columna
5.12 Eliminar una Base de datos
5.13 ¿Qué es un constraint?
5.14 Tipos de constraints
5.15 ¿Cómo se agrega un constraint?
6. Data Manipulation Language (DML) − Clase: 100% programación, no hay slides
6.1 Agregar datos de la tabla
6.2 Actualizar datos de la tabla
6.3 Eliminar datos de una tabla
6.4 Regresar datos de los renglones modificados
CLASE 3
7. Data Query Language (DQL) − Parte 1 Clase: 100% programación, no hay slides
7.1 Mostrar todos los renglones y columnas de una tabla
7.2 Mostrar todos los renglones pero sólo algunas columnas
7.3 Mostrar renglones que cumplan condiciones (WHERE)
7.5 Operadores lógicos
7.4 Uso de DISTINCT
7.5 Uso de ORDER BY
7.6 Uso de LIMIT y OFFSET
7.7 Funciones de agregación
7.8 Uso de GROUP BY
7.9 Uso de HAVING
7.10 Uso de UNION, UNION ALL
7.11 Uso de EXCEPT
7.12 Uso de INTERSECT
7.13 Uso de ALIAS
8. Entendiendo las Subconsultas − Clase: 100% programación, no hay slides
8.1 ¿Qué es una subconsulta?
8.2 Reglas para subconsultas
8.3 Subconsultas Noncorrelated
8.4 Subconsultas Correlated
CLASE 4
Ejercicio No . 1 "Autocinemas"

Ayudarás al dueño de unos Autocinemas a programar una base de datos para administrar su negocio
y posteriormente realizarás consultas a la información que te proporcionará tu cliente.
9. Introducción a Diseño de Bases de datos − Clase: 60% teórica, 40% programación
9.1 Desarrollo vs Diseño
9.2 Ventajas de un buen diseño
9.3 Desventajas de un mal diseño
9.4 Normalización de tablas
9.5 Primera Forma Normal
9.6 Segunda Forma Normal
9.7 Tercera Forma Normal
9.8 Cuarta Forma Normal
9.9 Quinta Forma Normal
9.10 Llaves primarias naturales
9.11 Llaves primarias artificiales
9.12 Llaves primarias compuestas
9.13 Llaves foráneas
9.14 Integridad referencial
9.15 Relación uno a uno
9.16 Relación uno a muchos
9.17 Relación muchos a muchos
9.18 Introducción al Modelo Entidad Relación
CLASE 5
10. Data Query Language (DQL) − Parte 2 − Clase: 100% programación, no hay slides
10.1 Consultas multitabla
10.2 Uso de CROSS JOIN
10.3 Uso de INNER JOIN
10.4 Uso de NATURAL JOIN
10.5 Uso de LEFT OUTER JOIN
10.6 Uso de RIGHT OUTER JOIN
10.7 Uso de FULL OUTER JOIN
Ejercicio No . 2 "Tienda de Electrónica"

Cecilio acaba de ser contratado y debes aydudarle a diseñar y programar una base de datos para cargar la información que dejó
su antecesor. Posteriormente deberás realizar varias consultas para cumplir con el reporte solicitado.
CLASE 6
Ejercicio No . 3 "Departamento de Recursos Humanos"

Lupita es la encargada del Departamento de Recursos Humanos y deberás ayudarla a diseñar y
programar una base de datos para cumplir con la solicitud de información de su Jefe. También
deberás ampliar el diseño original de la base de datos para cumplir con los nuevos requerimientos.
11. Entendiendo el uso de Funciones − Clase: 100% programación, no hay slides
11.1 ¿Qué son las funciones?
11.2 Tipos de Funciones
11.3 Manejo de Funciones
11.4 Funciones integradas
11.5 Uso de funciones en PostgreSQL (matemáticas, cadena, fecha/hora, xml, json, etc.)
11.6 Funciones definidas por el usuario
CLASE 7
12. Vistas y tablas temporales − Clase: 100% programación, no hay slides
12.1 ¿Qué es una vista?
12.2 Ventajas de las vistas
12.3 Desventajas de las vistas
12.4 ¿Cómo crear una vista?
12.5 ¿Cómo eliminar una vista?
12.6 ¿Qué es una tabla temporal?
12.7 Ventajas de las tablas temporales
12.8 Desventajas de las tablas temporales
12.9 ¿Cómo crear una tabla temporal?
12.10 ¿Cómo eliminar una tabla temporal?
Ejercicio No . 4 "La noche de los Seguros Vivientes"

Estás a cargo de varias compañías aseguradoras, cada una con sus propios clientes,
cada cliente ha contratado distintas pólizas y cada póliza cubre algún tipo de siniestro.
Deberás programar una base de datos, cargar toda la información que se te proporciona
y posteriormente realizar muchas consultas a la base de datos ya que fue una noche agitada.
13. Entendiendo los Índices − Clase: Teórica con slides
13.1 ¿Qué es un índice?
13.2 Ventajas de los índices
13.3 Desventajas de los índices
13.4 ¿Cómo agrego un índice?
13.5 Recomendaciones para utilizar índices
CLASE 8
14. Más allá de ANSI SQL − Clase: 100% programación, no hay slides
14.1 Common Table Expressions (CTE)
14.2 Grouping sets
14.3 Funciones de ventana
14.4 Expresiones regulares
14.5 Procedimientos almacenados
14.5 Triggers
14.6 Transacciones
CLASE 9
15. Introducción PL/pgSQL − Clase: 100% programación, no hay slides
15.1 ¿Qué es PL/PgSQL?
15.2 Ventajas de utilizar PL/pgSQL
15.3 Estructura de PL/pgSQL
15.4 Declaraciones
15.5 Sentencias Básicas
15.6 Estructuras de control
15.7 Administración de transacción
15.8 Funciones Trigger
16. Antipatrones SQL − Clase teórica con slides
16.1 ¿Qué es un antipatrón?
16.2 Buenas prácticas de SQL
16.3 Antipatrones de Diseño de Base de Datos Lógica
16.4 Antipatrones de Diseño de Base de Datos Física
16.5 Antipatrones al realizar consultas
16.6 Antipatrones en Desarrollo de Aplicaciones