Está en la página 1de 135

Escuela Industrial y Preparatoria Técnica Pablo Livas

Dr. Santos Guzmán Lopez


Rector

Dr. Juan Paura García


Secretario General

Dr. Jaime Arturo Castillo Elizondo


Secretario Académico

M.C. Sandra Elizabeth del Río Muñoz


Directora del Sistema de Estudios del Nivel Medio Superior

M.C.E. José Andrés Moreno Banda


Director de la EIPTPL

Dra. Erika Marcela Soto Lozoya


Subdirectora Académica de la EIPTPL

M.A.F.D Sader Jacob Saldaña Ovalle


Subdirector de Formación Integral al Estudiante de la EIPTPL

José Mariano Jiménez #321 Sur Col. Centro, Monterrey, N.L. C.P. 64000

Base de Datos II

©M.E.S. Jaqueline Rubí Fuerte Navarro


©M.E.S. Georgina Peña Najera

Diseño y Maquetación:
Lic. Leonor Elizabeth Ramírez Abrego

Hecho en Monterrey N.L., México


Mensaje del Rector

La Universidad Autónoma de Nuevo León (UANL) ha desempeñado por más de 88 años un papel funda-
mental en la sociedad neolonesa al ser promotora de la Educación Media Superior y Superior, contribuyen-
do en el desarrollo académico de miles de jóvenes para formar profesionistas exitosos en todas las áreas del
conocimiento.

A lo largo de su historia, la UANL ha fomentado el desarrollo integral de las y los estudiantes, promoviendo
la responsabilidad social universitaria a través de acciones en beneficio del cuidado al medio ambiente y la
sustentabilidad, y promoviendo el desarrollo de vínculos con todos los sectores de la sociedad.

En el Plan de Desarrollo Institucional al año 2030, se plasman la filosofía y los principios institucionales
que deberán prevalecer en todos los programas y acciones que se realicen por la Universidad durante los
próximos años y que, ante las tendencias que se viven actualmente, la UANL conserva su visión firme de
mantener la calidad educativa y la competitividad cumpliendo los más exigentes estándares nacionales e
internacionales.

En este contexto, la Universidad ha implementado una Estrategia Digital, aprovechando los recursos tecno-
lógicos y la experiencia, que desde hace más de 20 años se cuenta en educación digital, lo que ha permitido
dar continuidad a los más de 330 programas educativos que ofrece esta Institución a sus más de 215 mil
estudiantes.

El mejor de los éxitos a nuestros estudiantes de bachillerato, a quienes les aseguramos que cursarán pro-
gramas educativos con el mejor reconocimiento de calidad académica, además que contarán con las
herramientas más innovadoras para las estrategias de enseñanza-aprendizaje y así lograr desarrollar las
aptitudes y habilidades necesarias que les permitan interactuar en el entorno personal, académico, social y
laboral, y a la par, continuar con su preparación profesional o insertarse efectivamente en el campo laboral.

El trabajo desarrollado en estos libros está sustentado por destacados profesores, integrantes de los dis-
tintos Cuerpos Académicos Disciplinares del Sistema de Estudios del Nivel Medio Superior de la UANL, que
por cada área disciplinar han trabajado arduamente para elaborar los programas analíticos de cada unidad
de aprendizaje, con el objetivo de brindar las herramientas para que se logren los aprendizajes significati-
vos necesarios.

Cada uno de ustedes cuenta con su Universidad, la cual tiene a la excelencia por principio, y la educación
como instrumento para brindar una educación integral de calidad; innovadora en la generación y aplicación
del conocimiento, en beneficio de la sociedad.

Dr. Med. Santos Guzmán López


Rector
Mensaje del Director

La Escuela Industrial y Preparatoria Técnica “Pablo Livas” por más de 102 años se ha desarrollado como un pi-
lar en la educación del estado, con una trayectoria enfocada la formación de bachilleres y bachilleres técnicos
exitosos en todas las áreas del conocimiento, por lo que ha sido reconocida nacional e internacionalmente.
A lo largo de más de diez décadas ha fomentado los más altos estándares de calidad académica, promovien-
do una oferta educativa siempre a la vanguardia, atendiendo las tendencias de cada momento y caracteriza-
da por impulsar el progreso y bienestar de la sociedad, con el objetivo de brindar conocimientos y servicios
de excelencia.

Nuestra preparatoria se distingue por las estrategas que implementa para asegurar en los estudiantes el
desarrollo de aptitudes y habilidades necesarias para interactuar con su entorno, así como para formarlos
como ciudadanos competitivos, creativos y emprendedores con alto sentido de compromiso, pertinencia y
calidad educativa.

M.C.E. José Andrés Moreno Banda


Director
CONTENIDO

Introducción
Etapa 1 Definición, control y acceso a la base de datos – Uso de Transact SQL Pag.2
Tema 1 Modelos de bases de datos
Tema 2 Lenguaje SQL y Transact-SQL
Tema 3 Cláusulas SQL
Tema 4 Operadores
Tema 5 Tipos de datos
Tema 6 Funciones de agregado y escalares

Etapa 2. Consultas simples y Vistas a través del uso de criterios de selección Pag.31
Tema 1 La sentencia SELECT
Tema 2 Definición de consultas SQL
Tema 3 Consultas Simples con SELECT
Tema 4 Vistas

Etapa 3 Consultas Multitabla Pag.49


Tema 1 Consultas Combinadas JOIN
Tema 2 INNER JOIN
Tema 3 OUTER JOIN (COMBINACIONES EXTerNAS)
Tema 4 LEFT JOIN
Tema 5 RIGHT JOIN
Tema 6 FULL JOIN

Etapa 4. Procedimientos Almacenados Pag.64


Tema 1 Procedimientos Almacenados
Tema 2 Crear un procedimiento almacenado
Tema 3 Crear y ejecutar un procedimiento almacenado
Tema 4 Modificar un procedimiento almacenado (Alter procedure)
Tema 5 Eliminar un procedimiento almacenado (Drop procedure)

Anexos
Ejercicios SQL resueltos Pag.80
Fuente(s) de apoyo y consulta
Continua la Guía de Aprendizaje Pag.81
Introducción
La Unidad de Aprendizaje de Base de Datos II pertenece al Bachillerato Técnico en Sistemas Computaciona-
les y se ubica en el sexto semestre de la carrera; complementa y refuerza los aprendizajes adquiridos en la
Unidad de aprendizaje de Base de Datos I.
Considerando que en el mundo actual la informática, así como la programación y desarrollo de aplicaciones
centradas en el manejo de los datos han adquirido una importancia de primer orden para cualquier empresa
o profesional, de lo anterior se desprende que el manejo de las bases de datos relacionales es indispensable
en cualquier lenguaje de programación orientado al manejo de datos y por consiguiente en cualquier aplica-
ción informática que pretenda la administración de lo mismo, más aún cuando el mayor valor de las empresas
en la actualidad radica en el tratamiento de sus productos, clientes, proveedores, agentes, etcétera, no sería
comprensible el más sencillo programa de facturación, almacén o contabilidad sin recurrir al uso de bases de
datos relacionales y por tanto es un aspecto fundamental del aprendizaje de cualquiera que pretenda dedi-
carse al desarrollo del software.
El aspecto importante en el desarrollo de la Unidad de Aprendizaje de Base de Datos II es precisamente que
el estudiante trabaje en la construcción de su conocimiento, proporcionándole actividades que le permitan
desarrollar sus competencias y lograr aprendizajes más significativos para utilizarlos eficientemente, ha-
ciendo más rápida y fácil la gestión de bases de datos, adquiriendo las habilidades necesarias para aprender
a diseñar, crear, administrar y mantener una base de datos y obtener información de ella permitiéndole en
un futuro el poder gestionar grandes cantidades de información tanto para propósitos profesionales o de
organización personal.

1
Etapa 1
Definición, control
y acceso a la base
de datos – Uso de
Transact SQL

2
1.1 Modelos de Bases de Datos
Se le llama base de datos a un conjunto de información perteneciente a un mismo contexto, ordenada
de modo sistemático para su posterior recuperación, análisis y/o transmisión.
El manejo de las bases de datos se lleva mediante sistemas de gestión (llamados DBMS por sus siglas
en inglés: Database Management Systems o Sistemas de Gestión de Bases de Datos), actualmente
digitales y automatizados, que permiten el almacenamiento ordenado y la rápida recuperación de la
información.
En la conformación de una base de datos se pueden seguir diferentes modelos y paradigmas, cada uno
dotado de características, ventajas y dificultades, haciendo énfasis en su estructura organizacional,
su jerarquía, su capacidad de transmisión o de interrelación, etc. Esto se conoce como modelos de
base de datos y permite el diseño y la implementación de algoritmos y otros mecanismos lógicos de
gestión, según sea el caso específico.
El conjunto de componentes o herramientas conceptuales que un SGBD proporciona para modelar recibe
el nombre de modelo de BD.
Los cuatro modelos de BD más utilizados en los SI son el modelo relacional, el modelo jerárquico, el modelo
en red y el modelo relacional con objetos.
Todo modelo de BD nos proporciona tres tipos de herramientas:
a) Estructuras de datos con las que se puede construir la base de datos, tablas, árboles, etc.
b) Diferentes tipos de restricciones (o reglas) de integridad que el SGBD tendrá que hacer cumplir
a los datos: dominios, claves, etc.
c) Una serie de operaciones para trabajar con los datos. Un ejemplo de ello, en el modelo relacional,
es la operación SELECT, que sirve para seleccionar (o leer) las filas que cumplen alguna condición.
Un ejemplo de operación típica del modelo jerárquico y del modelo en red podría ser la que nos dice
si un determinado registro tiene “hijos” o no.
Evolución de los modelos de BD

3
De los cuatro modelos de BD que hemos citado, el que apareció primero, a principios de los años
sesenta, fue el modelo jerárquico. Sus estructuras son registros interrelacionados en forma de árboles.
La siguiente imagen es un ejemplo de la representación gráfica de este modelo.

La estructura jerárquica fue usada en las primeras BD. Las relaciones entre registros forman una
estructura en árbol. Actualmente las bases de datos jerárquicas más utilizadas son IMS de IBM y el
Registro de Windows de Microsoft.
A principios de los setenta surgieron SGBD basados en un modelo en red.
Como en el modelo jerárquico, hay registros e interrelaciones, pero un registro ya no está limitado a ser
“hijo” de un solo registro tipo.

4
Esta estructura contiene relaciones más complejas que las jerárquicas. Admite relaciones de cada
registro con varios que se pueden seguir por distintos caminos.
Durante los años ochenta apareció una gran cantidad de SGBD basados en el modelo relacional, y
prácticamente todos utilizaban como lenguaje nativo el SQL. El modelo relacional consta de un solo
elemento: la tabla, formada por filas y columnas. Las interrelaciones se deben modelizar utilizando las
tablas.

El principal objetivo del modelo de datos relacional es facilitar que la base de datos sea percibida o vista
por el usuario como una estructura lógica que consiste en un conjunto de relaciones y no como una
estructura física de implementación. Esto ayuda a conseguir un alto grado de independencia de los
datos.

La estructura relacional es la más extendida hoy en día. Almacena los datos en filas o registros y columnas
o campos (atributos). Estas tablas pueden estar conectadas entre sí por claves comunes.
La mayor parte de los SI que actualmente están en funcionamiento utilizan SGBD relacionales, pero
algunos siguen utilizando los jerárquicos o en red (especialmente en SI antiguos muy grandes).

Estos últimos años se está extendiendo el modelo de BD relacional con objetos. Se trata de ampliar el
modelo relacional, añadiéndole la posibilidad de que los tipos de datos sean tipos abstractos de datos.
Esto acerca los sistemas relacionales al paradigma de la OO. Los primeros SGBD relacionales
Los primeros SGBD relacionales que dieron esta posibilidad fueron Oracle (versión 8), Informix
(versión 9) e IBM/DB2/UDB (versión 5).
Hablamos de modelos de BD, pero de hecho se acostumbran a denominar modelos de datos. El
más extendido de estos modelos es el conocido como modelo ER en el mundo profesional de los
desarrolladores de SI durante el análisis y las primeras etapas del diseño de los datos, y la utilización del
modelo relacional para acabar el diseño y construir la BD con un SGBD.

5
EJERCICIOS PROPUESTOS PARA PRÁCTICA

Construye el modelo conceptual y el modelo lógico correspondiente en cada caso.

Una florista desea ampliar su negocio y realizar ventas a través de internet. Y para ello necesita crear
una base de datos.
Cada pedido incluye un número de pedido, la fecha de venta, el importe total y una lista con las flores
solicitadas y en qué cantidad.
Las flores se identifican mediante un código, su nombre y el precio de venta. Las flores pertenecen a
una especie determinada. Para cada especie, se almacena el nombre, la época de floración, la estación
de plantación, el tipo de suelo apropiado y el tiempo de exposición recomendado.

El dueño de una ferretería requiere para el manejo de su negocio un sistema de BD que le permita
administrar la información referente a las órdenes de compra que se generan diariamente para mejorar
y automatizar la gestión de las mismas.
La siguiente tabla contiene la información que se genera al momento de que se registra una orden.
NORMALIZACIÓN CERO

ORDEN DE COMPRA

6
1.2 Lenguaje SQL y Transact-SQL
Para comunicarse con el SGBD, el usuario, ya sea un programa de aplicación o un usuario directo, se
vale de un lenguaje. Hay muchos lenguajes diferentes, según el tipo de usuarios para los que están
pensados y el tipo de cosas que los usuarios deben poder expresar con ellos:

a) Habrá usuarios informáticos muy expertos que querrán escribir procesos complejos y que
necesitarán lenguajes complejos.
b) Sin embargo, habrá usuarios finales no informáticos, ocasionales (esporádicos), que sólo harán
consultas. Estos usuarios necesitarán un lenguaje muy sencillo, aunque dé un rendimiento bajo en
tiempo de respuesta.
c) También podrá haber usuarios finales no informáticos, dedicados o especializados. Son usuarios
cotidianos o, incluso, dedicados exclusivamente a trabajar con la BD. Estos usuarios necesitarán
lenguajes muy eficientes y compactos, aunque no sea fácil aprenderlos. Tal vez serán lenguajes
especializados en tipos concretos de tareas

LENGUAJE SQL
SQL es el lenguaje de consulta universal para bases de datos.

Los mandatos de SQL se dividen en tres grandes grupos diferenciados, los cuales serán tratados por
separado y que únicamente se presentan aquí a modo introductorio.

DDL (Data Definition Language), es el encargado de la definición de Bases de Datos, tablas, vistas e
índices entre otros.
Son comandos propios de este lenguaje:
CREATE TABLE
CREATE INDEX
CREATE VIEW
CREATE SYNONYM

DML (Data Manipulation Language), cuya misión es la manipulación de datos. A través de él podemos
seleccionar, insertar, eliminar y actualizar datos. Es la parte que más frecuentemente utilizaremos, y
que con ella se construyen las consultas.
Son comandos propios de este lenguaje:
SELECT
UPDATE
INSERT
INSERT INTO
DELETE FROM

7
DCL (Data Control Language), encargado de la seguridad de la base de datos, en todo lo referente al
control de accesos y privilegios entre los usuarios.
Son comandos propios de este lenguaje:
GRANT
REVOKE

SQL es un lenguaje estándar e interactivo de acceso a bases de datos relacionales que permite especificar
diversos tipos de operaciones en ellas, gracias a la utilización del álgebra y de cálculos relacionales, el
SQL brinda la posibilidad de realizar consultas con el objetivo de recuperar información de las bases de
datos de manera sencilla.
Las consultas toman la forma de un lenguaje de comandos que permite seleccionar, insertar, actualizar,
averiguar la ubicación de los datos, y más.

 Structured Query Language (Lenguaje de Consulta estructurado).


 Establecido como el lenguaje de base de datos relacional estándar.
 Existen numerosos productos que soportan SQL, cada uno de ellos con pequeñas diferencias
sin apenas importancia.
 El SQL estándar es el publicado por ANSI e ISO.

TRANSACT-SQL
EL lenguaje SQL estándar fue tomado por la mayoría de empresas desarrolladores de bases de datos e
incluido en sus productos, tales como Microsoft, Oracle, MySQL, IBM, etc.

Posteriormente, estas empresas decidieron ampliar este SQL estándar con características propias para
sus bases de datos, es así que Microsoft desarrolló el Transact-SQL, Oracle el PL-SQL y así cada una de
estas empresas.

Transact-SQL es una variante mejorada del SQL estándar, es decir, tiene las características del SQL
y a su vez se le agregaron otras posibilidades sobre todo para lo que es la programación de Stored
Procedures y Triggers.

Al aprender Transact-SQL estarás también aprendiendo SQL, porque como mencionamos en el párrafo
anterior, el Transact-SQL es SQL más las mejoras introducidas por Microsoft para sus productos.

El lenguaje SQL, que es el más utilizado en las bases de datos relacionales, tiene verbos – instrucciones
de tres tipos diferentes:
1) Verbos del tipo DML
2) Verbos del tipo DDL
3) Verbos de tipo DCL

8
Lenguaje de Definición de Datos (DDL)
Es un lenguaje de programación para definir estructuras de datos, proporcionado por los sistemas
gestores de bases de datos, en este caso SQL Server. En inglés, Data Definition Language, de ahí sus
siglas DDL.
Este lenguaje permite a los programadores de un sistema gestor de base de datos definir las estructuras
que almacenarán los datos.
Para definir la estructura disponemos de tres sentencias o comandos:

CREATE se usa para crear una base de datos, tabla, vistas, etc.
se utiliza para modificar la estructura de la tabla, por ejemplo añadir
ALTER
o borrar columnas.
con esta sentencia, podemos eliminar los objetos de la estructura,
DROP
por ejemplo, un índice o una secuencia.

Lenguaje de Manipulación de Datos (DML)


También es un lenguaje proporcionado por los sistemas gestores de bases de datos. En inglés, Data
Manipulation Language (DML).
Utilizando instrucciones de SQL, permite a los usuarios introducir datos para posteriormente realizar
tareas de consultas o modificación de los datos que contienen las Bases de Datos.
Su función es la manipulación de datos. A través de él podemos seleccionar, insertar, eliminar y actualizar
datos, también generar consultas para ordenar, filtrar y extraer datos de la base de datos.
Los comandos que se utilizan para manipular los datos, son los siguientes:

SELECT esta sentencia se utiliza para realizar consultas sobre los datos
con esta instrucción podemos insertar los valores en una base de
INSERT
datos.
UPDATE sirve para modificar los valores de uno o varios registros
DELETE se utiliza para eliminar las finas de una tabla

Lenguaje de Control de Datos (DCL)


Es un lenguaje que incluye una serie de comandos SQL. Como los anteriores, es proporcionado por
los sistemas gestores de bases de datos. Sus siglas son DCL por su nombre en inglés, Data Control
Language.
Estos comandos permiten al Administrador del sistema gestor de base de datos, controlar el
acceso a los objetos, es decir, podemos otorgar o denegar permisos a uno o más roles para realizar
determinadas tareas.
Los comandos para controlar los permisos son los siguientes:
GRANT permite otorgar permisos.
REVOKE elimina los permisos que previamente se han concedido.

Todos estos lenguajes forman parte del lenguaje SQL en general. Es decir, es aplicable a todos
los gestores de bases de datos relacionales tales como Oracle SQL, MySQL o SQL Server.

9
1.3 Cláusulas SQL
Como una frase, una instrucción SQL tiene cláusulas. Cada cláusula realiza una función de la instrucción
SQL. Algunas cláusulas son necesarias en una instrucción SELECT. En la siguiente tabla, se enumeran
las cláusulas SQL más comunes.

CLÁUSULA FUNCIÓN
SELECT Muestra una lista de los campos que contienen datos de interés.
FROM Muestra las tablas que contienen los campos de la cláusula SELECT.
Especifica los criterios de campo que cada registro debe cumplir para poder
WHERE
ser incluido en los resultados.
ORDER BY Especifica la forma de ordenar los resultados.
En una instrucción SQL que contiene funciones de agregado, muestra los
GROUP BY
campos que no se resumen en la cláusula SELECT.
En una instrucción SQL que contiene funciones de agregado, especifica las
HAVING condiciones que se aplican a los campos que se resumen en la instrucción
SELECT.

Cada cláusula SQL se compone de términos, comparables a elementos de la oración. En la siguiente


tabla, se enumeran los tipos de términos de SQL.

Termino de Elemento de la
Definición Ejemplo
SQL oración comparable
Nombre que se usa para identificar un
identificador sustantivo objeto de la base de datos, como el Ap_Paterno
nombre de un campo.
Palabra clave que representa o
operador verbo o adverbio AS
modifica una acción.
Valor que no cambia, como un número
constante sustantivo 42
o un valor nulo (NULL).
Combinación de identificadores, > = Productos
expresión adjetivo operadores, constantes y funciones
que se evalúa como un valor único.

A continuación, se incluye un ejemplo y se describe cada cláusula para mostrar cómo funciona la
sintaxis SQL.

SELECT

SELECT¨ [E-mail Address], Company


 Esta es la cláusula SELECT. Se compone de un operador (SELECT) seguido de dos identificadores
([Dirección de correo electrónico] y Empresa).
 Si un identificador contiene espacios o caracteres especiales (como “Dirección de correo
electrónico”), se debe escribir entre corchetes.
 La cláusula SELECT siempre aparece antes que la cláusula FROM en una instrucción SELECT.

10
FROM
FROM Contactos
 Esta es la cláusula FROM. Se compone de un operador (FROM) seguido de un identificador
(Contactos).
 Una cláusula FROM no enumera los campos que se van a seleccionar, si no la tabla de la cual se
van a extraer.

 Se puede hacer uso del carácter comodín asterisco “*”, el cual indica que queremos que la
consulta devuelva todos los campos que existen en la tabla

Ejemplo: Select *FROM Contactos.

WHERE
WHERE City=’Seattle’
Esta es la cláusula WHERE. Se compone de un operador (WHERE) seguido de un identificador
(Ciudad=’Seattle’).
Nota: A diferencia de las cláusulas SELECT y FROM, la cláusula WHERE no es un elemento obligatorio
en una instrucción SELECT.
La cláusula WHERE
La cláusula WHERE es la instrucción que nos permite filtrar el resultado de una sentencia SELECT.
Habitualmente no deseamos obtener toda la información existente en la tabla, sino que queremos
obtener sólo la información que nos resulte útil es ese momento. La cláusula WHERE filtra los datos
antes de ser devueltos por la consulta.

En el siguiente ejemplo, si queremos consultar un coche en concreto debemos agregar una cláusula
WHERE. Esta cláusula especifica una o varias condiciones que deben cumplirse para que la sentencia
SELECT devuelva los datos. Por ejemplo, para que la consulta devuelva sólo los datos del coche con
matrícula M-1525-ZA debemos ejecutar la siguiente sentencia:

SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM tCoches
WHERE matricula = ‘M-1525-ZA’;

Cuando en una cláusula where queremos incluir un tipo texto, debemos incluir el valor entre comillas
simples.

11
Además, podemos utilizar tantas condiciones como queramos, utilizando los operadores lógicos AND
y OR. El siguiente ejemplo muestra una consulta que devolverá los coches cuyas matriculas sean
M-1525-ZA o bien M-2566-AA.

SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM tCoches
WHERE matricula = ‘M-1525-ZA’;
OR matricula = 'M-2566-AA’;

Además, una condición WHERE puede ser negada a través del operador lógico NOT. La siguiente
consulta devolverá todos los datos de la tabla tCohes excepto el que tenga matrícula M-1525-ZA.
SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM tCoches
WHERE NOT matricula = ‘M-1525-ZA’;

Podemos también obtener las diferentes marcas y modelos de coches ejecutando la consulta.

SELECT DISTINCT marca,


modelo
FROM tCoches;

En el caso anterior la palabra clave DISTINCT indica que sólo queremos os valores distintos del par
formado por los campos marca y modelo.

ORDER BY
ORDER BY Company DESC, [E-mail Address]
Nota: De forma predeterminada, Access ordena los valores en orden ascendente ASC (A-Z, de menor a
mayor). Use la palabra clave DESC para ordenar los valores en orden descendente en su lugar.

12
La cláusula ORDER BY
Como ya hemos visto en los ejemplos anteriores podemos especificar el orden en el que serán
devueltos los datos a través de la cláusula ORDER BY.

SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM tCoches
ORDER BY marca ASC,modelo DESC;

Como podemos ver en el ejemplo podemos especificar la ordenación ascendente o descendente a


través de las palabras clave ASC y DESC. La ordenación depende del tipo de datos que esté definido en
la columna, de forma que un campo numérico será ordenado como tal, y un alfanumérico se ordenará
de la A a la Z, aunque su contenido sea numérico.
También podemos especificar en la cláusula ORDER BY el índice numérico del campo dentro de la
sentencia SELECT para la ordenación, el siguiente ejemplo ordenaría los datos por el campo marca, ya
que aparece en segundo lugar dentro de la lista de campos que componen la SELECT.
SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM tCoches
ORDER BY 2;

GROUP BY y HAVING
GROUP BY Company
 Al usar funciones de agregado, normalmente debe crear también una cláusula GROUP BY.
 Una cláusula GROUP BY va inmediatamente después de la cláusula WHERE,
 o la cláusula FROM si no hay ninguna cláusula WHERE
La cláusula GROUP BY
La cláusula GROUP BY combina los registros con valores idénticos en un único registro. Para cada
registro se puede crear un valor agregado si se incluye una función SQL agregada, como por ejemplo
Sum o Count, en la instrucción SELECT

GROUP BY es opcional. Si se utiliza GROUP BY pero no existe una función SQL agregada en la instrucción
SELECT se obtiene el mismo resultado que con una consulta SELECT DISTINCT. Los valores Null en los
campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalúan en ninguna
de las funciones SQL agregadas.

13
Todos los campos de la lista de campos de SELECT deben incluirse en la cláusula GROUP BY o como
argumentos de una función SQL agregada.

SELECT marca, modelo, SUM(numero_kilometros)


FROM tCoches
GROUP BY marca, modelo

HAVING
SELECT COUNT ([E-mail Address]), Company
.
.
.
HAVING COUNT ([E-mail Address])>1
 Si quiere usar criterios para limitar los resultados, pero el campo al que quiere aplicar los criterios
se usa en una función de agregado, no puede usar una cláusula WHERE. En su lugar, use una
cláusula HAVING. Una cláusula HAVING funciona como una cláusula WHERE, pero se usa para
los datos agregados.
 Por ejemplo, suponga que usa la función COUNT (que devuelve un número de filas) con el
primer campo de la cláusula SELECT.
 Si quiere que la consulta restrinja los resultados según el valor de esa función COUNT, no puede
usar un criterio para ese campo en la cláusula WHERE. En su lugar, coloque los criterios en una
cláusula HAVING. Por ejemplo, si solo quiere que la consulta devuelva filas si hay más de una
dirección de correo electrónico asociada a la empresa, la cláusula HAVING podría ser similar a
la siguiente:

La cláusula HAVING
Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por
la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING. 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.

HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los registros se han
agrupado utilizando GROUP BY, HAVING determina cuáles de ellos se van a mostrar. HAVING permite
el uso de funciones agregadas.
SELECT marca, modelo, SUM(numero_kilometros)
FROM tCoches
WHERE marca <> 'BMW'
GROUP BY marca, modelo
HAVING SUM(numero_kilometros)>100000

En el ejemplo anterior, no se cuentan los datos para todas las marcas menos "BMW", una vez que se
han contado, se evalúa HAVING, y el conjunto de resultados devuelve solo aquellos modelos con más
de 100.000 km.

14
1.4 Operadores
Un operador es un símbolo que especifica una acción que se realiza en una o más expresiones.
Los operadores se pueden definir como combinaciones de caracteres que se utilizan tanto para realizar
asignaciones como comparaciones entre datos.
Los operadores se dividen en aritméticos, relacionales, lógicos, y concatenación.

OPERADORES ARITMÉTICOS
Los operadores aritméticos ejecutan operaciones matemáticas en dos expresiones de uno o más tipos
de datos. Se ejecutan desde la categoría de tipo de datos numéricos.

OPERADOR DE ASIGNACIÓN
El signo igual (=) es el único operador de asignación de Transact-SQL.

OPERADORES DE COMPARACIÓN
Los operadores de comparación prueban si dos expresiones son iguales. Los operadores de comparación
se pueden usar en todas las expresiones, excepto las expresiones de texto, ntext o tipos de datos de
imagen.

OPERADORES LÓGICOS
Los operadores lógicos prueban la verdad de alguna condición. Los operadores lógicos, como los
operadores de comparación, devuelven un tipo de datos booleanos con un valor VERDADERO, FALSO
o DESCONOCIDO.

15
PALABRAS CLAVE
Las palabras clave son identificadores con un significado especial para SQL, por lo que no pueden ser
utilizadas para otro propósito distinto al que han sido pensadas.
SQL dispone de muy pocas órdenes, pero de múltiples palabras clave, lo que le convierten en un
lenguaje sencillo, pero tremendamente potente para llevar a cabo su función.

1.5 Tipos de datos


En SQL Server, cada columna, variable local, expresión y parámetro tiene un tipo de datos relacionado.
Un tipo de dato es un atributo que especifica el tipo de información que pueden contener los campos
de una tabla: datos enteros, datos de caracteres, datos monetarios, datos de fecha y hora, cadenas
binarias, etc.
Dependiendo de cada gestor de bases de datos el nombre que se da a cada uno de estos tipos puede
variar. Básicamente tenemos los siguientes tipos de datos.
SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en
las tablas, los tipos de datos pueden ser numéricos (con o sin decimales), alfanuméricos, de fecha o
booleanos (si o no). Según el gestor de base de datos que estemos utilizando los tipos de datos varían,
pero se reducen
Básicamente a los expuestos anteriormente, aunque en la actualidad casi todos los gestores de bases
de datos soportan un nuevo tipo, el BLOB (Binary Large Object), que es un tipo de datos especial
destinado a almacenar archivos, imágenes ...
Dependiendo de cada gestor de bases de datos el nombre que se da a cada uno de estos tipos puede
variar. Básicamente tenemos los siguientes tipos de datos.

16
17
1.6 Funciones de agregado y escalares
El lenguaje SQL tiene funciones incorporadas para hacer cálculos sobre los datos. Las funciones se
pueden dividir en dos grupos (existen muchas más, que dependen del sistema de bases de datos que
se utilice):

Funciones agregadas SQL, devuelven un sólo valor, calculado con los valores de una columna.
AVG() - La media de los valores
COUNT() - El número de filas
MAX() - El valor más grande
MIN() - El valor más pequeño
SUM() - La suma de los valores
GROUP BY - Es una sentencia que va muy ligada a las funciones agregadas

Funciones escalares SQL, devuelven un sólo valor basándose en el valor de entrada.


UCASE() - Convierte un campo a mayúsculas
LCASE() - Convierte un campo a minúsculas
MID() - Extrae caracteres de un campo de texto
LEN() - Devuelve la longitud de un campo de texto
NOW() - Devuelve la hora y fecha actuales del sistema
FORMAT() - Da formato a un formato para mostrarlo

FUNCIONES DE AGREGADO
Una función de agregado realiza un cálculo en un conjunto de valores y devuelve un solo valor. Excepto
por COUNT, las funciones agregadas ignoran los valores nulos.
Las funciones de agregado a menudo se usan con la cláusula GROUP BY de la instrucción SELECT.
Las funciones de agregado se usan generalmente para obtener información desde varias tablas (Joins)
haciendo cálculos en base a un detalle, por ejemplo, poder calcular la cantidad de facturas o boletas
generadas por un empleado, el total de compras de un cliente, el promedio de monto de los documentos
de compra de los proveedores, etc.
Las funciones de agregado solo se pueden utilizar como expresiones en:
• La lista de selección de una instrucción SELECT (una subconsulta o una consulta externa).
• Cláusula HAVING

18
Para la explicación de las funciones, una de las tablas con las que vamos a trabajar es Productos:

ProductoID NombreProducto Descripción Precio Stock


1 Camiseta Camiseta negra simple de talla única 10 16
2 Pantalón Pantalón largo azul tipo chino 20 24
3 Gorra Gorra azul con el logo de los Yankees 15 32
Zapatillas de running de color blanco y
4 Zapatillas 35 13
verde

1. AVG()
La función AVG() devuelve la media de valores de una columna numérica.
SELECT AVG (nombreColumna) FROM nombreTabla;

La siguiente sentencia SQL devuelve la media del stock que hay en el almacén:
SELECT AVG (Stock) FROM Productos;

La siguiente sentencia muestra el NombreProducto y el Precio de los registros que tienen un Precio
por encima de la media:
SELECT NombreProducto, Precio FROM Productos
WHERE Precio > (SELECT AVG (Precio) FROM Productos);

2. COUNT()
La función COUNT() devuelve el número de filas que cumplen con un determinado criterio:

Número de valores en una columna (los valores NULL no se cuentan):


SELECT COUNT (nombreColumna) FROM nombreTabla;
Número de registros en una tabla

Número de registros en una tabla


SELECT COUNT(*) FROM Productos;

Número de valores distintos de una columna


SELECT COUNT (DISTINCT Precio) FROM Productos;

Vamos a emplear ahora la tabla Pedidos:


PedidoID ClienteID Factura
234 4 160
235 5 48
236 12 64
237 4 92

3. MAX()
La función MAX() devuelve el mayor valor de la columna seleccionada:
SELECT MAX (nombreColumna) FROM nombreTabla;

De la tabla productos vamos a seleccionar el producto más caro:


SELECT MAX (Precio) AS ProductoMasCaro FROM Productos;

19
4. MIN()
La función MIN() devuelve el menor valor de la columna seleccionada:
SELECT MIN (nombreColumna) FROM nombreTabla;

De la tabla productos vamos a seleccionar el producto más barato:


SELECT MIN (Precio) AS ProductoMasBarato FROM Productos;

5. SUM()
La función SUM() devuelve la suma de una columna numérica:
SELECT SUM (nombreColumna) FROM nombreTabla;

De la tabla productos vamos a coger el número total de productos en stock:


SELECT SUM (Stock) AS ProductosTotales FROM Productos;

OTROS EJEMPLOS:
AVG
Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una
consulta.
Su sintaxis es la siguiente:
AVG(<expr>)

En donde expr representa el campo que contiene los datos numéricos para los que se desea calcular la
media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La media calculada
por Avg es la media aritmética (la suma de los valores dividido por el número de valores). La función
Avg no incluye ningún campo Null en el cálculo.
SELECT marca, modelo, AVG(numero_kilometros)
FROM tCoches
GROUP BY marca, modelo

Count
Calcula el número de registros devueltos por una consulta.
Su sintaxis es la siguiente:
COUNT(<expr>)

En donde expr contiene el nombre del campo que desea contar. Los operandos de expr pueden
incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca
o definida por el usuario, pero no otras de las funciones agregadas de SQL). Puede contar cualquier
tipo de datos incluso texto.
Aunque expr puede realizar un cálculo sobre un campo, Count simplemente cuenta el número de
registros sin tener en cuenta qué valores se almacenan en los registros. La función Count no cuenta
los registros que tienen campos null a menos que expr sea el carácter comodín asterisco (*). Si utiliza
un asterisco, Count calcula el número total de registros, incluyendo aquellos que contienen campos
null. Count(*) es considerablemente más rápida que Count(Campo). No se debe poner el asterisco
entre dobles comillas ('*').
SELECT COUNT(*) FROM tCoches;
SELECT marca, COUNT(modelo)

20
FROM tCoches
GROUP BY marca;
SELECT marca, COUNT (DISTINCT modelo)
FROM tCoches
GROUP BY marca;

Max, Min
Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de
una consulta.
Su sintaxis es:
MIN(<expr>)
MAX(<expr>)

En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre de
un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el
usuario, pero no otras de las funciones agregadas de SQL).
SELECT marca, modelo, MIN(numero_kilometros )
, MAX(numero_kilometros)
FROM tCoches
GROUP BY marca, modelo

Sum
Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta.
Su sintaxis es:
SUM(<expr>)

En donde expr representa el nombre del campo que contiene los datos que desean sumarse o una
expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden
incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca
o definida por el usuario, pero no otras de las funciones agregadas de SQL).
SELECT marca, modelo, SUM(numero_kilometros)
FROM tCoches
GROUP BY marca, modelo

USO DE FUNCIONES DE AGREGADO (ejemplos)


— El promedio de Precios de los productos
Select AVG(Precio/unitario) As Promedio
from Productos

— El Precio más bajo de los productos


Select Min(Precio/unitario) As Precio menor
from Productos
— Cantidad de Productos en Stock
Select Sum(Prod_Stock) As Productos en Stock
from Productos

21
— Cantidad de Productos
Select Count (*) As Cantidad de Productos
from Productos

— Monto total vendido en el año 1997 y la cantidad de órdenes


Select Sum(Monto) As Monto total, COUNT(id_Orden) As Cantidad
from Orden
Where año= 1997

— El Precio más alto de los productos


Select Max (Precio/unitario As Precio mayor
from Productos
— Stock más alto y más bajo de productos
Select Max(Prod_stock) As Stoxk_alto,
Min(Prod_stock) As Stock_bajo
from Productos

— Cantidad de órdenes generadas y monto total vendido del Empleado con código 3
Select Count (id_orden) As Cantidad de órdenes, SUM(Monto) As Monto Total
from Orden
Where id_empleado= 3

FUNCIONES ESCALARES
Si tenemos las tablas Productos, Pedidos y Clientes:
Productos:

ProductoID NombreProducto Descripción Precio Stock


1 Camiseta Camiseta negra simple de talla única 10 16
2 Pantalón Pantalón largo azul tipo chino 20 24
3 Gorra Gorra azul logo de los Yankees 15 32
4 Zapatillas Zapatillas de running de color blanco 35 13

Pedidos:

PedidoID ClienteID Factura


234 4 160
235 5 48
236 12 64
237 4 92

Clientes:
ClienteID NombreCliente Contacto
1 Lorena Higgins 456443552
2 Raúl González 445332221
3 Carmen Smith 488982635
4 Fernando Stewart 412436773

22
7. UCASE()
La función UCASE() convierte el valor de un campo a mayúsculas.
SELECT UCASE (nombreColumna) FROM nombreTabla;

Si queremos obtener todos los nombres de los clientes en mayúsculas:


SELECT UCASE (NombreCliente) AS Cliente FROM Clientes;

8. LCASE()
La función LCASE() convierte el valor de un campo en minúsculas:
SELECT LCASE (nombreColumna) FROM nombreTabla;

Si queremos obtener todos los nombres de los clientes en minúsculas:


SELECT LCASE (NombreCliente) FROM Clientes;

9. MID()
La función MID() se usa para extraer caracteres desde un campo de texto.
SELECT MID (nombreColumna, inicio [,longitud]) AS unAlias FROM nombreTabla;

Los campos obligatorios son nombreColumna e inicio (especifica la posición donde comenzar la
extracción). El campo opcional es longitud, que especifica el número de caracteres a devolver. Si se
omite, devuelve todos los caracteres hasta el final del texto.
Vamos a extraer por ejemplo los primeros cuatro caracteres de NombreProducto de la tabla Productos:
SELECT MID (nombreProducto, 1, 4) AS ProductoCorto
From Productos;

10. LEN()
La función LEN() devuelve la longitud de un campo de texto.
SELECT LEN (nombreColumna) FROM nombreTabla;

Si queremos obtener nombreProducto y la longitud de las descripciones de los productos de la tabla


Productos:
SELECT NombreProducto, LEN(Descripcion) as LongitudDescripcion
FROM Productos;

11. NOW()
La función NOW() devuelve la hora y fecha actuales.
SELECT NOW() FROM nombreTabla;

Si queremos devolver el nombreProducto y Precio de hoy de la tabla Productos:


SELECT NombreProducto, Precio, Now() AS PrecioProductosHoy FROM Productos;

12. FORMAT()
La función FORMAT() se usa para formatear cómo se mostrará un campo.
SELECT FORMAT (nombreColumna, formato) FROM nombreTabla;

Vamos a mostrar un formato de fecha del ejemplo anterior:


SELECT NombreProducto, Precio, FORMAT(Now(), 'YYYY-MM-DD') AS PrecioProductosHoy FROM
Productos;

23
EJERCICIOS PROPUESTOS PARA PRÁCTICA
Escribe la sentencia SELECT para realizar las siguientes acciones, has uso de los diferentes comandos,
operadores, cláusulas y funciones de agregado.

1. Obtener los nombres de los productos de la tienda.


2. Obtener los nombres y los precios de los productos de la tienda.
3. Obtener el nombre de los productos cuyo precio sea menor o igual a 200.
4. Obtener todos los datos de los artículos cuyo precio esté entre los 60 y 120 (ambas cantidades
incluidas).
5. Seleccionar el precio medio de todos los productos.
6. Obtener el precio medio de los artículos cuyo código de fabricante sea 2.
7. Obtener el número de artículos cuyo precio sea mayor o igual a 180.
8. Obtener el nombre y precio de los artículos cuyo precio sea mayor o igual a 180 y ordénalos
descendentemente por precio, y luego ascendentemente por nombre.
9. Obtener el precio medio de los productos de cada fabricante, mostrando sólo los códigos de
fabricante.}
10. Obtener el nombre y precio del artículo más barato.
11. Añadir un nuevo producto: Altavoces $70, del fabricante 2.
12. Cambiar el nombre del producto 8 a “Impresora Láser”
13. Aplicar un descuento del 10% a todos los productos.
14. Elimina el registro 4 de la tabla Artículos.
15. Elimina la tabla Artículos.

24
1. Obtener los apellidos de los empleados sin repeticiones.

2. Obtener todos los datos de los empleados que se apellidan “López” y los que se apellidan
“Pérez”.
3. Obtener el presupuesto total de todos los departamentos.

4. Obtener el número de empleados en cada departamento.

5. Reasignar a los empleados del departamento de investigación (código 77) al departamento de


informática (código 14).

6. Obtener todos los datos de los empleados que trabajan para el departamento 37 y para el
departamento 77.

7. Ordena la tabla empleados por el campo nombre de la Z – A.

8. Muestra el nombre de todos los empleados excepto los del departamento 10.

9. Obtener el total de empleados por departamento.

10. Despedir a todos los empleados.

25
Etapa 2
Consultas simples y Vistas
a través del uso de criterios
de selección

31
2.1 La sentencia SELECT
¿Cómo podemos seleccionar los datos que nos interesen dentro de una base de datos?
Para recuperar o seleccionar los datos, de una o varias tablas utilizarás la sentencia SELECT, que consta
de cuatro partes básicas:
• Cláusula SELECT seguida de la descripción de lo que se desea ver, es decir, de los nombres de las
• columnas que quieres que se muestren separadas por comas simples (" , "). Esta parte es
obligatoria.
• Cláusula FROM seguida del nombre de las tablas de las que proceden las columnas de arriba, es
decir, de dónde vas a extraer los datos. Esta parte también es obligatoria.
• Cláusula WHERE seguida de un criterio de selección o condición. Esta parte es opcional.
• Cláusula ORDER BY seguida por un criterio de ordenación. Esta parte también es opcional.

Por tanto, una primera sintaxis quedaría de la siguiente forma:


SELECT [ALL | DISTINCT ] columna1, columna2, ... FROM tabla1, tabla2, ... WHERE condición1,
condición2, ... ORDER BY ordenación;

Las cláusulas ALL y DISTINCT son opcionales:


 Si incluyes la cláusula ALL después de SELECT, indicarás que quieres seleccionar todas las filas
estén o no repetidas. Es el valor por defecto y no se suele especificar.
 Si incluyes la cláusula DISTINCT después de SELECT, se suprimirán aquellas filas del resultado
que tengan igual valor que otras.

Una sentencia select más completa sería:

SELECT [ALL | DISTINCT ]


<nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista>
[{,<nombre_tabla>|<nombre_vista>}]
[WHERE <condición> [{ AND|OR <condición>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condición>[{ AND|OR <condición>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
[{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]

32
Veamos por partes que quiere decir cada una de las partes que conforman la sentencia.

EJEMPLO: Para formular una consulta a la tabla tCoches y recuperar los campos matricula, marca,
modelo, color, numero_kilometros, num_plazas debemos ejecutar la siguiente consulta. Los datos
serán devueltos ordenados por marca y por modelo en orden ascendente, de menor a mayor.

SELECT matricula, marca, modelo, color, numero_kilometros, num_plazas


FROM tCoches
ORDER BY marca, modelo;
La palabra clave FROM indica que los datos serán recuperados de la tabla tCoches. Podríamos haber
especificado más de una tabla, pero esto se verá en el apartado de consultas combinadas.

También podríamos haber simplificado la consulta a través del uso del comodín de campos, el
asterisco "*".

SELECT *
FROM tCoches
ORDER BY marca, modelo;

El uso del asterisco indica que queremos que la consulta devuelva todos los campos que existen en la
tabla.

33
CLÁUSULA SELECT.

Ya has visto que a continuación de la sentencia SELECT debemos especificar cada una de las columnas
que queremos seleccionar. Además, debemos tener en cuenta lo siguiente:
 Se pueden nombrar a las columnas anteponiendo el nombre de la tabla de la que proceden, pero
esto es opcional y quedaría: NombreTabla.NombreColumna
 Si queremos incluir todas las columnas de una tabla podemos utilizar el comodín asterisco ("*").
Quedaría así: SELECT * FROM NombreTabla;
 También podemos ponerles alias a los nombres de las columnas. Cuando se consulta una base
de datos, los nombres de las columnas se usan como cabeceras de presentación. Si éste resulta
largo, corto o poco descriptivo, podemos usar un alias. Para ello a continuación del nombre de la
columna ponemos entre comillas dobles el alias que demos a esa columna.
 También podemos sustituir el nombre de las columnas por constantes, expresiones o funciones
SQL.
Un ejemplo:  SELECT 4*3/100 "MiExpresión", Password FROM USUARIOS;

Veamos un ejemplo:
SELECT F_Nacimiento "Fecha de Nacimiento" FROM USUARIOS;

2.2 Definición de Consultas SQL


Una consulta SQL es tipo de consulta a una base de datos empleando lenguaje SQL. Las consultas son
una forma de buscar y recopilar información de una o más tablas para conseguir información detallada
de una base de datos.
Para construir una consulta SQL debemos hacernos como mínimo tres preguntas:
1. ¿Qué datos nos están pidiendo? Ejemplo: el nombre y los apellidos de los empleados.
2. ¿Dónde están esos datos? Ejemplo: la tabla empleados.
3. ¿Qué requisitos deben cumplir los registros? Ejemplo: que el sueldo del empleado sea superior a 1350.

En general una consulta SQL simple tendrá la siguiente forma:


select CAMPOS (separados por comas)
from TABLA
where CONDICION
Sin embargo, una consulta SQL básica puede constar con un máximo de seis cláusulas, de las cuales sólo
dos son obligatorias (SELECT y FROM). Las cláusulas se especifican en el siguiente orden:
SELECT < lista de atributos >

FROM < lista de tablas >


WHERE < condición >
GROUP BY < atributo(s) de agrupación >
HAVING < condición de agrupación >
ORDER BY < lista de atributos >

34
En donde:

SELECT: indica qué atributos o funciones se van a recuperar.


FROM: especifica todas las relaciones (tablas) que se necesitan en la consulta.
WHERE: especifica las condiciones, si es que hacen falta, para seleccionar tablas de esas relaciones,
incluyendo las condiciones de reunión.
GROUP BY: especifica atributos de agrupación.
HAVING: especifica una condición que deben cumplir los grupos seleccionados, no las tablas individuales.
Las funciones agregadas integradas COUNT, SUM, MIN, MAX y AVG se usan junto con la
agrupación.
ORDER BY: especifica un orden para presentar el resultado de una consulta.

EJEMPLOS DE CONSULTAS SQL


Esta es la información contenida en la tabla Empleado.

Buscar los nombres y apellidos de los empleados que tienen un salario mayor a 4000.
SELECT nombre, apellido, salario
FROM empleado
WHERE empleado.salario > 4000;
En este caso los resultados mostrarían solo los nombres y apellidos siguientes:
Juan, Pérez, 5000
María, Casan, 6000

En el caso de que se omita completamente la cláusula WHERE, el resultado serían todos (nombre,
apellido, salario) contenidos en la tabla Empleado.
- Mostrar nombres, apellidos y salarios de los empleados, ordenados de quien gana más al que gana
menos
SELECT nombre, apellido, salario
FROM empleado
ORDER BY desc(salario)
En este caso los resultados mostrarían solo los nombres y apellidos siguientes:
María, Casan, 6000
Juan, Pérez, 5000
Mario, Jiménez, 3000
Susana, Malcon, 3000

35
- Mostrar cuánto gana en promedio un administrador
SELECT Avg(salario)
FROM empleado
WHERE puesto LIKE ‘administrador’
Resultado:
5500

- Mostrar cuánto gana en promedio cada puesto de trabajo que haya


SELECT puesto, Avg(salario)
FROM empleado
GROUP BY puesto
Resultado:
administrador, 5500
secretario, 3000
secretaria, 3000

2.2 Consultas Simples con SELECT


Como hemos visto, las instrucciones DML (Data Manipulation Language – Lenguaje de Manipulación de
Datos) trabajan sobre los datos almacenados en nuestro SGBD, permitiendo consultarlos o modificarlos.
Para realizar consultas sobre las tablas de las bases de datos disponemos de la instrucción SELECT. Con
ella podemos consultar una o varias tablas. Es sin duda el comando más versátil del lenguaje SQL.

Existen muchas cláusulas asociadas a la sentencia SELECT (GROUP BY, ORDER, HAVING, UNION).
También es una de las instrucciones en la que con más frecuencia los motores de bases de datos
incorporan cláusulas adicionales al estándar.
Vamos a comenzar viendo las Consultas Simples, basadas en una sola tabla.
El resultado de una consulta SELECT nos devuelve una tabla lógica. Es decir, los resultados son una
relación de datos, que tiene filas/registros, con una serie de campos/columnas. Igual que cualquier
tabla de la base de datos. Sin embargo, esta tabla está en memoria mientras la utilicemos, y luego se
descarta. Cada vez que ejecutamos la consulta se vuelve a calcular el resultado.

OPERADORES PARA DEFINIR LOS CRITERISO DE CONSULTA


CONDICIONES
Son expresiones lógicas a comprobar para la condición de filtro, que tras su resolución devuelven para
cada fila TRUE o FALSE, en función de que se cumplan o no. Se puede utilizar cualquier expresión lógica
y en ella utilizar diversos operadores como:
• > (Mayor)
• >= (Mayor o igual)
• < (Menor)
• <= (Menor o igual)

36
• = (Igual)
• <> o != (Distinto)
• IS [NOT] NULL (para comprobar si el valor de una columna es o no es nula, es decir, si
contiene o no contiene algún valor)
Se dice que una columna de una fila es NULL si está completamente vacía. Hay que tener en cuenta
que, si se ha introducido cualquier dato, incluso en un campo alfanumérico si se introduce una cadena
en blanco o un cero en un campo numérico, deja de ser NULL.
• LIKE
Es un tipo de operador lógico que se usa para poder determinar si una cadena de caracteres
específica coincide con un patrón específico. Se utiliza normalmente en una sentencia Where
para buscar un patrón específico de una columna.
Este operador se aplica a datos de tipo cadena y se usa para buscar registros, es capaz de hallar
coincidencias dentro de una cadena bajo un patrón dado.

El patrón puede ser una combinación de caracteres regulares al igual que caracteres de comodín
Para poder devolver una fila, los caracteres normales se deben hacer coincidir exactamente con los
caracteres especificados en la cadena de caracteres. Los caracteres comodines pueden combinarse
con partes arbitrarias de la cadena de caracteres.

USO DE CARACTERES COMODINES CON LIKE


% (representa cero, uno o varios caracteres), lo que significa que en su lugar puede ir cualquier cadena
de caracteres
El nombre empieza por A: Nombre LIKE ‘A%’
El nombre acaba por A: Nombre LIKE ‘%A’
El nombre contiene la letra A: Nombre LIKE ‘%A%’
SELECT FirstName, LastName
FROM Person
WHERE LastName LIKE '%ssa%'
ORDER BY LastName;

“_” (representa un solo carácter), lo que significa cualquier carácter individual


El nombre empieza por A y después contiene un solo carácter cualquiera: Nombre LIKE ‘A_’
El nombre empieza una A, después cualquier carácter, luego una E y al final cualquier cadena de
caracteres: Nombre LIKE ‘A_E%’
SELECT FirstName, MiddleName
FROM Person
WHERE LastName LIKE '_en';

37
[ ] (cualquier carácter individual dentro del rango especificado [a-t] o en conjunto [abc])
Nombre comienza con el rango [a-f]
SELECT BusinessEntityID, FirstName, LastName
FROM Person
WHERE FirstName LIKE '[a-c]%';

[^] reemplaza cualquier caracter NO presente en el conjunto especificado dentro de los corchetes.
Seleccionar los libros cuya Editorial NO comienza con las letras “P” ni “N”
select título, autor, editorial
from libros
where editorial like ‘[^PN]%’;

BETWEEN: Se utiliza en la cláusula WHERE para seleccionar valores entre un rango de datos. Se
específica límite inferior y superior de la lista.
Clientes entre el 30 y el 100: CodCliente BETWEEN 30 AND 100
Clientes nacidos entre 1970 y 1979: FechaNac BETWEEN ‘19700101’ AND ‘19791231’
Si el código postal está entre 98101 y 98199

SELECT PostalCode Between 98101 And 98199
FROM Publishers

38
IN para especificar una relación de valores concretos. Devuelve aquellos registros cuyo campo indicado
coincide con alguno de los de la lista.
Ventas de los Clientes 10, 15, 30 y 75
SELECT CodCliente
FROM Cliente W h e r e
CodCliente IN (10, 15, 30, 75)

IS NULL/IS NOT NULL (nulo) es un marcador especial usado en el lenguaje de consulta estructurado
(SQL) para indicar que no existe un valor dentro de una base de datos.
El valor NULL representa a un valor desconocido.
Este valor NULL puede ser asignado como valor a cualquier columna de una tabla.
Selecciona los clientes que no tienen registrado un Apellido2
SELECT * FROM clientes
WHERE apellido2 IS NULL
Selecciona los clientes que tienen registrado un Apellido2
SELECT * FROM clientes
WHERE apellido2 IS NOT NULL

2.3 Vistas
En el modelo de datos relacional la forma de guardar la información no es la mejor para ver los datos
Una vista es una consulta, que refleja el contenido de una o más tablas, desde la que se puede acceder
a los datos como si fuera una tabla.
Dos son las principales razones por las que podemos crear vistas.
• Seguridad, nos pueden interesar que los usuarios tengan acceso a una parte de la información
que hay en una tabla, pero no a toda la tabla.
• Comodidad, como hemos dicho el modelo relacional no es el más cómodo para visualizar los
datos, lo que nos puede llevar a tener que escribir complejas sentencias SQL, tener una vista
nos simplifica esta tarea.
Las vistas no tienen una copia física de los datos, son consultas a los datos que hay en las tablas, por lo
que, si actualizamos los datos de una vista, estamos actualizando realmente la tabla, y si actualizamos
la tabla estos cambios serán visibles desde la vista.
Nota: No siempre podremos actualizar los datos de una vista, dependerá de la complejidad de la misma
(dependerá de si el conjunto de resultados tiene acceso a la clave principal de la tabla o no), y del
gestor de base de datos. No todos los gestores de bases de datos permiten actualizar vistas, ORACLE,
por ejemplo, no lo permite, mientras que SQL Server sí.
Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una tabla virtual
que almacena una consulta. Los datos accesibles a través de la vista no están almacenados en la base
de datos como un objeto.

39
Entonces, una vista almacena una consulta como un objeto para utilizarse posteriormente. Las tablas
consultadas en una vista se llaman tablas base.
Las vistas permiten:
 Ocultar información: permitiendo el acceso a algunos datos y manteniendo oculto el resto de la
información que no se incluye en la vista. El usuario opera con los datos de una vista como si se
tratara de una tabla, pudiendo modificar tales datos.
 Simplificar la administración de los permisos de usuario: se pueden dar al usuario permisos para
que solamente pueda acceder a los datos a través de vistas, en lugar de concederle permisos para
acceder a ciertos campos, así se protegen las tablas base de cambios en su estructura.

 Mejorar el rendimiento: se puede evitar tipear instrucciones repetidamente almacenando en una


vista el resultado de una consulta compleja que incluya información de varias tablas.
Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una unión de varias
tablas; una combinación de varias tablas; un resumen estadístico de una tabla; un subconjunto de otra
vista, combinación de vistas y tablas.
Una vista se define usando un "select".
La sintaxis básica parcial para crear una vista es la siguiente:
create view NOMBREVISTA
as
SENTENCIASSELECT
from TABLA;

El contenido de una vista se muestra con un "select":


select *from NOMBREVISTA;

Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y
apellidos del cliente en lugar de su código.

CREATE VIEW vAlquileres


AS
(
SELECT nombre,
apellidos,
matricula
FROM tAlquileres,
tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
)

40
Si queremos, modificar la definición de nuestra vista podemos utilizar la sentencia ALTER VIEW. En
este caso queremos añadir los campos fx_alquiler y fx_devolucion a la vista.
CREATE VIEW vAlquileres
AS
(
SELECT nombre,
apellidos,
matricula
fx_alquiler,
fx_devolucion
FROM tAlquileres,
tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
)

Por último, podemos eliminar la vista a través de la sentencia DROP VIEW. Para eliminar la vista que
hemos creado anteriormente se utilizaría:
DROP VIEW vAlquileres;
Una vista se consulta como si fuese una tabla.
En el siguiente ejemplo creamos la vista “vista_empleados”
Create view vista_empleados
as
select (apellido+’ ‘+ nombre) as datos_personales
from empleados
Los nombres para vistas deben seguir las mismas reglas que cualquier identificador. Para distinguir
una tabla de una vista podemos fijar una convención para darle nombres, por ejemplo, colocar el sufijo
“vista” y luego el nombre de las tablas consultadas en ellas.
Los campos y expresiones de la consulta que define una vista DEBEN tener un nombre. Se debe colocar
nombre de campo cuando es un campo calculado o si hay 2 campos con el mismo nombre. Note que,
en el ejemplo, al concatenar los campos “apellido” y “nombre” colocamos un alias; si no lo hubiésemos
hecho aparecería un mensaje de error porque dicha expresión DEBE tener un encabezado, SQL Server
no lo coloca por defecto.
Los nombres de los campos y expresiones de la consulta que define una vista DEBEN ser únicos (no
puede haber dos campos o encabezados con igual nombre).
Para ver la información contenida en la vista creada anteriormente escribimos:
select *from vista_empleados;

Podemos realizar consultas a una vista como si se tratara de una tabla:


select sección, count (*) as cantidad
from vista_empleados;

41
Otra sintaxis es la siguiente:
create view NOMBREVISTA (NOMBRESDEENCABEZADOS)
as
SENTENCIASSELECT
from TABLA;

Creamos otra vista de "empleados" denominada "vista_empleados_ingreso" que almacena la cantidad


de empleados por año:

create view vista_empleados_ingreso (fecha,cantidad)


as
select año + ‘ ‘ + fecha_ingreso, count (*)
from empleados
group by fecha

La diferencia es que se colocan entre paréntesis los encabezados de las columnas que aparecerán en la
vista. Si no los colocamos y empleamos la sintaxis vista anteriormente, se emplean los nombres de los
campos o alias (que en este caso habría que agregar) colocados en el "select" que define la vista. Los
nombres que se colocan entre paréntesis deben ser tantos como los campos o expresiones que se
definen en la vista.

Las vistas se crean en la base de datos activa.

Al crear una vista, SQL Server verifica que existan las tablas a las que se hacen referencia en ella.

Se aconseja probar la sentencia "select" con la cual definiremos la vista antes de crearla para asegurarnos
que el resultado que retorna es el imaginado.

Existen algunas restricciones para el uso de "create view", a saber:


• no puede incluir las cláusulas “compute” ni “compute by” ni la palabra clave “into”;
• no se pueden crear vistas temporales ni crear vistas sobre tablas temporales.
• no se pueden asociar reglas ni valores por defecto a las vistas.
• no puede combinarse con otras instrucciones en un mismo lote.
• Se pueden construir vistas sobre otras vistas.

MODIFICAR DATOS MEDIANTE UNA VISTA


Para modificar los datos de la tabla mediante una vista:

1. En el Explorador de objetos, expanda la base de datos que contiene la vista y, a continuación, expanda
Vistas.
2. Haga clic con el botón derecho en la vista y seleccione Editar las primeras 200 filas.
3. Quizás necesite modificar la instrucción SELECT en el panel SQL para devolver
las filas que se modificarán.
4. En el panel de Resultados, busque la fila que se va a cambiar o eliminar. Para eliminar la fila, haga clic
con el botón derecho en ella y seleccione Eliminar. Para cambiar los datos de una o más columnas,
modifique los datos de la columna.

42
IMPORTANTE: No se puede eliminar una fila si la vista hace referencia a más de una tabla base. Solo
pueden actualizarse las columnas que pertenecen a una única tabla base.

5. Para insertar una fila, desplácese hasta el final de las filas e inserte los nuevos valores.
IMPORTANTE: No se puede insertar una fila si la vista hace referencia a más de una tabla base.

PARA ACTUALIZAR LOS DATOS DE LA TABLA MEDIANTE UNA VISTA


1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
2. En la barra de Estándar, haga clic en Nueva consulta.
3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. Este ejemplo
cambia el valor de las columnas StartDate y EndDate de un empleado concreto mediante referencias
a columnas de la vista HumanResources.vEmployeeDepartmentHistory. Esta vista devuelve valores
de dos tablas. Esta instrucción se realiza correctamente porque las columnas que se modificaron solo
provienen de una de las tablas base.
UPDATE HumanResources.vEmployeeDepartmentHistory
SET StartDate = ‘20110203’, EndDate = GETDATE()
WHERE LastName = N’Smith’ AND FirstName = ‘Samantha’;

CAMBIAR EL NOMBRE DE LAS VISTAS


Se Puede cambiar el nombre de una vista en SQL Server mediante SQL Server Management Studio o
Transact-SQL.
Advertencia
Si cambia el nombre de una vista, pueden producirse errores en el código y las aplicaciones que
dependen de la misma. Los elementos afectados pueden ser otras vistas, consultas, procedimientos
almacenados, funciones definidas por el usuario y aplicaciones cliente. Tenga en cuenta que estos
errores se producirán en cascada.

Uso de SQL Server Management Studio


Para cambiar el nombre de una vista
1. En el Explorador de objetos, expanda la base de datos que contiene la vista cuyo nombre desea
cambiar y, a continuación, expanda la carpeta Vista.
2. Haga clic con el botón derecho en la vista cuyo nombre quiere cambiar y seleccione Cambiar nombre.
3. Escriba el nuevo nombre de la vista.

43
Usar Transact-SQL
Para cambiar el nombre de una vista
1. Aunque puede usar sp_rename para cambiar el nombre de la vista, se recomienda eliminar la vista
existente y volver a crearla con el nuevo nombre.
2. Asegúrese de que todos los objetos, scripts y aplicaciones que hacen referencia al nombre antiguo de
la vista usan el nombre nuevo.

ELIMINAR VISTAS
Puede eliminar (quitar) vistas de SQL Server mediante SQL Server Management Studio o Transact-
SQL.
• Cuando se quita una vista, la definición y otra información de la vista se elimina del catálogo del
sistema. También se eliminan todos los permisos de la vista.
• Las vistas de una tabla que se ha quitado mediante DROP TABLE se deben quitar explícitamente
con DROP VIEW.

Uso de SQL Server Management Studio


Para eliminar una vista de una base de datos
1. En el Explorador de objetos, expanda la base de datos que contiene la vista que desea eliminar y, a
continuación, expanda la carpeta Vistas.
2. Haga clic con el botón derecho en la vista que quiere eliminar y haga clic en Eliminar.
3. En el cuadro de diálogo Eliminar objeto, haga clic en Aceptar.
Importante
Haga clic en Mostrar dependencias en el cuadro de diálogo Eliminar objeto para abrir el cuadro de
diálogo Dependencias de_ nombrevista. Esto mostrará todos los objetos que dependen de la vista y
todos los objetos de los que depende la vista.

Usar Transact-SQL
Para eliminar una vista de una base de datos
1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
2. En la barra de Estándar, haga clic en Nueva consulta.
3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. El ejemplo
elimina la vista especificada.
IF OBJECT_ID (‘HumanResources.EmployeeHireDate’, ‘V’) IS NOT NULL
DROP VIEW HumanResources.EmployeeHireDate;

44
DROP VIEW (TRANSACT SQL)
Quita una o más vistas de la base de datos actual.
DROP WIEW Nombre_vista
Observaciones:
• Cuando se quita una vista, la definición y otra información de la vista se elimina del catálogo del
sistema. También se eliminan todos los permisos de la vista.
• Las vistas de una tabla que se ha quitado mediante DROP TABLE se deben quitar explícitamente con
DROP VIEW.
• Cuando se realiza una consulta a través de una vista, el Motor de base de datos se asegura de que
todos los objetos de base de datos a los que se hace referencia en la instrucción existen, que son
válidos en el contexto de la instrucción y que las instrucciones de modificación de datos no infringen
ninguna regla de integridad de los datos.

ALTER VIEW (TRANSACT –SQL)


Modifica una vista creada anteriormente.
Ejemplo:
En el siguiente ejemplo se crea una vista que contiene todos los empleados y sus fechas de contratación
denominada EmployeeHireDate. Se conceden permisos sobre la vista, pero los requisitos se han
cambiado para seleccionar los empleados que tienen fechas de contratación anteriores a una fecha
determinada. A continuación, se utiliza ALTER VIEW para reemplazar la vista.
CREATE VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person AS p
ON e.BusinessEntityID = p.BusinessEntityID ;

La vista debe cambiarse para que incluya solo a los empleados que se contrataron antes de 2002.
ALTER VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person AS p
ON e.BusinessEntityID = p.BusinessEntityID ;
WHERE HireDate < CONVERT(DATETIME,'20020101',101);

45
EJERCICIOS PROPUESTOS PARA PRÁCTICA
Escribe la sentencia SQL para realizar las siguientes CONSULTAS, has uso de los diferentes operadores
y caracteres comodines para definir los criterios de consulta.

1. Muestra el nombre de todos los alumnos. En el resultado de la consulta, la columna “Nombre” debe
aparecer con la etiqueta “Nombre y apellidos” (ALIAS DE COLUMNAS).
2. Cuenta los alumnos que son de Lorca, están en segundo curso de Bachillerato y tienen más de 10
faltas y muestra el resultado en una columna con el encabezado Alumnos_Lorca.
3. Obtén con una consulta todos los cursos que hay sin repeticiones (DISTINCT).
4. Muestra los datos de aquellos alumnos cuyo nombre empiece por la letra 'B'.
5. Muestra los datos de todos aquellos alumnos que están en 1o curso de E.S.O. Y tienen una letra 'U'
en la segunda posición del nombre.
6. Obtén los datos de los alumnos cuya columna “Faltas” es nula.
7. Muestra los datos de aquellos alumnos que tienen entre 10 y 20 faltas (BETWEEN). Ordena el
resultado por nombre.
8. Muestra los datos de los alumnos cuya fecha de nacimiento comprenda los años 1993 y 1994. Ordena
el resultado por nombre.
9. Obtén los datos de aquellos alumnos que sean de tercer o cuarto curso y sean de Murcia. Utiliza el
operador IN.
10. Con una consulta obtén el nombre de cada alumno en mayúscula cuya localidad sea Murcia.
12. Con una consulta concatena el nombre de cada alumno y la localidad y muestra el resultado en una
columna con el encabezado Nombre_completo.
13. Obtén el total de alumnos que están en los niveles ESO y BACHILLER y muestra el resultado en las
columnas Nivel y Total_alumnos.
14. Obtén los datos de los alumnos cuyo nombre empiece por la letra 'J', que tengan más de 10 faltas y
no sean de Bachiller.
15. Con una consulta obtén los alumnos que son de Murcia y cuyo nombre termina con una letra 'O'.

46
EJERCICIOS PROPUESTOS PARA PRÁCTICA
Escribe la sentencia SQL para generar las siguientes VISTAS, has uso de los diferentes operadores y
caracteres comodines para definir los criterios de búsqueda.

1. Crea una vista para mostrar los datos de los empleados que tengan un salario mayor a 3000 y que ʻ
pertenezcan al departamento número 10.
2. Crea una vista para mostrar la cantidad de empleados que pertenecen a cada uno de los diferentes
oficios, despliega el resultado en las columnas Oficio y Total_empleados.
3. Crea un avista para seleccionar el apellido, salario y localidad donde trabajan de los empleados que
tienen un salario entre 200000 y 300000.
4. Crea una vista para mostrar el apellido, salario y número de departamento de los empleados que
tengan como oficio ANALISTA y que no tengan comisión.
5. Crea una vista para mostrar los datos de los empleados que trabajan en el departamento de
contabilidad (considerar el número de departamento), ordénalos por apellidos.
6. Crea una vista para calcular el salario medio de todos los empleados, muestra el resultado en una
columna con el encabezado Promedio_salario.
7. Crea una vista para obtener el salario máximo salario de los empleados del departamento 10, muestra
el resultado en la columna con el encabezado Salario_máximo.

47
8. Crea una vista para calcular el salario mínimo de los empleados del departamento 'VENTAS' (considera
el número de departamento), muestra el resultado en la columna con el nombre Salario_mínimo.
9. Crea una vista para mostrar los datos de los empleados cuyo salario sea mayor que la media de todos
los salarios.
10. Crea una vista para calcular cuántos empleados hay en el departamento número 10, muestra el
resultado en la columna con el encabezado Total_depto10.
11. Crea una vista para seleccionar el apellido del empleado que tiene máximo salario.
12. Crea una vista para que a partir de la tabla EMPLE visualizar cuántos apellidos de los empleados
empiezan por la letra A'.
13. Crea una vista que dada la tabla EMPLE, obtenga el sueldo medio, el número de comisiones no
nulas, el máximo sueldo y el sueldo mínimo de los empleados del departamento 30.
14. Elimina la vista creada en el punto anterior.
15. Elimina las vistas 9 y 10 en una sola sentencia.

48
Etapa 3
Consultas Multitabla

49
3.1 Consultas Combinadas JOIN
Recuerda que una de las propiedades de las bases de datos relacionales es permitir distribuir la
información en varias tablas que a su vez estén relacionadas por algún campo común. Así evitábamos
repetir datos. Por tanto, también será frecuente que tengamos que consultar datos que se encuentren
distribuidos por distintas tablas.
Es habitual que queramos acceder a datos que se encuentran en más de una tabla y mostrar información
mezclada de todas ellas como resultado de una consulta. Para ello tendremos que hacer combinaciones
de columnas de tablas diferentes.
Las combinaciones permiten recuperar datos de dos o más tablas según las relaciones lógicas entre
ellas. Las combinaciones indican cómo debe usar SQL Server los datos de una tabla para seleccionar las
filas de otra tabla.
En SQL es posible hacer esto especificando más de una tabla en la cláusula FROM de la instrucción
SELECT.
Una condición de combinación define la forma en la que dos tablas se relacionan en una consulta al:
• Especificar la columna de cada tabla que debe usarse para la combinación. Una condición de
combinación típica especifica una clave externa de una tabla y su clave asociada en otra tabla.
• Especificar un operador lógico (por ejemplo, = o <>,) para usarlo en los valores de comparación
de las columnas.
Las consultas combinadas pueden ser de tres tipos:

• Combinación interna (INNER)


• Combinación externa(OUTER)
Las vinculaciones entre tablas se realizan mediante la cláusula INNER que combina registros de dos
tablas siempre que haya concordancia de valores en un campo común.
Su sintaxis es:
SELECT campos FROM tb1 INNER JOIN tb2 ON
tb1.campo1 comp tb2.campo2

En donde:
tb1, tb2 Son los nombres de las tablas desde las que se combinan los registros.
Son los nombres de los campos que se combinan. Si no son numéricos, los
campo1,
campos deben ser del mismo tipo de datos y contener el mismo tipo de
campo2
datos, pero no tienen que tener el mismo nombre.
comp Es cualquier operador de comparación relacional: =, <,<>, <=, =>, ó >.

50
OPERADOR DE UNIÓN – JOIN
La operación JOIN o combinación permite mostrar columnas de varias tablas como si se tratase de una
sola tabla, combinando entre sí los registros relacionados usando para ello claves externas.
La sentencia del “SQL JOIN” es uno de los componentes principales de la sentencia Select, que se utiliza
para extraer datos del “SQL Server”.
Las tablas relacionadas se especifican en la cláusula FROM, y además hay que hacer coincidir los valores
que relacionan las columnas de las tablas.
Hay que tener en cuenta que, si el nombre de una columna existe en más de una de las tablas
indicadas en la cláusula FROM, hay que poner, obligatoriamente, el nombre o alias de la tabla de la
que queremos obtener dicho valor. En caso contrario nos dará un error de ejecución, indicando que
hay un nombre ambiguo.
El operador UNION sirve para obtener a partir de dos tablas con las mismas columnas, una nueva tabla
con las filas de la primera y las filas de la segunda.

Los JOIN permiten retornar datos de columnas almacenadas en múltiples tablas relacionadas. Como las
relaciones son creadas a partir de un PRIMARY KEY (Llave primaria) y un FOREIGN KEY (Llave foránea)
esto quiere decir que existirán columnas repetidas en tablas relacionadas.

Otro aspecto que debemos tomar en cuenta es que podemos encontrar el mismo nombre de columna
en varias tablas por lo que es muy aconsejable el uso de alias.
Cuando definimos una condición JOIN necesitamos definir las columnas que uniremos o combinaremos,
el tipo de combinación y una condición de unión.

La instrucción de Join, como su nombre indica, se usa para enlazar los datos de dos tablas relacionadas
a través de algún campo en común (típicamente una “foreign key” o clave foránea) y así dar como
resultado filas que mezclan datos provenientes de las dos (o más) tablas sobre las que hemos hecho el
Join.
Los JOINS en SQL sirven para combinar filas de dos o más tablas basándose en un campo común entre
ellas, devolviendo por tanto datos de diferentes tablas. Un JOIN se produce cuando dos o más tablas
se juntan en una sentencia SQL.
El Join es sin duda una de las operaciones más importantes en SQL pero también una de las más
complicadas de entender.
Cuando trabajamos con bases de datos relacionales:
• Una tabla fuerte representa una entidad independiente, y una tabla débil representa una entidad
que depende de otra.
• Estas relaciones (dependencias entre tablas) consisten en columnas que tienen un mismo tipo
de dato.
Entonces, la cláusula JOIN nos permite asociar 2 o más tablas, en base a una columna que tengan en
común.

51
Existen diferentes tipos de joins en SQL. Los más importantes son los siguientes:
INNER JOIN: Devuelve todas las filas cuando hay al menos una coincidencia en ambas tablas.
LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas coincidentes de la tabla de la
derecha.
RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas coincidentes de la tabla de la
izquierda.
OUTER JOIN: Devuelve todas las filas de las dos tablas, la izquierda y la derecha. También se llama FULL
OUTER JOIN.

La siguiente imagen muestra cada uno de ellos de acuerdo a su relación:

3.2 INNER JOIN


El primer tipo de JOIN que debes conocer es el INNER (interno) es el tipo de JOIN más común y el que
probablemente más utilizarás.
Con un buen dominio de este JOIN podrás realizar consultas complejas de datos entre tablas relacionadas
con suma facilidad.
Es el join de “toda la vida”. El join por defecto que se aplica cuando no indicamos otra cosa al hacer la
consulta. Devuelve sólo aquellas filas donde haya un “match”, es decir, las filas donde el valor del campo
de la tabla A que se utiliza para hacer que el join coincida con el valor del campo correspondiente en la
tabla B.
El JOIN de tipo INNER se puede realizar de dos formas diferentes con mismos resultados:
• Especificando la cláusula y sus componentes en la cláusula FROM
• Relacionando columnas directamente en el WHERE.

52
INNER JOIN selecciona todas las filas de las dos columnas siempre y cuando haya una coincidencia entre
las columnas en ambas tablas.
Sintaxis:
SELECT nombreColumna(s)
FROM tabla1
INNER JOIN tabla2
ON tabla1.nombreColumna=table2.nombreColumna;

Vamos a verlo también con un ejemplo, mediante las tablas Clientes y Pedidos:
Clientes:

ClienteID NombreCliente Contacto


1 Marco Lambert 456443552
2 Lydia Roderic 445332221
3 Ebbe Therese 488982635
4 Sofie Mariona 412436773

Pedidos:

PedidoID ClienteID Factura


234 4 160
235 2 48
236 3 64
237 4 92

La siguiente sentencia SQL devolverá todos los clientes con pedidos:


SELECT Clientes.NombreCliente, Pedidos.PedidoID FROM Clientes
INNER JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Clientes.NombreCliente;

53
Si hay filas en Clientes que no tienen coincidencias en Pedidos, los Clientes no se mostrarán. La sentencia
anterior mostrará el siguiente resultado:

NombreCliente PedidoID
Ebbe Therese 236
Lydia Roderic 235
Sofie Mariona 234
Sofie Mariona 237

Sofie Mariona aparece dos veces ya que ha realizado dos pedidos. No aparece Marco Lambert, pues
no ha realizado ningún pedido.

INNER JOIN EN LA PRÁCTICA

Ejemplo: Empleados y Departamentos


Primero, empecemos definiendo 2 tablas, que serán la base para nuestros ejemplos posteriores.
Por un lado, vamos a tener una tabla Empleados (que almacenará una lista de empleados y el id del
departamento al que pertenecen):

Nombre DepartamentoId
Rafferty 31
Jones 33
Heisenberg 33
Robinson 34
Smith 34
Williams NULL
Por otro lado, una tabla Departamentos (con la lista de departamentos que existen en la empresa).
Id Nombre
31 Sales
33 Engineering
34 Clerical
35 Marketing

Por ejemplo, si queremos listar a los empleados e indicar el nombre del departamento al que pertenecen,
podemos hacer lo siguiente:
SELECT *
FROM Empleados E
JOIN Departamentos D
ON E.DepartamentoId = D.Id

54
Con esto, nuestro resultado será:

Nombre DepartmentoId Id Nombre


Rafferty 31 31 Sales
Jones 33 33 Engineering
Heisenberg 33 33 Engineering
Robinson 34 34 Clerical
Smith 34 34 Clerical

Y a partir de aquí podemos definir lo siguiente:

• El empleado "Williams" no aparece en los resultados, ya que no pertenece a ningún departamento


existente.

• El departamento "Marketing" tampoco aparece, ya que ningún empleado pertenece a dicho


departamento.
¿Por qué ocurre esto?
• Porque JOIN muestra como resultado la intersección de ambas tablas.
• También hay que tener en cuenta que, en los resultados vemos 4 columnas. Las 2 primeras se
corresponden con la tabla Empleados y las últimas con Departamentos.
Esto ocurre porque estamos seleccionando todas las columnas con un *

3.3 OUTER JOIN (COMBINACIONES EXTERNAS)


¿Has pensado que puede que te interese seleccionar algunas filas de una tabla aunque éstas no
tengan correspondencia con las filas de la otra tabla? Esto puede ser necesario.
Las Combinaciones Externas nos permiten seleccionar las filas de una tabla, aunque estas no tengan
correspondencia con las filas de la otra tabla con la que se combinan.
Cuando se crea una combinación externa, el orden en que aparecen las tablas en la instrucción SQL
(el que se muestra en el panel SQL) es importante. La primera tabla que se agrega se convierte en la
tabla "de la izquierda", y la segunda en la "de la derecha". (El orden real en el que aparecen las tablas
en el panel Diagrama (es irrelevante).
Las combinaciones externas se realizan solamente entre 2 tablas.
Cuando se especifica una combinación externa izquierda o derecha, se hace referencia al orden en
el que se agregaron las tablas a la consulta y al orden en el que aparecen en la instrucción SQL en
el panel SQL.
Por lo tanto, si queremos saber qué registros de una tabla NO encuentran correspondencia en la otra,
es decir, no existe valor coincidente en la segunda, necesitamos el tipo de combinación, "OUTER JOIN"
(combinación externa).
Hay tres tipos de combinaciones externas:
• LEFT JOIN
• RIGHT JOIN
• FULL JOIN

55
Notas de uso
Siempre que sea posible, use la sintaxis OUTER JOIN de la cláusula FROM estándar en lugar del operador
(+) en la cláusula WHERE. Las consultas que contienen el operador (+) están sujetas a las siguientes
reglas:
Solo se puede usar el operador (+) en la cláusula WHERE, y solo en referencia a las columnas de tablas
o vistas.

La sintaxis general de las combinaciones externas es:

FROM Tabla1 [LEFT/RIGHT/FULL] [OUTER] JOIN Tabla2


ON Condiciones_Vinculos_Tablas

IMPORTANTE
En todas estas combinaciones externas el uso de la palabra OUTER es opcional. Si utilizamos LEFT,
RIGHT o FULL y la combinación de columnas, el sistema sobreentiende que estamos haciendo una
combinación externa.

3.4 LEFT JOIN


Se emplea una combinación externa izquierda (left join) para mostrar todos los registros de la tabla de
la izquierda. Si no encuentra coincidencia con la tabla de la derecha, el registro muestra los campos de
la segunda tabla seteados a "null".

LEFT JOIN mantiene todas las filas de la tabla izquierda (la tabla1). Las filas de la tabla derecha se
mostrarán si hay una coincidencia con las de la izquierda. Si existen valores en la tabla izquierda pero
no en la tabla derecha, ésta mostrará null.
Sintaxis:

SELECT nombreColumna(s)
FROM tabla1
LEFT JOIN tabla2
ON tabla1.nombreColumna=tabla2.nombreColumna;
La representación de LEFT JOIN en una imagen es:

56
Tomando de nuevo las tablas de Productos y Pedidos, ahora queremos mostrar todos los clientes, y
cualquier pedido que pudieran haber encargado:
SELECT Clientes.NombreCliente, Pedidos.PedidoID
FROM Clientes LEFT JOIN Pedidos
ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Clientes.NombreCliente;

La sentencia anterior devolverá lo siguiente:

NombreCliente PedidoID
Ebbe Therese 236
Lydia Roderic 235
Marco Lambert (null)
Sofie Mariona 234
Sofie Mariona 237

Ahora vemos que se muestran todas las filas de la tabla Clientes, que es la tabla de la izquierda, tantas
veces como haya coincidencias con el lado derecho. Marco Lambert no ha realizado ningún pedido, por
lo que se muestra null.

LEFT JOIN EN LA PRÁCTICA

1.Ejemplo de SQL LEFT JOIN

Tabla personas, con la clave primaria "per "


per nombre apellido1 apellido2 dep
1 ANTONIO PEREZ GOMEZ 1
2 ANTONIO GARCIA RODRIGUEZ 2
3 PEDRO RUIZ GONZALEZ 4

Tabla departamentos, con la clave primaria "dep"

dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 COMERCIAL

SELECT nombre, apellido1, departamento


FROM personas
LEFT JOIN departamentos
WHERE personas.dep = departamentos.dep

57
Devolverá:
nombre apellido1 departamento
ANTONIO PEREZ ADMINISTRACION
ANTONIO GARCIA INFORMATICA
PEDRO RUIZ

Aunque el departamento '4' de PEDRO RUIZ no existe en la tabla de departamentos, devolverá la fila
con esa columna 'departamento' en blanco.

2. Ejemplo LEFT JOIN


Clientes
IdCliente NombreCliente Dirección Telefono
1 Juan Calle Mayor 666111999
2 Pedro Calle de Arriba NULL
3 Lucas Avenida del Puerto 639936369

Pedidos
IdPedido FechaPedido IdCliente Precio
1 2011-01-11 2 2 10250
2 2011-01-11 2 2 3078,5
3 2011-01-11 1 1 NULL
4 2011-01-11 1 1 6042

Supongamos ahora que queremos obtener un listado de los clientes con datos de los pedidos que han
hecho, como la fecha o el precio.
Para ello usaremos el operador LEFT JOIN, que nos garantiza que todos los clientes aparecerán en
nuestro listado, independientemente de que hayan hecho o no pedidos.
SELECT C.IdCliente, C.NombreCliente, P.IdPedido, P.FechaPedido, P.Precio
FROM Clientes C LEFT JOIN Pedidos P
ON P.IdCliente = C.IdCliente

El resultado de la consulta es el siguiente:


IdCliente NombreCliente IdPedido FechaPedido Precio
1 Juan 3 2011-01-11 NULL
1 Juan 4 2011-01-11 6042
2 Pedro 1 2011-01-11 10250
3 Pedro 2 2011-01-11 3078,5
3 Lucas NULL NULL NULL

58
3.5 RIGHT JOIN
Right join es uno de los joins que se pueden implementar en un select.
Permite obtener información de dos tablas, pero siempre considerando que los registros resultantes
deben estar en la segunda, pudiendo regresar los que están en la primera tabla, o no.

Nota: En algunas bases de datos, RIGHT JOIN se denomina RIGHT OUTER JOIN.

RIGHT JOIN Ahora se mantienen todas las filas de la tabla derecha (tabla2). Las filas de la tabla izquierda
se mostrarán si hay una coincidencia con las de la derecha. Si existen valores en la tabla derecha pero
no en la tabla izquierda, ésta se mostrará null.
Sintaxis:

SELECT nombreColumna(s)
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.nombreColumna=tabla2.nombreColumna;
La imagen que representa a RIGHT JOIN es:

De nuevo tomamos el ejemplo de Clientes y Pedidos, y vamos a hacer el mismo ejemplo anterior, pero
cambiado LEFT por RIGHT:
SELECT Pedidos.PedidoID, Clientes.NombreCliente
FROM Clientes RIGHT JOIN Pedidos
ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Pedidos.PedidoID;

Ahora van a aparecer todos los pedidos, y los nombres de los clientes que han realizado un pedido. Se
ha cambiado también el orden, y se han ordenado los datos por PedidoID.
Nota: Para mostrar este resultado se están tomando como referencia las tablas del SUBTEMA 3.2
INNER JOIN

PedidoID NombreCliente
234 Sofie Mariona
235 Lydia Roderic
236 Ebbe Therese
237 Sofie Mariona

59
RIGHT JOIN EN LA PRÁCTICA
EJEMPLO SQL RIGHT JOIN

Tabla "PERSONAS", con la clave primaria "per"

per nombre apellido1 apellido2 dep


1 ANTONIO PEREZ GOMEZ 1
2 ANTONIO GARCIA RODRIGUEZ 2
3 PEDRO RUIZ GONZALEZ 4

Tabla "DEPARTAMENTOS", con la clave primaria "dep"

dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 COMERCIAL

SELECT nombre, apellido1, departamento


FROM personas
RIGHT JOIN departamentos
WHERE personas.dep = departamentos.dep

El resultado mostraría:

nombre apellido1 departamento


ANTONIO PEREZ ADMINISTRACION
ANTONIO GARCIA INFORMATICA
COMERCIAL

Aunque no exista ninguna persona del departamento 'COMERCIAL' (3), esta fila aparecerá con las otras
columnas en blanco

3.6 FULL JOIN


La palabra clave FULL OUTER JOIN o simplemente FULL JOIN se encarga de mostrar todas las filas de
ambas tablas, sin importar que no existan coincidencias (usará NULL como un valor por defecto para
dichos casos).
NOTA: FULL OUTER JOIN y FULL JOIN son lo mismo.
FULL JOIN devuelve todas las filas de la tabla izquierda (tabla1) y de la tabla derecha (tabla2). Combina
el resultado de los joins LEFT y RIGHT. Aparecerá null en cada una de las tablas alternativamente cuando
no haya una coincidencia.

60
Sintaxis:

SELECT nombreColumna(s)
FROM tabla1
OUTER JOIN tabla2
ON tabla1.nombreColumna=tabla2.nombreColumna;
La imagen que representa el FULL JOIN es la siguiente:

Vamos a obtener todas las filas de las tablas Clientes y Pedidos:


SELECT Clientes.NombreCliente, Pedidos.PedidoID
FROM Clientes OUTER JOIN Pedidos
ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Clientes.NombreCliente;
La sentencia devolverá todos los Clientes y todos los Pedidos, si un cliente no tiene pedidos mostrará
null en PedidoID, y si un pedido no tuviera un cliente mostraría null en NombreCliente (en este ejemplo
no sería lógico que un Pedido no tuviera un cliente).
Nota: Para mostrar este resultado se están tomando como referencia las tablas del SUBTEMA 3.2
INNER JOIN
FULL JOIN EN LA PRÁCTICA
1. EJEMPLO

61
Si aplicamos la siguiente sentencia:
SELECT
E.Nombre as ‘Empleado’,
D.Nombre as ‘Departamento’
FROM Empleados E
FULL JOIN Departamentos D
ON E.DepartamentoId = D.Id
Mostraría como resultado:
Se muestra el empleado "Williams" a pesar que no está asignado a ningún departamento, y se muestra
el departamento de "Marketing" a pesar que aún nadie está trabajando allí.

Empleado Departamento
Rafferty Sales
Jones Engineering
Heisenberg Engineering
Robinson Clerical
Smith Clerical
Williams NULL
NULL Marketing

2. EJEMPLO SQL FULL JOIN

Tabla "PERSONAS", con la clave primaria "per"


per nombre apellido1 apellido2 dep
1 ANTONIO PEREZ GOMEZ 1
2 ANTONIO GARCIA RODRIGUEZ 2
3 PEDRO RUIZ GONZALEZ 4

Tabla "DEPARTAMENTOS", con la clave primaria "dep"


dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 COMERCIAL

SELECT nombre, apellido1, departamento


FROM personas
FULL JOIN departamentos
WHERE personas.dep = departamentos.dep

62
El resultado mostraría:
nombre apellido1 departamento
ANTONIO PEREZ ADMINISTRACION
ANTONIO GARCIA INFORMATICA
PEDRO RUIZ COMERCIAL

3. Ejemplo FULL JOIN


tablas, ‘producto’ y ‘provincia’, con una serie de filas.

Obtener todas las filas de las tablas producto y provincias,


SELECT * FROM producto FULL JOIN origen
ON producto.id_producto = origen.id_producto;

63
Etapa 4
Procedimientos
Almacenados

64
4.1 Procedimientos Almacenados
Un procedimiento almacenado es un objeto de SQL Server que se almacena en una base de datos y
contiene instrucciones reutilizadas de Transact-SQL.
Los procedimientos almacenados se guardan en el servidor para mejorar el desempeño de las tareas
repetidas.
Los procedimientos se asemejan a las construcciones de otros lenguajes de programación, porque
pueden:
• Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al
programa que realiza la llamada.
• Contener instrucciones de programación que realicen operaciones en la base de datos. Entre
otras, pueden contener llamadas a otros procedimientos.
• Devolver un valor de estado a un programa que realiza una llamada para indicar si la operación
se ha realizado correctamente o se han producido errores, y el motivo de estos.
VENTAJAS DE USAR PROCEDIMIENTOS ALMACENADOS
En la siguiente lista se describen algunas de las ventajas que brinda el uso de procedimientos.
Tráfico de red reducido entre el cliente y el servidor
Los comandos de un procedimiento se ejecutan en un único lote de código. Esto puede reducir
significativamente el tráfico de red entre el servidor y el cliente porque únicamente se envía a través de
la red la llamada que va a ejecutar el procedimiento. Sin la encapsulación de código que proporciona un
procedimiento, cada una de las líneas de código tendría que enviarse a través de la red.
Mayor seguridad
Varios usuarios y programas cliente pueden realizar operaciones en los objetos de base de datos
subyacentes a través de un procedimiento, aunque los usuarios y los programas no tengan permisos
directos sobre esos objetos subyacentes. El procedimiento controla qué procesos y actividades se llevan
a cabo y protege los objetos de base de datos subyacentes. Esto elimina la necesidad de conceder
permisos en cada nivel de objetos y simplifica los niveles de seguridad.
La cláusula EXECUTE AS puede especificarse en la instrucción CREATE PROCEDURE para habilitar la
suplantación de otro usuario o para permitir que los usuarios o las aplicaciones puedan realizar ciertas
actividades en la base de datos sin necesidad de contar con permisos directos sobre los objetos y
comandos subyacentes.
Por ejemplo, algunas acciones como TRUNCATE TABLE no tienen permisos que se puedan conceder.
Para poder ejecutar TRUNCATE TABLE, el usuario debe tener permisos ALTER en la tabla especificada.
Puede que la concesión de permisos ALTER a un usuario en una tabla no sea lo ideal, pues en realidad
el usuario tendrá permisos muy superiores a la posibilidad de truncar una tabla. Si se incorpora la
instrucción TRUNCATE TABLE en un módulo y se especifica la ejecución del módulo como un usuario
con permisos para modificar la tabla, se pueden ampliar los permisos para truncar la tabla al usuario al
que se concedan permisos EXECUTE para el módulo.

65
Al llamar a un procedimiento a través de la red, solo está visible la llamada que va a ejecutar el
procedimiento. Por lo tanto, los usuarios malintencionados no pueden ver los nombres de los objetos de
base de datos y tabla, incrustados en sus propias instrucciones Transact-SQL , ni buscar datos críticos.
El uso de parámetros de procedimientos ayuda a protegerse contra ataques por inyección de código SQL.
Dado que la entrada de parámetros se trata como un valor literal y no como código ejecutable, resulta
más difícil para un atacante insertar un comando en la instrucción Transact-SQL del procedimiento y
comprometer la seguridad.
Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el código fuente. Para más información,
consulte SQL Server Encryption.
Reutilización del código
El código de cualquier operación de base de datos redundante resulta un candidato perfecto para la
encapsulación de procedimientos. De este modo, se elimina la necesidad de escribir de nuevo el mismo
código, se reducen las inconsistencias de código y se permite que cualquier usuario o aplicación que
cuente con los permisos necesarios pueda acceder al código y ejecutarlo.
Mantenimiento más sencillo
Cuando las aplicaciones cliente llaman a procedimientos y mantienen las operaciones de base de datos
en la capa de datos, solo deben actualizarse los cambios de los procesos en la base de datos subyacente.
El nivel de aplicación permanece independiente y no tiene que tener conocimiento sobre los cambios
realizados en los diseños, las relaciones o los procesos de la base de datos.
Rendimiento mejorado.
De forma predeterminada, un procedimiento se compila la primera vez que se ejecuta y crea un plan
de ejecución que vuelve a usarse en posteriores ejecuciones. Como el procesador de consultas no tiene
que crear un nuevo plan, normalmente necesita menos tiempo para procesar el procedimiento.
Si ha habido cambios importantes en las tablas o datos a los que se hace referencia en el procedimiento,
el plan pre compilado podría hacer que el procedimiento se ejecutara con mayor lentitud. En este caso,
volver a crear el procedimiento y forzar un nuevo plan de ejecución puede mejorar el rendimiento.
TIPOS DE PROCEDIMIENTOS ALMACENADOS
Definidos por el usuario
Un procedimiento definido por el usuario se puede crear en una base de datos definida por el usuario
o en todas las bases de datos del sistema excepto en la base de datos Resource. El procedimiento se
puede desarrollar en Transact-SQL o como una referencia a un método de Common Runtime Language
(CLR) de Microsoft .NET Framework.
Temporales
Los procedimientos temporales son una forma de procedimientos definidos por el usuario. Los
procedimientos temporales son iguales que los procedimientos permanentes salvo porque se almacenan
en tempdb. Hay dos tipos de procedimientos temporales: locales y globales. Se diferencian entre sí
por los nombres, la visibilidad y la disponibilidad. Los procedimientos temporales locales tienen como
primer carácter de sus nombres un solo signo de número (#); solo son visibles en la conexión actual del
usuario y se eliminan cuando se cierra la conexión. Los procedimientos temporales globales presentan
dos signos de número (##) antes del nombre; son visibles para cualquier usuario después de su creación
y se eliminan al final de la última sesión en la que se usa el procedimiento.

66
Sistema
Los procedimientos del sistema se incluyen con SQL Server. Están almacenados físicamente en la base
de datos interna y oculta Resource y se muestran de forma lógica en el esquema sys de cada base
de datos definida por el sistema y por el usuario. Además, la base de datos msdb también contiene
procedimientos almacenados del sistema en el esquema dbo que se usan para programar alertas y
trabajos. Dado que los procedimientos del sistema empiezan con el prefijo sp_ , le recomendamos
que no use este prefijo cuando asigne un nombre a los procedimientos definidos por el usuario. Para
obtener una lista completa de los procedimientos del sistema, vea Procedimientos almacenados del
sistema (Transact-SQL)
Extendidos definidos por el usuario
Los procedimientos extendidos le permiten crear sus propias rutinas externas en un lenguaje de
programación como puede ser C. Estos procedimientos son DLL que una instancia de SQL Server puede
cargar y ejecutar dinámicamente.

Nota
Los procedimientos almacenados extendidos se quitarán en una versión futura de SQL Server. No utilice
esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que
actualmente la utilizan. Cree en su lugar procedimientos CLR. Este método constituye una alternativa
más consolidada y segura para escribir procedimientos extendidos.

4.2 Crear un procedimiento almacenado


En este tema se describe cómo se crea un procedimiento almacenado de Transact-SQL mediante SQL
Server Management Studio y la instrucción CREATE PROCEDURE de Transact-SQL.

Permisos
Requiere el permiso CREATE PROCEDURE en la base de datos y el permiso ALTER en el esquema en el
que se va a crear el procedimiento.

Crear un procedimiento almacenado


Puede usar cualquiera de los siguientes medios:
• SQL Server Management Studio
• Transact-SQL

Uso de SQL Server Management Studio


Para crear un procedimiento en el Explorador de objetos
1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos y expándala.
2. Expanda Bases de datos, la base de datos AdventureWorks2012 (u otra base de datos de ejemplo)
y, por último, Programación.

67
3. Haga clic con el botón derecho en Procedimientos almacenados y, después, haga clic en Nuevo
procedimiento almacenado.
4. En el menú Consulta, haga clic en Especificar valores para parámetros de plantilla.
5. En el cuadro de diálogo Especificar valores para parámetros de plantilla, especifique los siguientes
valores para los parámetros mostrados.

Parámetro Value
Autor Su nombre.
Create Date La fecha de hoy.
Descripción Devuelve datos de empleado.
Procedure_name HumanResources.uspGetEmployeesTest
@Param1 @Lástrame
@Datatype_For_Param1 nvarchar(50)
Default_Value_For_Param1 NULL
@Param2 @FirstName
@Datatype_For_Param2 nvarchar(50)
Default_Value_For_Param2 NULL

6. Haga clic en OK.


7. En el Editor de consultas, reemplace la instrucción SELECT por la siguiente instrucción:
SELECT FirstName, LastName, Department
FROM HumanResources.vEmployeeDepartmentHistory
WHERE FirstName = @FirstName AND LastName = @LastName
AND EndDate IS NULL;

8. Para probar la sintaxis, en el menú Consulta, haga clic en Analizar. Si se devuelve un mensaje de
error, compare las instrucciones con la información anterior y corrija lo que sea necesario.
9. Para crear el procedimiento, en el menú Consulta, haga clic en Ejecutar. El procedimiento se crea
como un objeto de la base de datos.
10. Para ver el procedimiento que aparece en el Explorador de objetos, haga clic con el botón derecho
en Procedimientos almacenados y seleccione Actualizar.
11. Para ejecutar el procedimiento, en el Explorador de objetos, haga clic con el botón derecho en
el nombre del procedimiento almacenado HumanResources.uspGetEmployeesTest y seleccione
Ejecutar procedimiento almacenado.
12. En la ventana Ejecutar procedimiento, escriba Margheim como valor del parámetro @LastName y
Diane como valor del parámetro @FirstName.
Advertencia
Valide todos los datos proporcionados por el usuario. No concatene ninguna entrada de usuario antes
de validarla. No ejecute nunca un comando creado a partir de una entrada de usuario no validada.

68
Usar Transact-SQL
Para crear un procedimiento en el Editor de consultas
1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
2. En el menú Archivo, haga clic en Nueva consulta.
3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. En este ejemplo
se crea el mismo procedimiento almacenado que antes con otro nombre diferente.
USE AdventureWorks2012;
GO
CREATE PROCEDURE HumanResources.uspGetEmployeesTest2
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS
SET NOCOUNT ON;
SELECT FirstName, LastName, Department
FROM HumanResources.vEmployeeDepartmentHistory
WHERE FirstName = @FirstName AND LastName = @LastName
AND EndDate IS NULL;
GO

4. Para ejecutar el procedimiento se utiliza el comando EXEC o EXECUTE, copie y pegue el ejemplo
siguiente en una nueva ventana de consulta y haga clic en Ejecutar. Observe que se muestran
diferentes métodos para especificar los valores de parámetro.

EXECUTE HumanResources.uspGetEmployeesTest2 N’Ackerman’, N’Pilar’;



-- Or
EXEC HumanResources.uspGetEmployeesTest2 @LastName = N’Ackerman’,
@FirstName = N’Pilar’;
GO

-- Or
EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N’Pilar’,
@LastName = N’Ackerman’;
GO

69
4.3 Crear y ejecutar un procedimiento
almacenado (Create Procedure - Execute)
Para crear una PROCEDIMIENTO ALMACENADO se emplea la sentencia CREATE PROCEDURE
Permite abreviar la palabra clave reservada por PROC.
Los procedimientos almacenados pueden recibir y devolver información; para ello se emplean
parámetros, de entrada y salida, respectivamente.

Los parámetros de entrada posibilitan pasar información a un procedimiento.


Para que un procedimiento almacenado admita parámetros de entrada se deben declarar variables
como parámetros al crearlo.

La sintaxis es:
create proc NOMBREPROCEDIMIENTO
@NOMBREPARAMETRO TIPO =VALORPORDEFECTO
as SENTENCIAS;

Los parámetros se definen luego del nombre del procedimiento, comenzando el nombre con un signo
arroba (@). Los parámetros son locales al procedimiento, es decir, existen solamente dentro del mismo.
Pueden declararse varios parámetros por procedimiento, se separan por comas.

Cuando el procedimiento es ejecutado, deben explicitarse valores para cada uno de los parámetros (en
el orden que fueron definidos), a menos que se haya definido un valor por defecto, en tal caso, pueden
omitirse. Pueden ser de cualquier tipo de dato (excepto cursor).

Luego de definir un parámetro y su tipo, opcionalmente, se puede especificar un valor por defecto; tal
valor es el que asume el procedimiento al ser ejecutado si no recibe parámetros. Si no se coloca valor
por defecto, un procedimiento definido con parámetros no puede ejecutarse sin valores para ellos. El
valor por defecto puede ser "null" o una constante, también puede incluir comodines si el procedimiento
emplea "like".

Cuando una aplicación o un usuario llama a un procedimiento (lo ejecuta), utiliza la palabra clave
EXECUTE o EXEC de Transact-SQL

Sintaxis:
EXECUTE nombre_procedimiento (parámetros)
o
EXEC nombre_procedimiento (parámetros)

70
1. Creamos un procedimiento que recibe el nombre de un autor como parámetro para mostrar todos
los libros del autor solicitado:

create procedure pa_libros_autor


@autor varchar (30)
as
select título, editorial, precio
from libros
where autor= @autor;

El procedimiento se ejecuta colocando “execute” (o “exec”) seguido del nombre del procedimiento y
un valor para el parámetro:

exec pa_libros_autor ‘Borges’;

2. Creamos un procedimiento que recibe 2 parámetros, el nombre de un autor y el de una editorial:

create procedure pa_libros_autor_editorial|


@autor varchar (30),
@editorial varchar (20)
As
select titulo, precio
from libros
where autor= @autor and
editorial=@editorial;

El procedimiento se ejecuta colocando “execute” (o “exec”) seguido del nombre del procedimiento y
los valores para los parámetros separados por comas:

exec pa_libros_autor_editorial ‘Richard Bach’,’Planeta’;

Los valores de un parámetro pueden pasarse al procedimiento mediante el nombre del parámetro o
por su posición. La sintaxis anterior ejecuta el procedimiento pasando valores a los parámetros por
posición.
También podemos emplear la otra sintaxis en la cual pasamos valores a los parámetros por su nombre:
exec pa_libros_autor_editorial @editorial=’Planeta’, @autor=’Richard Bach’;

Cuando pasamos valores con el nombre del parámetro, el orden en que se colocan puede alterarse.

NOTA: No podríamos ejecutar el procedimiento anterior sin valores para los parámetros. Si queremos
ejecutar un procedimiento que permita omitir los valores para los parámetros debemos, al crear el
procedimiento, definir valores por defecto para cada parámetro:

71
create procedure pa_libros_autor_editorial2
@autor varchar (30)=’Richard Bach’,
@editorial varchar (20)=’Planeta’
As
select titulo, , autor, editorial, precio
from libros
where autor= @autor and
editorial=@editorial;

Podemos ejecutar el procedimiento anterior sin enviarle valores, usará los predeterminados.

Si enviamos un solo parámetro a un procedimiento que tiene definido más de un parámetro sin especificar
a qué parámetro corresponde (valor por posición), asume que es el primero. Es decir, SQL Server asume
que los valores se dan en el orden que fueron definidos, no se puede interrumpir la secuencia.

Si queremos especificar solamente el segundo parámetro, debemos emplear la sintaxis de paso de


valores a parámetros por nombre:

exec pa_libros_autor_editorial2 @editorial='Paidos';

Podemos emplear patrones de búsqueda en la consulta que define el procedimiento almacenado y


utilizar comodines como valores por defecto:
create proc pa_libros_autor_editorial3
@autor varchar (30)=’%,
@editorial varchar (30)=’%’
As
select titulo, , autor, editorial, precio
from libros
where autor= @autor and
editorial=@editorial;

La sentencia siguiente ejecuta el procedimiento almacenado.

“pa_libros_autor_editorial3” enviando un valor por posición, se asume que es el primero.

exec pa_libros_autor_editorial3 ‘P%’;

La sentencia siguiente ejecuta el procedimiento almacenado “pa_libros_autor_editorial3” enviando un


valor para el segundo parámetro, para el primer parámetro toma el valor por defecto:

exec pa_libros_autor_editorial3 @editorial=’P%’;

También podríamos haber tipeado:

exec pa_libros_autor_editorial3 default, ‘P%’;

72
4.4 Modificar un procedimiento almacenado
(Alter procedure)
Los procedimientos almacenados pueden modificarse, por necesidad de los usuarios o por cambios en
la estructura de las tablas que referencia.
Un procedimiento almacenado existente puede modificarse con "alter procedure".
Sintaxis:
alter procedure NOMBREPROCEDIMIENTO
@PARAMETRO TIPO = VALORPREDETERMINADO
as SENTENCIAS;

Uso de SQL Server Management Studio


Para modificar un procedimiento en Management Studio
1. En el Explorador de objetos, conéctese a una instancia de Motor de base de datos y expándala.
2. Expanda Bases de datos, expanda la base de datos a la que pertenece el procedimiento y, a
continuación, expanda Programación.
3. Expanda Procedimientos almacenados, haga clic con el botón derecho en el procedimiento que
quiere modificar y luego haga clic en Modificar.
4. Modifique el texto del procedimiento almacenado.
5. Para probar la sintaxis, en el menú Consulta, haga clic en Analizar.
6. Para guardar las modificaciones en la definición de procedimiento, en el menú Consulta, haga clic en
Ejecutar.
7. Para guardar la definición de procedimiento actualizada como un script de Transact-SQL, en el menú
Archivo, haga clic en Guardar como. Acepte el nombre de archivo o reemplácelo por un nombre
nuevo y, a continuación, haga clic en Guardar.
Usar Transact-SQL
1. Modificamos el procedimiento almacenado "pa_libros_autor" para que muestre, además del título,
la editorial y precio:
alter procedure pa_libros_autor
@autor varchar (30)=null
as
if @autor is null
begin
select ‘Debe indicar un autor’
return
end
else
select titulo,editorial,precio
from libros
where autor = @autor;

73
4.5 Eliminar un procedimiento almacenado
(Drop procedure)
Los procedimientos almacenados se eliminan con "drop procedure".
Sintaxis:
drop procedure NOMBREPROCEDIMIENTO;
"drop procedure" puede abreviarse con "drop proc".
Se recomienda ejecutar el procedimiento almacenado del sistema "sp_depends" para ver si algún
objeto depende del procedimiento que deseamos eliminar.
Podemos eliminar una tabla de la cual dependa un procedimiento, SQL Server lo permite, pero luego,
al ejecutar el procedimiento, aparecerá un mensaje de error porque la tabla referenciada no existe.

Uso de SQL Server Management Studio


Para eliminar un procedimiento en el Explorador de objetos
1. En el Explorador de objetos, conéctese a una instancia de Motor de base de datos y expándala.
2. Expanda Bases de datos, expanda la base de datos a la que pertenece el procedimiento y, a
continuación, expanda Programación.
3. Expanda Procedimientos almacenados, haga clic con el botón derecho en el procedimiento que
quiera eliminar y, luego, haga clic en Eliminar.
4. Para ver los objetos que dependen del procedimiento, haga clic en Mostrar dependencias.
5. Confirme que haya seleccionado el procedimiento correcto y haga clic en Aceptar.
6. Quite las referencias al procedimiento de cualquier objeto y script dependientes.

Uso de Transact - SQL


1. Eliminamos el procedimiento almacenado llamado "pa_libros_autor":
drop procedure pa_libros_autor;
Si el procedimiento que queremos eliminar no existe, aparece un mensaje de error, para evitarlo,
podemos emplear esta sintaxis:
if object_id (‘NOMBREPROCEDIMIENTO’) is not null
drop procedure NOMBREPROCEDIMIENTO;

2. Eliminamos, si existe, el procedimiento “pa_libros_autor”, si no existe, mostramos un mensaje:


if object_id (‘pa_libros_autor’) is not null
drop procedure pa_libros_autor
else
select ‘No existe el procedimiento “pa_libros_autor”’;

74
3. Ingresemos el siguiente lote de comandos en el SQL Server Management Studio:
-- Eliminamos, si existe, el procedimiento almacenado “pa_crear_libros”:
if object_id(‘pa_crear_libros’) is not null
drop procedure pa_crear_libros;

-- Verificamos que no existe ejecutando “sp_help”:
exec sp_help pa_crear_libros;

go

-- Creamos el procedimiento:
create procedure pa_crear_libros
as
if object_id(‘libros’) is not null
drop table libros
create table libros(
codigo int identity,
titulo varchar(40),
autor varchar(30),
editorial varchar(20),
precio decimal(5,2),
cantidad smallint,
)
insert into libros values(‘Uno’,’Richard Bach’,’Planeta’,15,5)
insert into libros values(‘Ilusiones’,’Richard Bach’,’Planeta’,18,50)
insert into libros values(‘El aleph’,’Borges’,’Emece’,25,9)
insert into libros values(‘Aprenda PHP’,’Mario Molina’,’Nuevo siglo’,45,100)
insert into libros values(‘Matematica estas ahi’,’Paenza’,’Nuevo siglo’,12,50)
insert into libros values(‘Java en 10 minutos’,’Mario Molina’,’Paidos’,35,300);
go

-- Verificamos que existe:
exec sp_help pa_crear_libros;

-- Lo eliminamos sin corroborar su existencia:
drop proc pa_crear_libros;

-- Vemos si aparece en la lista de objetos que muestra “sp_help”:
exec sp_help pa_crear_libros;

-- Solicitamos su eliminación nuevamente (No existe, aparece un mensaje de error):
drop proc pa_crear_libros;

-- Solicitamos su eliminación verificando si existe, si no existe, mostramos un mensaje:
if object_id(‘pa_crear_libros’) is not null
drop proc pa_crear_libros
else
select ‘No existe el procedimiento “pa_crear_libros”’;

75
5. ANEXO
5.1 Ejercicios SQL resueltos

76
77
78
79
Fuentes de apoyo y consulta

Complementaria

1.- Hacking Ético 101 - Cómo hackear profesionalmente en 21 días o menos!: 2da Edición.
Revisada y Actualizada a Kali 2.0. (Español) Pasta blanda – 7 jul 2016por Karina Astudillo B
(Autor)
2.- Hacker's WhiteBook: Practical guide to becoming a profesional hacker from cero; Hacker’s
Books (Inglés) Pasta blanda – 30 mar 2019 por Pablo Gutierrez Salazar (Autor)
3.- Seguridad Informática (Español) Pasta blanda – 1 ene 2011por María Del Pilar Alegre Ramos
(Autor)
4.- Revista Hackers (Seguridad Informática) 1era edición, Medellín abril del 2018

Electrónica
https://diego.com.es/principales-funciones-en-sql
http://www.devjoker.com/contenidos/Tutorial-SQL-/14/Consultar-datos-SELECT.aspx
https://www.proinf.net/permalink/curso_de_sql_y_base_de_datos_relacional_2011
https://www.proinf.net/clases/SQL/sql2011/ejercs/ejercs_sql02.html
https://www.sitiolibre.com/curso/pdf/BD04.pdf
http://repositori.uji.es/xmlui/bitstream/handle/10234/7333/libSQL_v21.
pdf?sequence=1&isAllowed=y
http://dbadixit.com/right-join/
https://programacionymas.com/blog/como-funciona-inner-left-right-full-join
https://desarrolloweb.com/articulos/2355.php
https://docs.microsoft.com/es-es/sql/relational-databases/performance/joins?view=sql-server-
ver15
https://docs.microsoft.com/es-es/sql/relational-databases/views/modify-data-through-a-
view?view=sql-server-ver15

80
UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN
DIRECCIÓN DEL SISTEMA DE ESTUDIOS DEL NIVEL MEDIO SUPERIOR

Guía de Aprendizaje

BASE DE DATOS II

Autores:

M.E.S. Jaqueline Rubí Fuerte Navarro

81
Página Legal

82
Presentación

83
Índice

Página

Datos Generales..............................................................................................................................

Fundamentación.............................................................................................................................

Perfil de Egreso del Nivel Medio Superior UANL..........................................................................

Taxonomía de Robert Marzano.....................................................................................................

Competencias de la Unidad de Aprendizaje..................................................................................

Representación gráfica de la Unidad de Aprendizaje...................................................................

Evaluación integral de procesos y productos................................................................................

Recomendaciones para el curso.....................................................................................................

Etapa 1 Definición, control y acceso a la base de datos– Uso de Transact SQL……….

Lectura introductoria..........................................................................................................
Representación gráfica de la etapa....................................................................................

Competencia(s) general(es) y atributo(s).......................................................................

Competencia(s) genérica(s) y atributo(s).......................................................................

Habilidades socioemocionales específicas.........................................................................

Competencias profesionales...............................................................................................

Elemento(s) de competencia.............................................................................................

Contenido conceptual.........................................................................................................

Contenido procedimental...................................................................................................

Contenido actitudinal..........................................................................................................

Experiencias de aprendizaje ...............................................................................................

Evidencia de aprendizaje de la etapa.................................................................................

Criterios de desempeño......................................................................................................

Evaluación............................................................................................................................

Recursos materiales.............................................................................................................

Recursos temporales...........................................................................................................

Etapa 2. Normativas y regulaciones…………………………………………………….

Lectura introductoria.......................................................................................................…

Representación gráfica de la etapa....................................................................................

Competencia(s) general(es) y atributo(s).......................................................................

Competencia(s) genérica(s) y atributo(s).......................................................................

Habilidades socioemocionales específicas.........................................................................

Competencias profesionales...............................................................................................

Elemento(s) de competencia.............................................................................................

84
Contenido conceptual.........................................................................................................

Contenido procedimental...................................................................................................

Contenido actitudinal..........................................................................................................

Experiencias de aprendizaje ...............................................................................................

Evidencia de aprendizaje de la etapa.................................................................................

Criterios de desempeño......................................................................................................

Evaluación............................................................................................................................

Recursos materiales.............................................................................................................

Recursos temporales...........................................................................................................

Etapa 3. Tipos de seguridad…………….………………………………………………..

Lectura introductoria..........................................................................................................
Representación gráfica de la etapa....................................................................................

Competencia(s) general(es) y atributo(s).......................................................................

Competencia(s) genérica(s) y atributo(s).......................................................................

Habilidades socioemocionales específicas.........................................................................

Competencias profesionales...............................................................................................

Elemento(s) de competencia.............................................................................................

Contenido conceptual.........................................................................................................

Contenido procedimental...................................................................................................

Contenido actitudinal..........................................................................................................

Experiencias de aprendizaje ...............................................................................................

Evidencia de aprendizaje de la etapa.................................................................................

Criterios de desempeño......................................................................................................

Evaluación............................................................................................................................

Recursos materiales.............................................................................................................

Recursos temporales...........................................................................................................

Etapa 4. Análisis de ataques………………………………………………...……………

Lectura introductoria..........................................................................................................

Representación gráfica de la etapa....................................................................................

Competencia(s) general(es) y atributo(s).......................................................................

Competencia(s) genérica(s) y atributo(s).......................................................................

Habilidades socioemocionales específicas.........................................................................

Competencias profesionales...............................................................................................

Elemento(s) de competencia.............................................................................................

Contenido conceptual

85
Contenido procedimental..............................................................................................................

Contenido actitudinal..........................................................................................................

Experiencias de aprendizaje ...............................................................................................

Evidencia de aprendizaje de la etapa.................................................................................

Criterios de desempeño......................................................................................................

Evaluación............................................................................................................................

Recursos materiales.............................................................................................................

Recursos temporales...........................................................................................................

Registro del desarrollo de competencias del estudiante………………………………...

Fuente(s) de apoyo y consulta......................................................................................................

Registro de evidencias....................................................................................................................

86
Datos Generales
La Unidad de Aprendizaje de Base de Datos II pertenece al área curricular de Formación para el Trabajo, dentro del Campo
Profesional de Programación, campo al que pertenece este programa, impartida en la modalidad presencial/escolarizada,
correspondiente al sexto semestre. Con un total de 48 horas en el aula, 12 extra aula y con un valor curricular de 2 créditos.

Esta Unidad de Aprendizaje te capacita en la administración y manipulación de las bases de datos relacionales, ya que su
uso y dominio es indispensable en cualquier lenguaje de programación orientado al manejo de datos y por consiguiente en
cualquier aplicación informática que pretenda la administración de la misma, siendo un aspecto fundamental del aprendizaje
de cualquiera que pretenda dedicarse al desarrollo del software. Además, complementa y refuerza los conocimientos
adquiridos en la unidad de aprendizaje de Base de Datos I.

Esta unidad de aprendizaje curricular contribuye al cumplimiento del perfil del egresado, al proporcionar al alumno las
herramientas y actividades necesarias que le permitan desarrollar sus competencias y lograr aprendizajes más significativos
para utilizarlos eficientemente, haciendo más rápida y fácil la gestión de bases de datos, adquiriendo las habilidades necesarias
para aprender a diseñar, crear, administrar y mantener una base de datos y obtener información de ella permitiéndole en
un futuro el poder gestionar grandes cantidades de información tanto para propósitos profesionales o de organización
personal.

87
Fundamentación
En la unidad de aprendizaje de Base de Datos II el estudiante diseña soluciones a la gestión de un sistema para satisfacer
las necesidades de organización y almacenamiento de los datos, transformándolos en información que ayude al usuario a la
toma de decisiones a través de la creación de estructuras correctas y fiables que permitan la explotación y manipulación de
los datos de una manera rápida, fácil y segura.

El Modelo Educativo de la UANL, en el cual se describe su filosofía educativa, fue aprobado por el H. Consejo Universitario
el 17 de junio de 2008 y del cual se desprenden los modelos académicos del nivel medio superior, superior y posgrado que
describen el funcionamiento de cada nivel. La finalidad de cada modelo académico es orientar la planeación, operación y
evaluación de sus programas educativos.

El modelo educativo de la UANL está sustentado en los siguientes ejes rectores:


• Estructuradores.

 Educación centrada en el aprendizaje. Implica una transformación del rol del estudiante y del docente en
los Programas educativos del Nivel Medio Superior y en las Estrategias de Interacción.

 Educación basada en competencias. Se reelaboran los Programas sintéticos y analíticos, se identifican los
tipos de competencias, se determina el desarrollo de los elementos y niveles de la competencia, además
de la metodología y las estrategias de evaluación en los cuales se determina la metodología para la
construcción de las competencias y la evaluación de las evidencias de desempeño.

• Operativo.

 Flexibilidad curricular y de los procesos. Esta flexibilidad se da en las trayectorias escolares diferenciadas, en
las Unidades de Aprendizaje del área de Libre Elección y en el sistema de créditos para el avance semestral.

• Transversales.

 Internacionalización. Está determinada por los textos y materiales multimedia de nivel internacional,
programas educativos pertinentes y de vanguardia; internacional, bilingüe y bilingüe progresivo,
fortaleciendo el aprendizaje del inglés y otros idiomas y con la participación de eventos y redes de
intercambio académico y de colaboración.

 Innovación académica. Esta innovación se desarrolla con la reestructuración de textos y materiales


didácticos, con el trabajo colegiado y colaborativo, la interacción académica, el sistema de créditos UANL
y la evaluación del proceso.

 Responsabilidad social. Tiene como objetivo fortalecer el compromiso de la institución con los intereses
generales de la sociedad, a través de estrategias que tienen como fin responder a las necesidades de su
entorno de manera responsable, oportuna y efectiva y con un fuerte sentido ético.

La Reforma Integral de Educación Media Superior (RIEMS) ha sido impulsada por la Secretaría de Educación Pública
(SEP), junto con el Consejo Nacional de Autoridades Educativas (CONAEDU) y la Asociación Nacional de Universidades e
Instituciones de Educación Superior (ANUIES).

Esta Reforma tiene el objetivo de mejorar la calidad, la pertinencia, la equidad y la cobertura del bachillerato, que demanda la
sociedad nacional, y plantea la creación del Sistema Nacional de Bachillerato en un marco de diversidad en el cual se integran
las diversas opciones de bachillerato a partir de competencias genéricas, disciplinares y profesionales.

La RIEMS se desarrolla en torno a cuatro ejes: la construcción e implantación de un Marco Curricular Común (MCC) con
base en competencias, la definición y regulación de las distintas modalidades de oferta de la EMS, la instrumentación de
mecanismos de gestión que permitan el adecuado tránsito de la propuesta, y un modelo de certificación de los egresados
del Sistema Nacional de Bachillerato.
Dentro del desarrollo de la RIEMS se han establecido acuerdos secretariales desde la SEP, entre los cuales destacan:
• 442 Donde se establece el Marco Curricular Común.
• 444 Donde se establecen las Competencias Genéricas, Disciplinares y Profesionales.
• 447 Donde se establecen las Competencias Docentes.

88
Esta Unidad de Aprendizaje es perteneciente al Bachillerato Técnico en Sistemas Computacionales localizada en el sexto
semestre de la carrera y considerando que en el mundo actual la informática así como la programación y desarrollo de
aplicaciones centradas en el manejo de los datos han adquirido una importancia de primer orden para cualquier empresa
o profesional, de modo que no vale de nada saber programar en cualquier lenguaje si no se entiende a la perfección el
funcionamiento básico de cualquier base de datos y como los datos están organizados en ellas para ser llamados desde
diversas aplicaciones en cualquier entorno operativo. De lo anterior se desprende que el manejo de las bases de datos
relacionales es indispensable en cualquier lenguaje de programación orientado al manejo de datos y por consiguiente en
cualquier aplicación informática que pretenda la administración de lo mismo, más aún cuando el mayor valor de las empresas
en la actualidad radica en el tratamiento de sus productos, clientes, proveedores, agentes, etcétera, no sería comprensible el
más sencillo programa de facturación, almacén o contabilidad sin recurrir al uso de bases de datos relacionales y por tanto
es un aspecto fundamental del aprendizaje de cualquiera que pretenda dedicarse al desarrollo del software.

El aspecto importante en el desarrollo de la Unidad de Aprendizaje de Base de Datos II es precisamente que el estudiante
trabaje en la construcción de su conocimiento, proporcionándole actividades que le permitan desarrollar sus competencias
y lograr aprendizajes más significativos para utilizarlos eficientemente, haciendo más rápida y fácil la gestión de bases de
datos, adquiriendo las habilidades necesarias para aprender a diseñar, crear, administrar y mantener una base de datos y
obtener información de ella permitiéndole en un futuro el poder gestionar grandes cantidades de información tanto para
propósitos profesionales o de organización personal.

89
Relación del Perfil de Egreso de la UANL en el contexto nacional

Competencias que Competencias que conforman el perfil de egreso en la EMS


Perfil de egreso del estudiante al
conforman el perfil de de acuerdo al Marco Curricular Común,
término de la educación media
egreso de la EMS-UANL,
superior, Modelo Educativo SEP
Modelo Educativo Acuerdo Secretarial 444
Al término de
Competencias
Competencias Generales Ámbito la Educación Competencias Disciplinares Básicas
Genéricas
Media Superior
3.- Maneja las Tecnologías Lenguaje y -Se expresa 4.Escucha, C 1. Identifica, ordena e interpreta las
de la Información y la Comunicación con claridad interpreta y ideas, datos y conceptos explícitos e
Comunicación como en español, de emite mensajes implícitos en un texto, considerando el
herramienta para el forma oral y pertinentes contexto en el que se generó y en el que
acceso a la información escrita. en distintos se recibe.
y su transformación en contextos
conocimiento, así como -Identifica las mediante la C 2. Evalúa un texto mediante la
para el aprendizaje y ideas clave utilización de comparación de su contenido con el de
trabajo colaborativo con en un texto o medios, códigos otros, en función de sus conocimientos
técnicas de vanguardia discurso oral e y herramientas previos y nuevos.
que le permitan su infiere apropiados
participación constructiva C 3. Plantea supuestos sobre los
en la sociedad. conclusiones a fenómenos naturales y culturales de
partir de ellas su entorno con base en la consulta de
. diversas fuentes.
-Se comunica
4.- Domina su lengua en inglés C 4. Produce textos con base en el uso
materna en forma oral y con fluidez y normativo de la lengua, considerando la
escrita con corrección, naturalidad intención y situación comunicativa.
relevancia, oportunidad
y ética adaptando su C 5. Expresa ideas y conceptos en
mensaje a la situación composiciones coherentes y creativas,
o contexto, para la con introducciones, desarrollo y
transmisión de ideas y conclusiones claras.
hallazgos científicos.
C 6. Argumenta un punto de vista en
público de manera precisa, coherente y
creativa.
6.- Utiliza un segundo
idioma, preferentemente C 8. Valora el pensamiento lógico en
el inglés, con claridad el proceso comunicativo en su vida
y corrección para cotidiana y académica.
comunicarse en contextos
C 9. Analiza y compara el origen,
cotidianos, académicos,
desarrollo y diversidad de los sistemas y
profesionales y científicos
medios de comunicación.

C 10. Identifica e interpreta la idea


general y posible desarrollo de un
mensaje oral o escrito en una segunda
lengua, recurriendo a conocimientos
previos, elementos no verbales y
contexto cultural.

C 11. Se comunica en una lengua


extranjera mediante un discurso
lógico, oral o escrito, congruente con la
situación comunicativa.
8.- Utiliza los métodos y Pensamiento -Construye 5.Desarrolla M 1.Construye e interpreta modelos
técnicas de investigación Matemático e interpreta innovaciones matemáticos mediante la aplicación de
tradicionales y de situaciones y propone procedimientos aritméticos, algebraicos,
vanguardia para reales, soluciones a geométricos y variacionales, para la
el desarrollo de su hipotéticas o problemas comprensión y análisis de situaciones
trabajo académico, el formales que a partir de reales, hipotéticas o formales
ejercicio de su profesión requieren de la métodos
y la generación de utilización del establecidos M 2. Formula y resuelve problemas
conocimientos. pensamiento matemáticos, aplicando diferentes
matemático enfoques.

-Formula M 3. Explica e interpreta los resultados


y resuelve obtenidos mediante procedimientos
problemas matemáticos y los contrasta con
aplicando modelos establecidos o situaciones
diferentes reales.
enfoques

90
-Argumenta M 4. Argumenta la solución obtenida de
la solución un problema, con métodos numéricos,
obtenida de gráficos, analíticos o variacionales,
un problema mediante el lenguaje verbal, matemático
con métodos y el uso de las tecnologías de la
numéricos, información y la comunicación.
gráficos o
analíticos M 5. Analiza las relaciones entre dos o
más variables de un proceso social o
natural para determinar o estimar su
comportamiento.

M 6. Cuantifica, representa y contrasta


experimental o matemáticamente
las magnitudes del espacio y las
propiedades físicas de los objetos que
lo rodean.

M 7. Elige un enfoque determinista


o uno aleatorio para el estudio de un
proceso o fenómeno, y argumenta su
pertinencia.

M 8. Interpreta tablas, gráficas, mapas,


diagramas y textos con símbolos
matemáticos y científicos.
14.- Resuelve conflictos Exploración y -Obtiene, 7. Aprende CS 1. Identifica el conocimiento social
personales y sociales comprensión del registra y por iniciativa e y humanista como una construcción en
conforme a técnicas mundo laboral y sistematiza interés propio constante transformación.
específicas en el ámbito social información, a lo largo de la
académico y de su consultando vida CS 2. Sitúa hechos históricos
profesión para la adecuada fuentes fundamentales que han tenido lugar en
toma de decisiones relevantes, distintas épocas en México y el mundo
y realiza los con relación al presente.
análisis e
investigaciones CS 3. Interpreta su realidad social a
pertinentes partir de los procesos históricos locales,
nacionales e internacionales que la han
-Comprende configurado.
la interrelación
de la ciencia, la CS 4. Valora las diferencias sociales,
tecnología, la políticas, económicas, étnicas, culturales
sociedad y el y de género y las desigualdades que
medio ambiente inducen.
en contextos
CS 5. Establece la relación entre las
históricos
dimensiones políticas, económicas,
y sociales
culturales y geográficas de un
específicos
acontecimiento.
-Identifica
CS 6. Analiza con visión emprendedora
problemas
los factores y elementos fundamentales
formula
que intervienen en la productividad y
preguntas
competitividad de una organización y su
de carácter
relación con el entorno socioeconómico.
científico y
plantea las CS 7. Evalúa las funciones de las leyes y
hipótesis su transformación en el tiempo.
necesarias para
responderlas CS 8. Compara las características
democráticas y autoritarias de diversos
sistemas sociopolíticos.

CS 9. Analiza las funciones de las


instituciones del Estado Mexicano y la
manera en que impactan su vida.
3.- Maneja las Tecnologías Pensamiento -Utiliza el 4.Escucha, CE 1. Establece la interrelación entre
de la Información y la crítico y solución pensamiento interpreta y la ciencia, la tecnología, la sociedad y
Comunicación como de problemas lógico y emite mensajes el ambiente en contextos históricos y
herramienta para el matemático pertinentes sociales específicos.
acceso a la información así como los en distintos
y su transformación en métodos de contextos CE 3. Identifica problemas, formula
conocimiento, así como las ciencias mediante la preguntas de carácter científico y
para el aprendizaje y para analizar y utilización de plantea las hipótesis necesarias para
trabajo colaborativo con cuestionar medios, códigos responderlas.

91
técnicas de vanguardia Pensamiento críticamente y herramientas CE 4. Obtiene, registra y sistematiza la
que le permitan su crítico y solución fenómenos apropiados información para responder a preguntas
participación constructiva de problemas diversos de carácter científico, consultando
en la sociedad. fuentes relevantes y realizando
-Desarrolla experimentos pertinentes.
argumentos, evalúa 5.Desarrolla
objetivos, resuelve innovaciones CE 5. Contrasta los resultados obtenidos
4.- Domina su lengua problemas, y propone en una investigación o experimento
materna en forma oral y elabora y justifica soluciones a con hipótesis previas y comunica sus
escrita con corrección, conclusiones problemas conclusiones.
relevancia, oportunidad y desarrolla a partir de
y ética adaptando su innovaciones métodos CE 6. Valora las preconcepciones
mensaje a la situación establecidos personales o comunes sobre diversos
o contexto, para la -Se adapta fenómenos naturales a partir de
transmisión de ideas y a entornos evidencias científicas
hallazgos científicos. cambiantes
6-Sustenta CE 7. Hace explícitas las nociones
una postura científicas que sustentan los procesos
personal sobre para la solución de problemas
6.- Utiliza un segundo temas de interés cotidianos.
idioma, preferentemente y relevancia
el inglés, con claridad general, CE 8. Explica el funcionamiento de
y corrección para considerando máquinas de uso común a partir de
comunicarse en contextos otros puntos nociones científicas.
cotidianos, académicos, de vista de
profesionales y científicos manera crítica y CE 9. Diseña modelos o prototipos
reflexiva para resolver problemas, satisfacer
Utiliza los métodos y necesidades o demostrar principios
técnicas de investigación científicos.
tradicionales y de
vanguardia para CE 10. Relaciona las expresiones
el desarrollo de su simbólicas de un fenómeno de la
trabajo académico, el naturaleza y los rasgos observables a
ejercicio de su profesión simple vista o mediante instrumentos o
y la generación de modelos científicos.
conocimientos.
CE 13. Relaciona los niveles de
5.- Emplea pensamiento organización química, biológica, física y
lógico, crítico, creativo y ecológica de los sistemas vivos.
propositivo para analizar
fenómenos naturales y CE 14. Aplica normas de seguridad en
sociales que le permitan el manejo de sustancias, instrumentos y
tomar decisiones equipo en la realización de actividades
pertinentes en su de su vida cotidiana.
ámbito de influencia con
responsabilidad social
1.- Aplica estrategias de Habilidades -Es autoconsciente 1.Se conoce H 9Evalúa la solidez de la evidencia para
aprendizaje autónomo y determinado, y valora a sí llegar a una conclusión argumentativa a
en los diferentes niveles y cultiva relaciones mismo y aborda través del diálogo
campos del conocimiento interpersonales problemas y
que le permitan la toma sanas, maneja retos teniendo H 13. Analiza y resuelve de manera
de decisiones oportunas y sus emociones, en cuenta los reflexiva problemas éticos relacionados
pertinentes en los ámbitos tiene capacidad objetivos que con el ejercicio de su autonomía,
personal, académico y de afrontar la persigue libertad y responsabilidad en su vida
profesional adversidad y actuar cotidiana
con efectividad,
y reconoce la H 14.Valora los fundamentos en los que
necesidad de se sustentan los derechos humanos y
solicitar apoyo los practica de manera crítica en la vida
cotidiana
-Fija metas y
busca aprovechar H 15.Sustenta juicios a través de valores
al máximo sus éticos en los distintos ámbitos de la vida
opciones y recursos

-Toma decisiones
que le generan
bienestar presente
oportunidades,
y sabe lidiar con
riesgos futuros

92
7.- Elabora propuestas Colaboración y -Trabaja 8. Participa y H 7.Escucha y discierne los juicios de los
académicas y trabajo en equipo en equipo colabora de otros de una manera respetuosa
profesionales inter, multi de manera manera efectiva
y transdisciplinarias de constructiva, en equipos H16.Asume responsablemente la
acuerdo a las mejores participativa y diversos relación que tiene consigo mismo, con
prácticas mundiales para responsable, los otros y con el entorno natural y
fomentar y consolidar el propone sociocultural mostrando una actitud de
trabajo colaborativo alternativas respeto y tolerancia
para actuar
y solucionar
problemas.

-Asume
una actitud
constructiva
12.- Construye propuestas Convivencia y -Reconoce que 9. Participa con H 1. Analiza y evalúa la importancia de
innovadoras basadas en ciudadanía la diversidad una conciencia la filosofía en su formación personal y
la comprensión holística tiene un lugar cívica y ética colectiva
de la realidad para en un espacio en la vida de
contribuir a superar los democrático, su comunidad, H 2. Caracteriza las cosmovisiones de su
retos del ambiente global con inclusión región, México y comunidad
interdependiente. e igualdad el mundo
de derechos H 3. Examina y argumenta de manera
de todas las crítica y reflexiva, diversos problemas
personas filosóficos relacionados con le actuación
13.- Asume el liderazgo 10. Mantiene humana, potenciando su dignidad,
comprometido con las -Entiende las una actitud libertad y autodirección
necesidades sociales relaciones entre respetuosa
y profesionales para sucesos locales, hacia la H 4. Distingue la importancia
promover el cambio social nacionales e interculturalidad de la ciencia y la tecnología y su
pertinente internacionales, y la diversidad trascendencia en el desarrollo de su
valora y de creencias, comunidad con fundamentos filosóficos
practica la valores, ideas
y prácticas H 5. Construye, evalúa y mejora
interculturalidad
9.- Mantiene una actitud sociales distintos tipos de argumentos, sobre
de compromiso y respeto -Reconoce las su vida cotidiana de acuerdo con los
hacia la diversidad de instituciones y principios lógicos
prácticas sociales y la importancia
culturales que reafirman el H 8. Identifica los supuestos de los
del Estado de
principio de integración en argumentos con los que se trata de
Derecho
el contexto local, nacional convencer y analiza la confiabilidad
e internacional con la de las fuentes de una manera crítica y
finalidad de promover justificada
ambientes de convivencia
pacífica.

11.- Practica los valores


promovidos por la
UANL: verdad, equidad,
honestidad, libertad,
solidaridad, respeto a la
vida y a los demás, respeto
a la naturaleza, integridad,
ética profesional, justicia
y responsabilidad, en
su ámbito personal y
profesional para contribuir
a construir una sociedad
sostenible.
2.- Utiliza los lenguajes Apreciación -Valora y 2.Es sensible al C 7. Valora y describe el papel del
lógico, formal, y expresión experimenta arte y participa arte, la literatura y los medios de
matemático, icónico, artísticas las artes porque en la apreciación comunicación en la recreación o la
verbal y no verbal de le permiten e interpretación transformación de una cultura, teniendo
acuerdo a su etapa de comunicarse y de sus en cuenta los propósitos comunicativos
vida, para comprender, le aportan un expresiones de distintos géneros.
interpretar y expresar sentido a su vida en distintos
ideas, sentimientos, géneros H 10. Asume una posición personal
teorías y corrientes de -Comprende su (crítica, respetuosa y digna) y
pensamiento con un contribución objetiva, basada en la razón (lógica
enfoque ecuménico al desarrollo y epistemológica),en la ética y en
integral de las los valores frente a las diversas
personas manifestaciones del arte

93
-Aprecia la H 11. Analiza de manera reflexiva y
diversidad de crítica las manifestaciones artísticas a
las expresiones partir de consideraciones históricas y
culturales filosóficas para reconocerlas como parte
del patrimonio cultural

H 12. Desarrolla su potencial artístico,


como una manifestación de su
personalidad y arraigo de la identidad,
considerando elementos objetivos de
apreciación estética
15.- Logra la adaptabilidad Atención al -Asume el 3.Elige y CE 12. Decide sobre el cuidado de su
que requieren los ambientes cuerpo y la salud compromiso de practica salud a partir del conocimiento de su
sociales y profesionales de mantener su estilos de vida cuerpo, sus procesos vitales
incertidumbre de nuestra época cuerpo sano, saludables
para crear mejores condiciones tanto en lo que y el entorno al que pertenece
de vida toca a su salud
física como
mental

-Evita conductas
y prácticas de
riesgo para
favorecer
un estilo de
vida activo y
saludable
10.- Interviene frente a Cuidado del -Comprende 11. Contribuye H 6. Defiende con razones coherentes
los retos de la sociedad medio ambiente la importancia al desarrollo sus juicios sobre aspectos de su entorno
contemporánea en lo local de la sustentable de
y global con actitud crítica sustentabilidad manera crítica, CS 10. Valora distintas prácticas sociales
y compromiso humano, y asume una con acciones mediante el reconocimiento de sus
académico y profesional para actitud proactiva responsables significados dentro de un sistema
contribuir a consolidar el para encontrar cultural, con una actitud de respeto
bienestar general y el desarrollo soluciones
sustentable. CE 2. Fundamenta opiniones sobre los
-Piensa impactos de la ciencia y la tecnología
globalmente en su vida cotidiana, asumiendo
y actúa consideraciones éticas.
localmente
CE 11. Analiza las leyes generales que
-Valora el rigen el funcionamiento del medio
impacto social físico y valora las acciones humanas de
y ambiental de impacto ambiental
las innovaciones
y avances
científicos
3.- Maneja las Tecnologías de la Habilidades -Utiliza 4.Escucha, C 12. Utiliza las tecnologías de la
Información y la Comunicación digitales adecuadamente interpreta y información y comunicación para
como herramienta para las Tecnologías emite mensajes investigar, resolver problemas, producir
el acceso a la información de la pertinentes materiales y transmitir información
y su transformación en Información y la en distintos
conocimiento, así como Comunicación, contextos M4. Argumenta la solución obtenida de
para el aprendizaje y trabajo para investigar, mediante la un problema, con métodos numéricos,
colaborativo con técnicas de resolver utilización de gráficos, analíticos o variacionales,
vanguardia que le permitan su problemas, medios, códigos mediante el lenguaje verbal, matemático
participación constructiva en la producir y herramientas y el uso de las tecnologías de la
sociedad. materiales y apropiados información y la comunicación.
expresar ideas
4.- Domina su lengua materna
en forma oral y escrita -Aprovecha
con corrección, relevancia, estas
oportunidad y ética adaptando tecnologías para
su mensaje a la situación o desarrollar ideas
contexto, para la transmisión e innovaciones
de ideas y hallazgos científicos.

6.- Utiliza un segundo idioma,


preferentemente el inglés,
con claridad y corrección para
comunicarse en contextos
cotidianos, académicos,
profesionales y científicos

94
Formación para el trabajo

Campo Profesional Competencia Profesional Atributo Enlace


CP 1. Aprende estructuras y lenguajes de
AE 1. Desarrolla soluciones a problemas
programación considerando las diferentes
cotidianos proponiendo aplicaciones en
etapas del desarrollo de software, durante el
diferentes lenguajes de programación y
1. Programación análisis de problemas cotidianos con el propósito
gestores de base de datos, realizando los
de desarrollar soluciones competitivas para
estudios pertinentes que engloba las etapas
la gestión de sistemas de información en el
del desarrollo de software
ámbito público y privado

CP 2. Produce diseños originales y desarrolla AE 2. Desarrolla soluciones Web a través


páginas web aplicando sus conocimientos y del uso de lenguajes y herramientas
habilidades en el uso y aplicación de diferentes especializadas, considerando las
2. Diseño y Desarrollo Web
lenguajes de programación y herramientas de propiedades de los documentos y
edición visual, para lograr una comunicación objetos necesarios para crear, organizar y
efectiva en la organizaciones administrar un sitio web dinámico
CP 3. Desarrolla las habilidades y estrategias AE 3. Utiliza recursos tecnológicos para
necesarias para su desenvolvimiento en las la comunicación efectiva y toma de
actividades propias de su formación técnica, que decisiones.
le permitan expresar ideas, resolver problemas,
3. Habilidades y Estrategias
innovar y comunicarse asertivamente dentro
de una organización.
CP 4. Implementa la seguridad en las tecnologías AE 4. Diseña e implementa redes de
de información, considerando la configuración telecomunicación, considerando modelos,
y administración de las redes de cómputo y estándares, dispositivos, conexiones,
sus usuarios, para identificar las medidas de sistemas y software especializado, para la
protección más adecuadas y evitar posibles administración eficiente de los recursos de
ataques a la infraestructura informática. la red identificando las diferentes amenazas
4. Seguridad y Redes
a la seguridad en informática, considerando
los tipos de seguridad y los elementos que
deben ser protegidos, para implementar
la estrategia más adecuada que permita
evitar o solucionar un ataque a la seguridad
informática
CPT. Distingue los principios administrativos AEFTI. Integra las normas de seguridad y
de los procesos laborales para desarrollar de calidad, así como los elementos sociales
*Formación Técnica Integral. sus actividades profesionales con calidad, de y administrativos, mostrando una actitud
manera segura e innovadora con un amplio innovadora y de responsabilidad social.
respeto por la vida y el medio ambiente.

* El Campo Profesional de Formación Técnica Integral es transversal en todos los Bachilleratos Técnicos que se ofertan en las áreas
Industrial, de Servicios y de la Salud, complementando la visión / quehacer holístico de la Formación para el Trabajo.

95
Taxonomía de Robert Marzano
Esta Guía de Aprendizaje que utilizarás en el trascurso del semestre, se basa en el Modelo Taxonómico de Robert Marzano;
este modelo te servirá para organizar tu conocimiento partiendo de lo más elemental a lo complejo.

Para ello el modelo utiliza seis tipos de pensamiento llamados Dimensiones del Aprendizaje, las cuales permiten apropiarte
del conocimiento, desarrollar habilidades y actitudes de manera que logres aprendizajes significativos.

Dimensión 1. Recuperación

En esta dimensión realizarás actividades que te permitirán recordar y reconocer información e ideas que has adquirido a
través de tu trayectoria escolar.

Dimensión 2. Comprensión

Aquí vas a entender e interpretar la información teniendo como base tus conocimientos previos, es decir, te ayudará a
integrar el conocimiento nuevo con el que ya cuentas, además de organizarlo, interiorizarlo, de tal manera que forme parte
de tu memoria de largo plazo.

Dimensión 3. Análisis

Para llegar a esta dimensión tendrás que efectuar actividades que te permitan comparar, clasificar y hacer inducciones y
deducciones y aplicarlos a situaciones nuevas. De tal manera que lograrás hacer nuevas conexiones donde analices lo que
has aprendido con mayor profundidad y mayor rigor.

Dimensión 4. Aplicación

Esta dimensión se cumple cuando eres capaz de utilizar el conocimiento para realizar tareas significativas, entre las cuales
están la toma de decisiones, la investigación, y la solución de problemas.

Dimensión 5. Metacognición

Aquí desarrollarás hábitos que te permiten el autoaprendizaje en cualquier momento de tu vida. Algunos de estos hábitos
mentales son: ser claros y buscar claridad, ser de mente abierta, controlar la impulsividad y ser consciente de tu propio
pensamiento.

Dimensión 6. Auto-regulación

Esta dimensión está compuesta de actitudes, creencias y sentimientos que determinan tu motivación para completar
ciertas tareas específicas. Aquí desarrollarás competencias que te permitan valorar, evaluar o criticar bajo estándares y
criterios determinados.

96
Competencias de la Unidad de Aprendizaje
COMPETENCIAS GENERALES/ COMPETENCIAS GENÉRICAS/
RASGOS HSE
ME RIEMS
8. Utiliza los métodos y Creatividad 5. Desarrolla innovaciones y Asertividad, manejo
técnicas de investigación propone soluciones a partir de de conflictos
tradicionales y de vanguardia métodos establecidos. interpersonales,
para el desarrollo de su trabajo toma de
académico, el ejercicio de su Diseña, analiza y explica proyectos perspectiva.
profesión y la generación de aplicando creatividad e innovación
conocimientos. en la resolución de problemas, 5.6 Utiliza las tecnologías de
tomando como base los principios, la información y comunicación
leyes y conceptos. para procesar e interpretar
información.
Procesa información
utilizando las tecnologías de la
información y la comunicación.

Competencia Profesional del Campo y Atributos


COMPETENCIA ATRIBUTO
CAMPO PROFESIONAL ATRIBUTO ENLACE
PROFESIONAL DIFERENCIADOR
1 Programación CP1 AE1 AD1.9

Aprende estructuras y Desarrolla soluciones a Implementa una base de dato


lenguajes de programación problemas cotidianos a partir del modelo relacional
considerando las diferentes proponiendo aplicaciones para la planificación y diseño
etapas del desarrollo de en diferentes lenguajes de de los datos proporcionando
software, durante el análisis programación y gestores de un entorno que sea a la vez
de problemas cotidianos con base de datos, realizando conveniente y eficiente
el propósito de desarrollar los estudios pertinentes para la manipulación y
soluciones competitivas que engloba las etapas del almacenamiento de la
para la gestión de sistemas desarrollo de software. información con el propósito
de información en el ámbito de implementar soluciones a
público y privado. la gestión de un sistema.

97
Representación gráfica de la Unidad de Aprendizaje

98
Evaluación integral de procesos y productos
Evaluación diagnóstica

Se desarrolla al iniciar tu formación para estimar los conocimientos previos, y te ayuda a orientar tu proceso educativo. Esta
evaluación no es de valor acreditable.

Evaluación formativa

La evaluación formativa te indica el grado de avance y el proceso para el desarrollo de las competencias, advierte además las
dificultades que encuentres durante tu aprendizaje.

Las evidencias son evaluadas mediante rúbricas a través de la plataforma NEXUS, donde automáticamente se alimenta el Sistema
Integral de Seguimiento Académico de Competencias (SISAC), el cual por medio de una semaforización refleja el grado de avance
del desarrollo de las competencias descritas.

Número y nombre de la etapa Evidencias


Etapa 1. Definición, control y acceso a la Base de Datos
base de datos – Uso de Transact SQL
Etapa 2. Consultas simples y vistas a través Consultas Simples
del uso de criterios de selección
Etapa 3. Consultas Multitabla Consultas Multitabla
Etapa 4. Procedimientos Almacenados Procedimientos Almacenados
Producto Integrador de Aprendizaje. Plan Sistema de Base de Datos
de contingencias del taller o laboratorio.

Producto Integrador de Aprendizaje (PIA)

Sistema de Base de Datos: Modelado, creación y manipulación de una base de datos para obtener información de ella facilitando
la gestión de grandes cantidades de información tanto para propósitos profesionales o de organización personal.
1. Conformar equipos de trabajo de acuerdo a la indicaciones del docente.
2. Determinar el propósito de la base de datos.
3. Crear el modelo físico de la base de datos en el SGBD seleccionado.
4. Poner en práctica las sentencias DDL y DML, así como manejar algunas sentencias útiles para mostrar información importante
de la base de datos.
5. Plantear consultas con agrupamiento de registros y con funciones que permiten contar registros, calcular sumas, promedios,
obtener valores máximos y mínimos.
6. Plantear consultas que permitan combinar registros con dos o más tablas en una base de datos relacional.
7. Crear y ejecutar procedimientos almacenados

Criterios de desempeño

• Diseña e implementa eficientemente los modelos de base de datos: E-R y relacional en el SGBD con todos sus elementos
(tablas, atributos, relaciones)

• Utiliza las sentencias del DDL y DML para crear, modificar y manipular la estructura e información de las tablas.

• Recupera información de las tablas a través de consultas imples y combinadas.

• Reutiliza código para crear y realizar llamadas a procedimientos.

• Entrega y puntualidad presentando en tiempo y forma la evidencia.

99
Rúbrica del Producto Integrador de Aprendizaje

Semestre: Sexto Unidad de Aprendizaje: Base de Datos II


Etapa: 1-4 Actividad: PIA Tipo de evaluación: Heteroevaluación

Competencia Profesional: Aprende estructuras y lenguajes de programación considerando las diferentes etapas del desarrollo de
software, durante el análisis de problemas cotidianos con el propósito de desarrollar soluciones competitivas para la gestión de
sistemas de información en el ámbito público y privado.
Atributo Enlace: Desarrolla soluciones a problemas cotidianos proponiendo aplicaciones en diferentes lenguajes de programación y
gestores de base de datos, realizando los estudios pertinentes que engloba las etapas del desarrollo de software.
Atributo Diferenciador: Implementa una base de dato a partir del modelo relacional para la planificación y diseño de los datos
proporcionando un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento de la información con el
propósito de implementar soluciones a la gestión de un sistema.

Nombre de la Evidencia de Aprendizaje: Sistema de Base de Datos


NIVELES DE DESEMPEÑO
TOTAL
Tipo de SEMAFORIZACIÓN SOBRE LOS NIVELES DE DESEMPEÑO
CRITERIOS
Saberes No presentó
Desarrollado En vía de desarrollo Sin desarrollar
trabajo

Diseña eficientemente Diseña los modelos de No diseña los modelos No presenta


Diseña e los modelos de base de base de datos: E-R y de base de datos: E-R y evidencia de la
Conocimiento
CONOCER

implementa datos: E-R y relacional y relacional y lo implementa relacional. Implementa actividad.


eficientemente lo implementa en el SGBD en el SGBD con algunos la BD en el SGBD con
los modelos de con todos sus elementos de sus elementos (tablas, algunos de sus elementos
base de datos (tablas, relaciones, relaciones, atributos). (tablas, relaciones,
atributos). atributos).
(3 puntos) (2 puntos) (1 punto (0 punto)

Utiliza las Crea, modifica y manipula Crea, modifica y manipula No utiliza correctamente No presenta
sentencias del la estructura e información la estructura e información los comandos del DDL y evidencia de la
DDL y DML de las tablas utilizando de las tablas utilizando DML para crear, modificar actividad
correctamente todos los algunos comandos del DDL y manipular la estructura
comandos del DDL y DML. y DML. e información de las
tablas.
(3 puntos) (2 puntos) (1 puntos) (0 punto)

Plantea y diseña Plantea y diseña consultas No plantea y diseña No presenta


correctamente consultas simples y combinadas con correctamente consultas evidencia de la
simples y combinadas con agrupamiento de registros, simples y combinadas actividad
Habilidades

agrupamiento de registros, haciendo uso de algunas con agrupamiento de


Recupera
HACER

haciendo uso de todas funciones, cláusulas y registros, y hace uso


información de
las funciones, cláusulas y operadores para establecer de algunas funciones,
las tablas
operadores para establecer los criterios de búsqueda. cláusulas y operadores
los criterios de búsqueda. para establecer los
criterios de búsqueda.
(3 puntos) (2 puntos) (0 punto)
(1 puntos)
Reutiliza correctamente Reutiliza código a través Reutiliza código a través No presenta
código a través de una de una estructura y de una estructura y evidencia de la
estructura y sintaxis sintaxis parcialmente sintaxis no conveniente actividad
Crea y realiza adecuada para crear y correcta para crear y para crear y ejecutar
llamadas a ejecutar procedimientos ejecutar procedimientos procedimientos
procedimientos. almacenados. almacenados. almacenados.
(3 puntos) (2 puntos) (1 puntos)
(0 punto)
Presenta en tiempo y Presenta fuera de tiempo Presenta fuera de tiempo No presenta
Actitudes/Valores

Entrega y forma la evidencia y cumple parcialmente con y no cumple con la forma evidencia la
puntualidad la forma solicitada de la solicitada de la evidencia. actividad
SER

evidencia. (1 puntos)
(3 puntos) (2 punto) (0 punto)

TOTAL
Observaciones:

PONDERACIÓN DE LA
CALIFICACIÓN 10% PUNTAJE TOTAL:
RÚBRICA:

100
Evaluación sumativa
Se lleva a cabo al final de tu proceso educativo de esta unidad de aprendizaje, considerando el conjunto de evidencias que
habrás de elaborar a lo largo del semestre e indica el desempeño logrado.

Instrumentos de evaluación y evidencias Ponderación


Primer examen parcial 10%
Examen de medio término 15%
Segundo examen parcial 10%
Examen global 15%
Subtotal 50%
Portafolio de evidencias
Etapa 1.

D1: Cuestionario en línea 0%

D2: Tabla comparativa 4%

EA: Base de Datos 6%


Etapa 2.

D1: Cuestionario en línea 0%

D2: Tabla comparativa 4%

EA: Laboratorio de actividades (consultas y vistas 6%


simples)
Etapa 3.

D1: Cuestionario en línea 0%

D2: Tabla comparativa 4%

EA: Laboratorio de actividades (consultas 6%


multitabla)
Etapa 4.

D1: Cuestionario en línea 0%

D2: Tabla comparativa 4%

EA: Laboratorio de actividades (procedimientos 6%


almacenados)
Producto Integrador de Aprendizaje. 10%

Sistema de Base de Datos


Subtotal 50%
Total 100%

Los resultados de tu evaluación sumativa se capturan en un sistema propio de la Universidad, se conoce como Sistema
Integral para la Administración de los Servicios Educativos (SIASE), el cual optimiza los procesos administrativos de los
departamentos de la Institución (escolar, recursos humanos, finanzas, entre otros) para obtener información en forma
oportuna y confiable. Éste permite al docente la captura de calificaciones por Internet, consultas de horario, minutas y
revisión de datos personales, de tal manera que podrás obtener información en el momento que lo desees, información que
podrá también ser consultada por tus padres si así lo desean.

101
Recomendaciones para el curso
La presente guía de aprendizaje tiene el propósito de servirte como herramienta de apoyo durante el proceso de enseñanza
aprendizaje. Las actividades han sido diseñadas para que desarrolles las habilidades, actitudes y valores que hacen posible
desempeños flexibles, creativos y competitivos, en un campo profesional específico y en un contexto determinado.

Encontrarás una serie de actividades que van de lo simple a lo complejo, todas ellas contribuyen a la construcción de un
aprendizaje significativo para un mejor desempeño, por lo que es necesario el desarrollo de las actividades y tareas ya que
para una mejor comprensión se requiere de la práctica y la experiencia adquirida a través del trabajo realizado por ti.

Te proponemos trabajar en forma conjunta con tu maestro y realizar trabajo individual y colaborativo con tus compañeros.
Tú como estudiante deberás de responsabilizarte de tu aprendizaje y comprometerte con el cumplimiento integral en el
desarrollo de las actividades de esta guía de aprendizaje evidenciando de esta forma que has adquirido las competencias
para responder a las exigencias del mundo globalizado.

102
Etapa 1
Definición, control y
acceso a la base de datos
– Uso de Transact SQL

103
LECTURA INTRODUCTORIA

¿Por qué aprender SQL?


En el entorno del mercado actual, la competitividad y la rapidez de maniobra de una empresa son imprescindibles para
su éxito. Para conseguirlo existe cada vez una mayor demanda de datos y, por tanto, más necesidad de gestionarlos.
Esta demanda siempre ha estado patente en empresas y sociedades, pero en estos años se ha disparado debido al acceso
multitudinario a las redes integradas en Internet y a la aparición de los dispositivos móviles que también requieren esa
información.

En informática se conoce como dato a cualquier elemento informativo que tenga relevancia para un usuario. Desde su
nacimiento, la informática se ha encargado de proporcionar herramientas que faciliten la manipulación de los datos. Antes
de la aparición de las aplicaciones informáticas, las empresas tenían como únicas herramientas de gestión de datos los
ficheros con cajones, carpetas y fichas de cartón. En este proceso manual, el tiempo requerido para manipular estos datos
era enorme. Pero la propia informática ha adaptado sus herramientas para que los elementos que el usuario utiliza en cuanto
a manejo de datos se parezcan a los manuales. Por eso se sigue hablado de ficheros, formularios, carpetas, directorios, etc.

La clientela fundamental del profesional informático es la empresa. La empresa se puede entender como un sistema de
información formado por diversos objetos: el capital, los recursos humanos, los inmuebles, los servicios que presta, etc.
Los sistemas de información actuales se basan en bases de datos (BD) y sistemas de bases de datos (SGBD) que se han
convertido en elementos imprescindibles de la vida cotidiana de la sociedad moderna.

Por esta razón, el lenguaje SQL, o Lenguaje de Consulta Estructurada es el principal medio para el acceso a la información de
las bases de datos en cualquier proyecto. Con este lenguaje hacemos las tareas más comunes, denominadas CRUD (Crear,
Leer, Actualizar y Eliminar, por sus siglas en inglés). Prácticamente cualquier aplicación o industria cuenta con servidores de
datos, y es el SQL lo que te posibilitará aprovecharlos, por ello, se considera que formarse en la gestión de SQL es un paso
vital en la carrera de cualquier programador. Cualquier cosa que hagas con tus habilidades de programación tendrá que
contar con una base de datos, por lo que iniciar tu formación en el aprendizaje de lenguaje SQL no es solo vital, sino también,
una de las primeras cosas que debes hacer al entrar en este mundo.

https://buildmedia.readthedocs.org/media/pdf/gestionbasesdatos/latest/gestionbasesdatos.pdf
https://www.aicad.es/lenguaje-sql/

104
Representación gráfica de la etapa.

105
Competencia(s) General(es) y atributo(s)
8. Utiliza los métodos y técnicas de investigación tradicionales y de vanguardia para el desarrollo de su trabajo académico,
el ejercicio de su profesión y la generación de conocimientos.

Atributos
Procesa información utilizando las tecnologías de la información y comunicación.

Competencia(s) Genérica(s) y atributo(s)


4. Escucha, interpreta y emite mensajes pertinentes en distintos contextos mediante la utilización de medios, códigos y
herramientas apropiados.

Atributos
1.5 Maneja las tecnologías de la información y la comunicación para obtener información y expresar ideas.

5. Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.

Atributos
1.6 Utiliza las tecnologías de la información y comunicación para procesar e interpretar información.

Habilidades Socioemocionales Específicas


Asertividad, manejo de conflictos interpersonales, toma de perspectiva.

Competencia del Campo Profesional:


Competencias del Campo Profesional:

CP1 Aprende estructuras y lenguajes de programación considerando las diferentes etapas del desarrollo de software, durante
el análisis de problemas cotidianos con el propósito de desarrollar soluciones competitivas para la gestión de sistemas de
información en el ámbito público y privado.

Atributo Diferenciador:
AD1.9 Implementa una base de datos a partir del modelo relacional para la planificación y diseño de los datos proporcionando
un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento de la información con el propósito
de implementar soluciones a la gestión de un sistema.

Elemento(s) de competencia:
Utiliza las sentencias de Transact SQL para efectuar tareas básicas como la creación, actualización y manipulación de una
base de datos diseñando el modelo conceptual y lógico a partir del análisis de requerimientos de información.

Contenido conceptual:
• Base de datos
• Sistema de gestión de base de datos (SGBD)
• SQL Server
• Transact-SQL
• DDL
• DCL
• DML
• Cláusulas
• Operadores
• Tipos de datos
• Funciones de agregado

106
Contenido procedimental:
• Analiza y organiza los datos
• Diseña el diagrama E-R
• Crea y manipula una base de datos

Contenido actitudinal
• Trabaja con honestidad en el desarrollo de las actividades.
• Muestra predisposición al trabajo
• Da su mayor esfuerzo para la entrega en tiempo y forma de las actividades.

Experiencias de aprendizaje.
Dimensión 1. Recuperación

• Inicia sesión en tu cuenta de plataforma NEXUS

• Completa el cuestionario exploratorio con base en tus conocimientos previos.

Dimensión 2. Comprensión

• Investiga en fuentes bibliográficas o electrónicas los comandos de Transact-SQL.

• Identifica los comandos de Transact-SQL en sus diferentes categorías, así como las diferentes cláusulas y funciones
de agregado y escalares, describe cada uno de ellos y crea 2 ejemplos de sentencias SQL del uso de cada comando
utilizando la sintaxis correcta.

• Organiza la información anterior en una tabla comparativa.

Evidencia de aprendizaje.
Base de Datos

1. Construye una base de datos a partir del modelo E-R y relacional.


2. Implementa el diseño de base de datos en el SGBD (SQL Server).
3. Manipula la información contenida en la base de datos haciendo uso de los comandos de Transact – SQL (DDL, DML,
DCL), cláusulas y funciones de agregado y escalares.

Criterios de desempeño.
• Refleja un conocimiento y razonamiento óptimos.
• Presenta los ejercicios a resolver con una estructura y sintáxis correcta.

• Presenta los resultados de los ejercicios a resolver de manera correcta.

• Entrega en tiempo y forma.

107
Rúbrica de la Evidencia de Aprendizaje.

Semestre: Sexto Unidad de Aprendizaje: Base de Datos II


Etapa: 1 Actividad: Base de Datos Tipo de evaluación: Heteroevaluación
Competencia Profesional: CP1 Aprende estructuras y lenguajes de programación considerando las diferentes etapas del
desarrollo de software, durante el análisis de problemas cotidianos con el propósito de desarrollar soluciones competitivas
para la gestión de sistemas de información en el ámbito público y privado.

Atributo Enlace: AE1 Desarrolla soluciones a problemas cotidianos proponiendo aplicaciones en diferentes lenguajes de
programación y gestores de base de datos, realizando los estudios pertinentes que engloba las etapas del desarrollo de
software.

Atributo Diferenciador: AD1.9 Implementa una base de datos a partir del modelo relacional para la planificación y diseño de
los datos proporcionando un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento
de la información con el propósito de implementar soluciones a la gestión de un sistema.

Nombre de la Evidencia de Aprendizaje: Base de Datos


NIVELES DE DESEMPEÑO
TOTAL
Tipo de SEMAFORIZACIÓN SOBRE LOS NIVELES DE DESEMPEÑO
CRITERIOS
Saberes No presentó
Desarrollado En vía de desarrollo Sin desarrollar
trabajo

Identifica los diferentes No presenta


Identifica y distingue el Identifica y distingue comandos, cláusulas, evidencia de la
uso de los diferentes parcialmente el uso de funciones de agregado actividad.
Conocimiento

comandos, cláusulas, los diferentes comandos,


CONOCER

y escalares, pero no
Refleja un conocimiento y funciones de agregado cláusulas, funciones de distingue su uso en
razonamiento óptimos y escalares en una agregado y escalares en una sentencia Select.
sentencia Select. una sentencia Select.
(1 punto)
(3 puntos) (2 puntos)
(0 punto)
Presenta la totalidad de Presenta más del Presenta el 50% No presenta
los ejercicios a resolver 50% de los ejercicios o menos de los evidencia de la
con una estructura y a resolver con una ejercicios a resolver actividad
Presenta los ejercicios a
sintaxis correcta. estructura y sintaxis con una estructura y
resolver con una estructura
correcta. sintaxis correcta.
y sintaxis correcta.
(2 puntos) (1 puntos)
Habilidades

(3 puntos) (0 punto)
HACER

Presenta y comprueba Presenta y comprueba Presenta y comprueba


que la totalidad de que más del 50% de que el 50% o menos de No presenta
los resultados de los los resultados de los los resultados de los evidencia de la
ejercicios son correctos ejercicios a resolver son ejercicios a resolver actividad
Presenta y comprueba
al ejecutar las sentencias correctos al ejecutar las son correctos al
que los resultados de los
Select. sentencias Select. ejecutar las sentencias
ejercicios son correctos.
Select.
(2 puntos)
(3 puntos) (1 puntos)
(0 punto)
Presenta en tiempo Presenta fuera de tiempo Presenta fuera de No presenta
Entrega en tiempo y forma y forma cuidando la y forma cuidando la tiempo y forma la evidencia de la
Actitudes/
Valores

calidad de la actividad calidad de la actividad calidad de la actividad actividad


SER

no es la esperada

(3 puntos) (2 punto) (1 puntos) (0 punto)


TOTAL
Observaciones:

CALIFICACIÓN PONDERACIÓN DE LA RÚBRICA: 6% PUNTAJE TOTAL:

108
Evaluación
Tipo Instrumento
Dimensión 1
Cuestionario
Diagnóstica a través de una autoevaluación

Lista de Cotejo
Dimensión 2
Formativa a través de una Coevaluación. Rúbrica

Evidencia de Aprendizaje Primer examen parcial


Formativa a través de una heteroevaluación

Sumativa a través de una heteroevaluación


Recursos materiales
• Manual de Base de Datos II.

• Plataforma NEXUS.
• Libreta de apuntes.

• Computadora

• USB

Recursos temporales (estimación de horas aula y extra aula)


Horas aula Horas extra aula
12 3

109
Etapa 2
Consultas simples y
vistas a través del uso de
criterios de selección

110
LECTURA INTRODUCTORIA

¿Cómo funciona una consulta?


Las bases de datos no sólo proporcionan un sin número de facilidad, rapidez y actualidad en nuestra información, pues éstas
también nos proporcionan una cantidad de funciones con un alto nivel de ventajas a nuestro favor, como por ejemplo, una
de las funciones básicas de las bases de datos es permitir el almacenamiento y la recuperación de la información necesaria,
para que tanto las personas como las organizaciones puedan tomar decisiones a partir de los resultados obtenidos por este
nuevo sistema.

Digamos que quieres pedir un Café Americano en Starbucks. Haces una solicitud diciendo ¿Un americano por favor? El
encargado comprenderá el significado de tu solicitud y te dará el producto solicitado.

Una consulta funciona de la misma manera; le da sentido al código utilizado en cualquier lenguaje de consulta. Ya sea SQL
o cualquier otro, tanto el usuario como la base de datos pueden intercambiar información en cualquier momento, siempre
que “hablen” el mismo lenguaje.

Algunas declaraciones como las anteriores son un sólido testimonio de lo que un lenguaje de consulta puede hacer: Te
permite tratar tus datos de forma más efectiva. Imagina si tienes miles de filas de datos; manipularlos no tiene por qué ser
complicado. Además, la mayoría de los lenguajes de consulta son intuitivos, lo que significa que son fáciles de aprender una
vez que entiendes algunas reglas básicas.

¡Pongamos manos a la obra con las consultas de bases de datos y manejemos nuestros datos como
profesionales!

https://www.hostinger.mx/tutoriales/que-es-consulta-base-de-datos/

111
Representación gráfica de la etapa

112
Competencia(s) General(es) y atributo(s)
Atributos

Competencia(s) Genérica(s) y atributo(s)


4. Escucha, interpreta y emite mensajes pertinentes en distintos contextos mediante la utilización de medios, códigos y
herramientas apropiados.

Atributos

4.5 Maneja las tecnologías de la información y la comunicación para obtener información y expresar ideas

5.-Desarrolla innovaciones y propone soluciones a partir de métodos establecidos.

Atributos

5.6 Utiliza las tecnologías de la información y comunicación para procesar e interpretar información.

Habilidades Socioemocionales Específicas


Asertividad, manejo de conflictos interpersonales, toma de perspectiva.

Competencia del Campo Profesional:


Aprende estructuras y lenguajes de programación considerando las diferentes etapas del desarrollo de software, durante
el análisis de problemas cotidianos con el propósito de desarrollar soluciones competitivas para la gestión de sistemas de
información en el ámbito público y privado.

Atributo Diferenciador:
AD1.9 Implementa una base de datos a partir del modelo relacional para la planificación y diseño de los datos proporcionando
un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento de la información con el propósito
de implementar soluciones a la gestión de un sistema.

Elemento(s) de competencia:
Diseña sentencias SELECT para recuperar datos de las tablas, manipulándolos a través del uso de diferentes operadores,
funciones y cláusulas para filtrar los registros con el fin de recuperar solamente aquellos que cumplan con condiciones
preestablecidas.

Contenido conceptual:
• Consulta
• Vista

• Select

• Where

• Between Like

• In

• Is Null

• Group By

• Having

• Order By

113
Contenido procedimental:
• Distingue entre los diferentes operadores y clausulas utilizadas en los criterios de consulta.

• Diseña sentencias SELECT de una o más tablas

• Ejecuta las sentencias SELECT para mostrar los resultados de la consulta

Contenido actitudinal
• Muestra interés durante el desarrollo de las actividades.

• Tiene predisposición para el trabajo

• Está motivado hacia el logro de los objetivos

• Muestra un aprendizaje constante

Experiencias de aprendizaje.
Dimensión 1. Recuperación

• Inicia sesión en tu cuenta de plataforma NEXUS

• Completa el cuestionario exploratorio con base en tus conocimientos previos.

Dimensión 2. Comprensión

• Investiga en fuentes bibliográficas o electrónicas sobre los diferentes operadores empleados para definir los criterios
de búsqueda al efectuar consultas y vistas.

• Identifica los diferentes operadores en sus diferentes categorías, describe cada uno de ellos y crea 2 ejemplos de
sentencias SQL del uso de cada operador utilizando la sintaxis correcta.

• Organiza la información anterior en una tabla comparativa.

Evidencia de aprendizaje.
Laboratorio de actividades (consultas y vistas simples)

1. Utiliza una base de datos de ejemplo (indicada por tu maestro).


2. Completa el laboratorio impreso de actividades (será entregado por el docente) en el que harás uso de los diferentes
operadores para definir los criterios de búsqueda en consultas y vistas simples.
3. Manipula la información contenida en la base de datos una vez que hayas terminado la actividad anterior, al crear,
ejecutar y corroborar los resultados de las diferentes consultas y vistas en la aplicación de SQL Server.

Criterios de desempeño.
• Refleja un conocimiento y razonamiento óptimos.

• Presenta los ejercicios a resolver con una estructura y sintaxis correcta.

• Presenta los resultados de los ejercicios a resolver de manera correcta.

• Entrega en tiempo y forma.

114
Rúbrica de la Evidencia de Aprendizaje.

Semestre: Sexto Unidad de Aprendizaje: Base de Datos II


Etapa: 2 Actividad: Laboratorio de actividades Tipo de evaluación: Heteroevaluación
Competencia Profesional: CP1 Aprende estructuras y lenguajes de programación considerando las diferentes etapas
del desarrollo de software, durante el análisis de problemas cotidianos con el propósito de desarrollar soluciones
competitivas para la gestión de sistemas de información en el ámbito público y privado

Atributo Enlace: AE1 Desarrolla soluciones a problemas cotidianos proponiendo aplicaciones en diferentes lenguajes de
programación y gestores de base de datos, realizando los estudios pertinentes que engloba las etapas del desarrollo de
software.

Atributo Diferenciador: AD1.9 Implementa una base de datos a partir del modelo relacional para la planificación y diseño
de los datos proporcionando un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento
de la información con el propósito de implementar soluciones a la gestión de un sistema.

Nombre de la Evidencia de Aprendizaje: Laboratorio de actividades (consultas simples y vistas)


NIVELES DE DESEMPEÑO
TOTAL
Tipo de SEMAFORIZACIÓN SOBRE LOS NIVELES DE DESEMPEÑO
CRITERIOS
Saberes No presentó
Desarrollado En vía de desarrollo Sin desarrollar
trabajo

Identifica los diferentes No presenta


Identifica y distingue el Identifica y distingue operadores empleados evidencia de la
uso de los diferentes parcialmente el uso de para definir los criterios actividad.
Conocimiento

operadores empleados los diferentes operadores


CONOCER

de búsqueda, pero
Refleja un conocimiento y para definir los criterios de empleados para definir no distingue su uso
razonamiento óptimos búsqueda en consultas y los criterios de búsqueda aplicado a consultas y
vistas simples. en consultas y vistas vistas simples.
simples.
(1 punto)
(3 puntos) (2 puntos) (0 punto)
Presenta la totalidad de Presenta más del Presenta el 50% No presenta
los ejercicios a resolver 50% de los ejercicios o menos de los evidencia de la
Presenta los ejercicios a con una estructura y a resolver con una ejercicios a resolver actividad
resolver con una estructura sintáxis correcta. estructura y sintáxis con una estructura y
y sintaxis correcta. correctos. sintáxis correcta.
(3 puntos)
(2 puntos) (1 puntos) (0 punto)
Habilidades
HACER

Presenta y comprueba Presenta y comprueba Presenta y comprueba Presenta y comprueba


que los resultados de los que la totalidad de que más del 50% de que el 50% o menos de No presenta
ejercicios a resolver están los resultados de los los resultados de los los resultados de los evidencia de la
correctos al desplegar ejercicios a resolver ejercicios a resolver están ejercicios a resolver actividad
información de las tablas. están correctos al correctos al desplegar están correctos al
desplegar información de información de las tablas. desplegar información
las tablas. de las tablas.
(0 punto)
(3 puntos) (2 puntos) (1 puntos)
Presenta en tiempo Presenta fuera de tiempo Presenta fuera de No presenta
y forma cuidando la y forma cuidando la tiempo y forma la evidencia de la
Actitudes/

Entrega en tiempo y forma.


Valores

calidad de la actividad calidad de la actividad calidad de la actividad actividad


SER

no es la esperada
(3 puntos)
(2 punto) (1 puntos) (0 punto)

TOTAL
Observaciones:

CALIFICACIÓN PONDERACIÓN DE LA RÚBRICA: 6% PUNTAJE TOTAL:

115
Evaluación
Tipo Instrumento
Dimensión 1
Cuestionario
Diagnóstica a través de una autoevaluación
Lista de cotejo
Dimensión 2
Formativa a través de una coevaluación Rúbrica

Examen global de medio


Evidencia de Aprendizaje curso
Formativa a través de una heteroevaluación

Sumativa a través de una heteroevaluación

Recursos materiales
• Manual de Base de Datos II.
• Plataforma Nexus.
• Tabla comparativa sobre el uso de operadores, funciones y cláusulas.
• Libreta de apuntes.
• Computadora
• Memoria USB.

Recursos temporales (estimación de horas aula y extra aula)


Horas aula Horas extra aula
12 3

116
Etapa 3
Consultas Multitabla

117
LECTURA INTRODUCTORIA

¿Cuántas consultas existen?

Es habitual que queramos acceder a datos que se encuentran en más de una tabla y mostrar información mezclada de todas
ellas como resultado de una consulta. Para ello tendremos que hacer combinaciones de columnas de tablas diferentes.

Una base de datos es una colección de tablas de datos que tienen relaciones lógicas entre sí. Las relaciones se usan para
conectar tablas según campos que tienen en común. Una tabla puede formar parte de cualquier número de relaciones, pero
cada relación siempre tiene exactamente dos tablas. En una consulta, una relación está representada por una combinación.

Por lo anterior, el Lenguaje SQL permite crear combinaciones que se basan en relaciones que se han definido entre las
tablas por lo que, para la realización de consultas complejas, en ocasiones es necesaria que la consulta
que involucre varias tablas, el término multitabla hace referencia a que se pueden incluir tantas tablas
como se desee.
En SQL se puede hablar de dos grupos de Consultas Multitabla
1.- Unión de tablas
2.-Composición de tablas

De esta manera podrás darte cuenta que existen muchas soluciones para el momento de querer realizar una consulta de
algún dato, no es necesario buscar uno por uno, el hombre ha creado estrategias para realizar consultas permitiendo un gran
ahorro de tiempo. Además de que no sólo se enfoca en consultas, también es más sencillo la manipulación y administración
de datos.

Para todo esto existe el lenguaje SQL que cubre necesidades de búsqueda de valores dentro de la
base de datos.

https://support.office.com/es-es/article/combinar-tablas-y-consultas-3f5838bd-24a0-4832-9bc1-
07061a1478f6
https://mimateriaenlinea.unid.edu.mx/dts_cursos_mdl/lic/TI/FB/S12/FB12_Lectura.pdf

118
Representación gráfica de la etapa

119
Competencia(s) General(es) y atributo(s)
8. Utiliza los métodos y técnicas de investigación tradicionales y de vanguardia para el desarrollo de su trabajo académico,
el ejercicio de su profesión y la generación de conocimientos.

Atributos
• Procesa información utilizando las tecnologías de la información y comunicación.

Competencia(s) Genérica(s) y atributo(s)


4. Escucha, interpreta y emite mensajes pertinentes en distintos contextos mediante la utilización de medios, códigos y
herramientas apropiados.

5. Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.

Atributos

• Maneja las tecnologías de la información y la comunicación para obtener información y expresar ideas.

• Utiliza las tecnologías de la información y comunicación para procesar e interpretar información.

Habilidades Socioemocionales Específicas


Asertividad, manejo de conflictos interpersonales, toma de perspectiva.

Competencia del Campo Profesional:


Aprende estructuras y lenguajes de programación considerando las diferentes etapas del desarrollo de software, durante
el análisis de problemas cotidianos con el propósito de desarrollar soluciones competitivas para la gestión de sistemas de
información en el ámbito público y privado.

Atributo Diferenciador:
AD1.9 Implementa una base de datos a partir del modelo relacional para la planificación y diseño de los datos proporcionando
un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento de la información con el propósito
de implementar soluciones a la gestión de un sistema.

Elemento(s) de competencia:
Diseña consultas basadas en la composición de tablas para obtener datos a partir de dos tablas cualesquiera combinándolas
a través del uso de Joins internos y externos.

Contenido conceptual:
• Join
• Inner Join
• Left Join
• Right Join
• Full Join
• Outer Join

Contenido procedimental:
• Identifica operadores, clausulas y funciones empelados en los criterios de consulta.
• Diseña sentencias SELECT para consultas simples
• Comprueba los resultados de las consultas

Contenido actitudinal
• Muestra disposición para el uso de la tecnología
• Evidencía un aprendizaje constante
• Tiene predisposición para el trabajo

120
Experiencias de aprendizaje.
Dimensión 1. Recuperación

• Inicia sesión en tu cuenta de plataforma NEXUS

• Completa el cuestionario exploratorio con base en tus conocimientos previos.

Dimensión 2. Comprensión

• Investiga en fuentes bibliográficas o electrónicas sobre los diferentes tipos de combinaciones para definir criterios
de búsqueda en consultas Multitabla (inner join – outer join).

• Identifica las diferentes combinaciones de unión en sus diferentes categorías, describe cada uno de ellas y crea 2
ejemplos de sentencias SQL de su uso utilizando la sintaxis correcta.

• Organiza la información anterior en una tabla comparativa.

Evidencia de aprendizaje.
Laboratorio de actividades (consultas y vistas simples)

1. Utiliza una base de datos de ejemplo (indicada por tu maestro).


2. Completa el laboratorio impreso de actividades (será entregado por el docente) en el que practicarás haciendo uso
de las diferentes combinaciones que pueden existir entre las tablas de la base de datos para definir los criterios de
búsqueda en consultas multitabla.
3. Manipula la información contenida en la base de datos una vez que hayas terminado la actividad anterior, al crear,
ejecutar y corroborar los resultados de las diferentes consultas multitabla en la aplicación de SQL Server.

Criterios de desempeño.
• Refleja un conocimiento y razonamiento óptimos.

• Presenta los ejercicios a resolver con una estructura y sintaxis correcta.

• Presenta los resultados de los ejercicios a resolver de manera correcta.

• Entrega en tiempo y forma.

121
Rúbrica de la Evidencia

Semestre: Sexto Unidad de Aprendizaje: Base de Datos II


Etapa: 3 Actividad: Laboratorio de actividades Tipo de evaluación: Heteroevaluación
Competencia Profesional: CP1 Aprende estructuras y lenguajes de programación considerando las diferentes etapas
del desarrollo de software, durante el análisis de problemas cotidianos con el propósito de desarrollar soluciones
competitivas para la gestión de sistemas de información en el ámbito público y privado.

Atributo Enlace: AE1 Desarrolla soluciones a problemas cotidianos proponiendo aplicaciones en diferentes lenguajes de
programación y gestores de base de datos, realizando los estudios pertinentes que engloba las etapas del desarrollo de
software.

Atributo Diferenciador: AD1.9 Implementa una base de datos a partir del modelo relacional para la planificación y diseño
de los datos proporcionando un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento
de la información con el propósito de implementar soluciones a la gestión de un sistema.

Nombre de la Evidencia de Aprendizaje: Laboratorio de actividades (consultas multitabla)


NIVELES DE DESEMPEÑO

Tipo de SEMAFORIZACIÓN SOBRE LOS NIVELES DE DESEMPEÑO


CRITERIOS TOTAL
Saberes No presentó
Desarrollado En vía de desarrollo Sin desarrollar
trabajo

Identifica los diferentes No presenta


Identifica y distingue el Identifica y distingue operadores empleados evidencia de la
uso de los diferentes parcialmente el uso de para definir los criterios actividad.
Conocimiento

operadores empleados los diferentes operadores


CONOCER

de búsqueda, pero
Refleja un conocimiento y para definir los criterios empleados para definir no distingue su uso
razonamiento óptimos de búsqueda en los criterios de búsqueda aplicado a consultas
consultas internas y en consultas internas y internas y externas.
externas. externas. (0 punto)
(1 punto)
(3 puntos) (2 puntos)

Presenta la totalidad de Presenta más del Presenta el 50% No presenta


los ejercicios a resolver 50% de los ejercicios o menos de los evidencia de la
Presenta los ejercicios a con una estructura y a resolver con una ejercicios a resolver actividad
resolver con una estructura sintaxis correcta. estructura y sintaxis con una estructura y
y sintaxis correcta. correctos. sintaxis correcta.
(3 puntos)
(2 puntos) (1 puntos) (0 punto)
Habilidades
HACER

Presenta y comprueba Presenta y comprueba Presenta y comprueba Presenta y comprueba No presenta


que los resultados de los que la totalidad de que más del 50% de que el 50% o menos de evidencia de la
ejercicios a resolver están los resultados de los los resultados de los los resultados de los actividad
correctos al desplegar ejercicios a resolver ejercicios a resolver están ejercicios a resolver
información de las tablas. están correctos al correctos al desplegar están correctos al
desplegar información de información de las tablas. desplegar información
las tablas. de las tablas.

(3 (1 puntos)
puntos) (2 puntos) (0 punto)
Presenta en tiempo Presenta fuera de tiempo Presenta fuera de No presenta
y forma cuidando la y forma cuidando la tiempo y forma la evidencia de la
Actitudes/

Entrega en tiempo y forma.


Valores

calidad de la actividad calidad de la actividad calidad de la actividad actividad


SER

no es la esperada
(3 puntos)
(2 punto) (1 puntos) (0 punto)
TOTAL
Observaciones:

CALIFICACIÓN PONDERACIÓN DE LA RÚBRICA: 6% PUNTAJE TOTAL:

122
Evaluación
Tipo Instrumento
Dimensión 1 Cuestionario
Diagnóstica a través de una autoevaluación
Lista de cotejo
Dimensión 2
Formativa a través de una Coevaluación
Rúbrica
Evidencia de Aprendizaje
Segundo examen parcial
Formativa a través de una heteroevaluación

Sumativa a través de una heteroevaluación

Recursos materiales
• Manual de Base de Datos II.
• Plataforma Nexus.
• Equipo de cómputo y conexión a internet.
• Libreta de apuntes.
• Laboratorio impreso.
• Lápiz/pluma
• USB

Recursos temporales (estimación de horas aula y extra aula)


Horas aula Horas extra aula
12 3

123
Etapa 4
Procedimientos
Almacenados

124
LECTURA INTRODUCTORIA

Procedimientos almacenados ¿Una buena práctica?


Uno de los procedimientos más usados en el diseño de la base de datos, son los Procedimiento almacenados, pues estos
permiten agilizar los procesos de consultas de datos, aumentar la seguridad, reutilizar código y permiten desarrollo de
software más ágil evitar hacer más código.

Ahora veremos que TRANSACT-SQL va más allá de un lenguaje SQL cualquiera ya que permitir crear bloques de código
orientados a realizar operaciones más complejas. Estos bloques no son programas sino procedimientos o funciones que
podrán ser llamados en cualquier momento a lo que llamamos Procedimientos almacenados, es decir, un conjunto de
instrucciones Transact-SQL que definen un determinado proceso, puede aceptar parámetros de entrada y devolver un valor
o conjunto de resultados. Este procedimiento se guarda en el servidor y puede ser ejecutado en cualquier momento.

Los procedimientos almacenados se diferencian de las instrucciones SQL ordinarias y de los lotes de instrucciones SQL en que
están precompilados. La primera vez que se ejecuta un procedimiento, el procesador de consultas de SQL Server lo analiza
y prepara un plan de ejecución que se almacena en una tabla del sistema. Posteriormente, el procedimiento se ejecuta
según el plan almacenado. Puesto que ya se ha realizado la mayor parte del trabajo de procesamiento de consultas, los
procedimientos almacenados se ejecutan casi de forma instantánea por lo que el uso de procedimientos almacenados
mejora notablemente la potencia y eficacia del SQL.

http://www.udb.edu.sv/udb/archivo/guia/informatica-ingenieria/base-de-datos-i/2014/i/guia-9.
pdf
https://www.aulaclic.es/sqlserver/t_9_1.htm

125
Representación gráfica de la etapa

126
Competencia(s) General(es) y atributo(s)
8. Utiliza los métodos y técnicas de investigación tradicionales y de vanguardia para el desarrollo de su trabajo académico,
el ejercicio de su profesión y la generación de conocimientos.

Atributos
• Procesa información utilizando las tecnologías de la información y comunicación.

Competencia(s) Genérica(s) y atributo(s)


4. Escucha, interpreta y emite mensajes pertinentes en distintos contextos mediante la utilización de medios, códigos y
herramientas apropiados.

5. Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.

Atributos

• Maneja las tecnologías de la información y la comunicación para obtener información y expresar ideas.

• Utiliza las tecnologías de la información y comunicación para procesar e interpretar información.

Habilidades Socioemocionales Específicas


Asertividad, manejo de conflictos interpersonales, toma de perspectiva.

Competencia del Campo Profesional:


CP1 Aprende estructuras y lenguajes de programación considerando las diferentes etapas del desarrollo de software, durante
el análisis de problemas cotidianos con el propósito de desarrollar soluciones competitivas para la gestión de sistemas de
información en el ámbito público y privado.

Atributo Diferenciador:
AD1.9 Implementa una base de datos a partir del modelo relacional para la planificación y diseño de los datos proporcionando
un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento de la información con el propósito
de implementar soluciones a la gestión de un sistema.

Elemento(s) de competencia:
Crea bloques de código orientados a realizar operaciones más complejas en la base de datos a través de instrucciones
Transact que se guardan en el servidor y que pueden ser reutilizadas en cualquier momento para facilitar la gestión de un
sistema de base de datos.

Contenido conceptual:
• Procedimiento almacenado
• Create procedure
• Drop Procedure
• Alter procedure
• Execute procedure

Contenido procedimental:
• Elabora un cuestionario sobre el tema de procedimientos almacenados.
• Identifica los comandos para crear, modificar, ejecutar y eliminar procedimientos almacenados.
• Crea procedimientos almacenados para reutilizar código.

Contenido actitudinal
• Muestra compromiso en el cumplimiento de las actividades asignadas.
• Aprovecha oportunamente el tiempo dedicado al trabajo en el aula.
• Muestra predisposición al trabajo y esfuerzo

127
Experiencias de aprendizaje.
Dimensión 1. Recuperación

• Inicia sesión en tu cuenta de plataforma NEXUS

• Completa el cuestionario exploratorio con base en tus conocimientos previos.

Dimensión 2. Comprensión

• Investiga en fuentes bibliográficas o electrónicas sobre los diferentes comandos empleados para trabajar con
procedimientos almacenados.

• Identifica los diferentes comandos para crear, modificar, ejecutar y eliminar procedimientos almacenados, describe
cada uno de ellas y crea 2 ejemplos de sentencias SQL utilizando la sintaxis correcta.

• Organiza la información anterior en una tabla comparativa.

Evidencia de aprendizaje.
Laboratorio de actividades (consultas y vistas simples)

1. Utiliza una base de datos de ejemplo (indicada por tu maestro).


2. Completa el laboratorio impreso de actividades (será entregado por el docente) en el que practicarás haciendo uso
de los diferentes comandos empleados para trabajar con procedimientos almacenados.
3. Manipula la información contenida en la base de datos una vez que hayas terminado la actividad anterior, al crear,
ejecutar, modificar y eliminar procedimientos almacenados en la aplicación de SQL Server.

Criterios de desempeño.
• Refleja un conocimiento y razonamiento óptimos.

• Presenta los ejercicios a resolver con una estructura y sintaxis correcta.

• Presenta los resultados de los ejercicios a resolver de manera correcta.

• Entrega en tiempo y forma.

128
Rúbrica de la Evidencia
Semestre: Sexto Unidad de Aprendizaje: Base de Datos II
Etapa: 4 Actividad: Laboratorio de actividades Tipo de evaluación: Heteroevaluación
Competencia Profesional: CP1 Aprende estructuras y lenguajes de programación considerando las diferentes etapas
del desarrollo de software, durante el análisis de problemas cotidianos con el propósito de desarrollar soluciones
competitivas para la gestión de sistemas de información en el ámbito público y privado.

Atributo Enlace: AE1 Desarrolla soluciones a problemas cotidianos proponiendo aplicaciones en diferentes lenguajes de
programación y gestores de base de datos, realizando los estudios pertinentes que engloba las etapas del desarrollo de
software.

Atributo Diferenciador: AD1.9 Implementa una base de datos a partir del modelo relacional para la planificación y diseño de
los datos proporcionando un entorno que sea a la vez conveniente y eficiente para la manipulación y almacenamiento de
la información con el propósito de implementar soluciones a la gestión de un sistema.

Nombre de la Evidencia de Aprendizaje: Laboratorio de actividades (procedimientos almacenados)


NIVELES DE DESEMPEÑO

Tipo de SEMAFORIZACIÓN SOBRE LOS NIVELES DE DESEMPEÑO


CRITERIOS TOTAL
Saberes No presentó
Desarrollado En vía de desarrollo Sin desarrollar
trabajo

Identifica los diferentes No presenta


Identifica y distingue el Identifica y distingue comandos empleados evidencia de la
uso de los diferentes parcialmente el uso de para crear, modificar, actividad.
Conocimiento

comandos empleados los diferentes comandos ejecutar y eliminar


CONOCER

Refleja un conocimiento y para crear, modificar, empleados para crear, procedimientos


razonamiento óptimos ejecutar y eliminar modificar, ejecutar y almacenados, pero
procedimientos eliminar procedimientos no distingue su uso
almacenados. almacenados. aplicado a la definición
de procesos.
(0 punto)
(3 puntos) (2 puntos) (1 punto)
Presenta la totalidad de Presenta más del Presenta el 50% No presenta
los ejercicios a resolver 50% de los ejercicios o menos de los evidencia de la
Presenta los ejercicios a con una estructura y a resolver con una ejercicios a resolver actividad
resolver con una estructura sintaxis correcta. estructura y sintaxis con una estructura y
y sintaxis correcta. correctos. sintaxis correcta.
(3 puntos)
(2 puntos) (1 puntos) (0 punto)
Habilidades

Presenta y comprueba Presenta y comprueba Presenta y comprueba Presenta y comprueba No presenta


HACER

que los resultados de que la totalidad de que más del 50% de que el 50% o menos evidencia de la
los ejercicios a resolver los resultados de los los resultados de los de los resultados actividad
están correctos al aceptar ejercicios a resolver ejercicios a resolver de los ejercicios
parámetros de entrada están correctos aceptar están correctos aceptar a resolver están
y devolver un valor o un parámetros de entrada parámetros de entrada correctos aceptar
conjunto de resultados. y devolver un valor o un y devolver un valor o un parámetros de entrada
conjunto de resultados conjunto de resultados. y devolver un valor
o un conjunto de
resultados.

(3 puntos) (2 puntos) (1 puntos) (0 punto)


Presenta en tiempo Presenta fuera de tiempo Presenta fuera de No presenta
y forma cuidando la y forma cuidando la tiempo y forma la evidencia de la
Actitudes/

Entrega en tiempo y forma.


Valores

calidad de la actividad calidad de la actividad calidad de la actividad actividad


SER

no es la esperada

(3 puntos) (2 punto) (1 puntos) (0 punto)


TOTAL
Observaciones:

CALIFICACIÓN PONDERACIÓN DE LA RÚBRICA: 6% PUNTAJE TOTAL:

129
Evaluación
Tipo Instrumento
Dimensión 1
Cuestionario
Diagnóstica a través de una autoevaluación
Lista de cotejo
Dimensión 2
Formativa a través de una coevaluación Rúbrica

Evidencia de Aprendizaje Examen global final


Formativa a través de una heteroevaluación

Sumativa a través de una heteroevaluación

Recursos materiales
• Manual de Base de Datos II.
• Plataforma Nexus.
• Equipo de cómputo y conexión a internet.
• Libreta de apuntes.
• Laboratorio impreso.
• Lápiz/pluma
• USB

Recursos temporales (estimación de horas aula y extra aula)


Horas aula Horas extra aula
12 3

130
Registro del desarrollo de competencias del estudiante

L a Plataforma Nexus es un sistema perteneciente a la UANL el cual es desarrollado para crear y administrar cursos en
línea, por medio de ésta los Cuerpos Académicos Disciplinares (CAD) de la Dirección del Sistema de Estudios del Nivel
Medio Superior (DSENMS) diseñan los cursos master correspondientes a cada unidad de aprendizaje que conforman
el currículum de la oferta educativa del Nivel Medio Superior. En la elaboración de los cursos, los CAD generan rúbricas
para evaluar las evidencias de cada etapa y, además, éstas permiten la articulación de los criterios de desempeño con los
atributos de las Competencias Generales/Genéricas y las Competencias Disciplinares Básicas descritas en cada etapa de la
Unidad de Aprendizaje.
A través de esta plataforma se alimenta el Sistema de Seguimiento Académico de Competencias (SISAC), que permite
llevar un registro por estudiante del desarrollo de las competencias indicadas en cada Unidad de Aprendizaje; este sistema
muestra una semaforización por etapa, por unidad de aprendizaje, por estudiante y por grupo de las competencias generales,
competencias genéricas, competencias disciplinares básicas y competencias profesionales.

Por ello es importante que utilices esta plataforma, ya que te permitirá modificar hábitos, estrategias y acciones que te
lleven a culminar con éxito tu trayectoria escolar.

Actividades del estudiante y docente en la Plataforma Nexus


En la Plataforma Nexus subes la evidencia de aprendizaje de cada etapa en los tiempos indicados. Tu docente accede a la
evidencia que subes a la plataforma, la revisa y la valora, usando el instrumento de evaluación diseñado (rúbrica), donde
asigna para cada criterio, el nivel de dominio logrado (Evidencia completa, Evidencia suficiente, Evidencia débil y Sin
evidencia). Al haber revisado tu docente la evidencia, puedes acceder a la evaluación e identificar en la rúbrica claramente
la semaforización (Verde, Amarillo, Rojo), así como la ponderación respectiva, lo que permite tomar acciones pertinentes
para que tú logres desarrollar las competencias señaladas en cada unidad de aprendizaje. A continuación, se describe el
significado de cada color:

Verde: cuando claramente se observe o se presenten evidencias de que tú estás desarrollando el atributo de la competencia
genérica, disciplinar o profesional.

Amarillo: cuando el desarrollo del atributo de la competencia genérica, disciplinar o profesional aún no se presenta con
contundencia o solidez.

Rojo: cuando es evidente que aún no desarrollas el atributo de la competencia genérica, disciplinar o profesional.

Al momento que veas el color que obtuviste en cada uno de los criterios de la rúbrica, puedes darte cuenta de tus áreas de
oportunidad, de manera que puedas hacer las modificaciones correspondientes a la evidencia y volverla a subir, de tal forma
que tu maestro la vuelva a revisar y así lograr el aprendizaje esperado.

131
Fuentes de apoyo y consulta

Básica
PETKOVIC, Dusan, SQL Server 2008, Ed. McGraw-Hill, México, 2010.

Complementaria
Charte Francisco, (2014), SQL Manual Imprescindible, México: Anaya Multimedia.

132
Registro de evidencias del estudiante
Dependencia: ________________________________________ Grupo: _______
Unidad de aprendizaje: _________________________________ Turno: _______
Nombre del docente: ________________________________________________
Nombre del estudiante: ______________________________________________
Matrícula: ___________

Etapa 1. Definición, control y acceso a la base de datos – Uso de Transact SQL

P r o d u c t o s Evidencia Evaluación según el agente Porcentaje


parciales de etapa Autoevaluación Coevaluación Heteroevaluación

Suma

Etapa 2. Consultas simples y vistas a través del uso de criterios de selección.

P r o d u c t o s Evidencia Evaluación según el agente Porcentaje


parciales de etapa Autoevaluación Coevaluación Heteroevaluación

Suma

Etapa 3.Consultas Multitabla.


P r o d u c t o s Evidencia Evaluación según el agente Porcentaje
parciales de etapa Autoevaluación Coevaluación Heteroevaluación

Suma

133
Etapa 4. Procedimientos almacenados.

P r o d u c t o s Evidencia Evaluación según el agente Porcentaje


parciales de etapa Autoevaluación Coevaluación Heteroevaluación

Suma

Portafolio de evidencias Ponderación


Etapa 1. Definición, control y acceso a la base de datos – Uso de Transact 10%
SQL
Etapa 2. Consultas simples y vistas a través del uso de criterios de 10%
selección
Etapa 3. Consultas multitabla 10%
Etapa 4. Procedimientos almacenados. 10%
Producto Integrador de Aprendizaje. Reporte de investigación 10%
Subtotal 50%
Primer examen parcial 10%
Examen de medio término 15%
Segundo examen parcial 10%
Examen global 15%
Subtotal 50%
Total 100%

134
135

También podría gustarte