Documente Academic
Documente Profesional
Documente Cultură
Introducción ......................................................................................................................................................... 1
1. Lenguaje de definición de datos ....................................................................................................................... 2
1.1. Creación (Create).................................................................................................................................................... 2
1.2. Modificación (Alter)................................................................................................................................................ 6
1.3. Eliminación (Drop) .................................................................................................................................................. 8
2. Lenguaje de manipulación de datos ................................................................................................................. 9
2.1. INSERT .................................................................................................................................................................... 9
2.2. SELECT .................................................................................................................................................................. 10
2.3. DELETE .................................................................................................................................................................. 12
2.4. UDATE .................................................................................................................................................................. 14
2.5. UNION .................................................................................................................................................................. 15
2.6. INTERSECT ............................................................................................................................................................ 16
2.7. Funciones de agregación ...................................................................................................................................... 16
2.8. EXPRESIONES ........................................................................................................................................................ 17
2.9. CONSULTAS ANIDADAS ........................................................................................................................................ 17
3. Abstracción de datos y rendimiento .............................................................................................................. 18
3.1. Vista de datos ....................................................................................................................................................... 18
3.2. Índices de tablas ................................................................................................................................................... 19
4. Transacciones y concurrencia ......................................................................................................................... 20
5. Concepto ACID ................................................................................................................................................ 21
Cierre .................................................................................................................................................................. 23
Bibliografía .......................................................................................................................................................... 24
Área: NEGOCIOS M2
Curso: BASE DE DATOS
Eliminación Delete
Update
Union
Intersect
Funciones de
agregación
Expresione
Consultas
anidadas
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 1
Introducción
Este módulo se caracteriza en comprender y entender el uso de
sentencias SQL DDL y DML, para la definición y manipulación de
datos. El estudiante utilizara DDL para crear bases de datos y
todos sus objetos, tales como tablas e índices, requeridos para
contener la información de la base de datos, así también, DML en
la construcción de consultas manipulación de información
perteneciente a la base de datos.
Si piensa a futuro dedicarse como DBA, las labores de este no siempre comprende en la administración de los
servidores, también se encarga en estandarizar los nombres de las tablas y objetos pertenecientes al modelo
de la empresa, es aquí donde el uso de DDL toma una importancia fundamental para crear los objetos de forma
rápida y estándar, deberá validar que la creación y nombres estén de acuerdo con las políticas establecidas por
la empresa. Ahora si su camino es en el desarrollo de sistemas, continuamente se verá enfrentado a encontrar
soluciones utilizando DML en la manipulación de la información contenida en el motor de datos, la mayor tarea
se concentrará en el desarrollo de consultas y formas eficientes de modificación de la información contenida,
proponiendo mejoras al modelo de datos para realizar las tareas necesarias, con la finalidad de mejorar los
tiempos de respuestas. Una última labor que puede el estudiante desarrollarse, corresponde a explotar los
datos, también conocida como minería de información, la cual consiste en obtener de forma eficiente la
información de la base de datos, y mostrarla en formato requerido para generar gestión sobre lo solicitado.
Como vera usted, el ámbito de desarrollo profesional abarca en al menos 3 áreas de trabajo relacionada a la
creación y manutención de sistemas de información y con la administración de sistemas de bases de datos.
En este módulo el estudiante utilizara SQL como herramienta principal en realizar las laboras mencionadas
anteriormente, obteniendo una herramienta valiosa a en su profesión.
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 2
a. Base de datos
b. Tablas
1
Fuente: https://es.wikipedia.org/wiki/Lenguaje_de_definici%C3%B3n_de_datos
2
Fuente: https://docs.microsoft.com/en-us/sql/t-sql/statements/create-database-sql-server-transact-sql?view=sql-
server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 3
Empleado
Sucursal 1
Posee / Pertenece 0
1 M PK NumEmpleado Int
PK NumSucursal Int 1
01
Participan NombreEmple String
NombreSucursal String 1
FechaContratacion Date
Direccion String
FechaNacimiento Date
ProyEmpleado Pr
Direccion String Es jefe/ Tiene como jefe
0
NimProyecto Int
M Estado Boolean
NumEmpleado Int
Sueldo Int
FechaInicio Date
NumSucursal Int
FechaTermino Date 0
Jefe Int
M
0 M
Proyecto Ajuste
0 1 Ajuste Decimal
Participan
Bono Int
IMPORTANTE
Considere siempre dejar los archivos de datos y log en unidades distintas al disco donde este alojado el
sistema operativo, con la finalidad que no compitan por los recursos de disco, así tendrá un mejor
performance de la base de datos.
Como ya se ha creado la base de datos, ahora continuamos con la creación de las tablas, que tiene la siguiente
sintaxis:
CREATE TABLE
[ database_name . [ schema_name ] . | schema_name . ] table_name
( { <column_definition> } [ ,...n ] )
[;]
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 5
Esta instrucción se encarga de realizar modificaciones a los objetos creados y a la base de datos, esta
instrucción es mayormente utilizada para alterar las tablas, vistas y procedimientos almacenados, su estructura
es:
Aplicaremos un ejemplo modificando el tipo de dato para que acepte valores nulos, en el campo [Estado]
3
Referencia: https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql?view=sql-server-2017
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 7
Con las instrucciones anteriores se crea el índice y asocia a la tabla empleados, de esta forma se mantiene la
integridad referencial. En SQL Server podemos visualizar los cambios generando un diagrama del modelo de
datos, como se muestra en la figura 5.
Finalmente, en el DDL, la sentencia encargada de eliminar los objetos de una base de datos es DROP, se
recomienda realizar respaldos cada vez que se requiera hacer su uso en algún objeto. Su sintaxis es:
Al ejecutar las sentencias anteriores y refrescar la información en la base de datos, no se visualiza la tabla
empleados, como evidencia esta la figura 6.
4
Referencia: https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-table-transact-sql?view=sql-server-2017
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 9
2.1. INSERT6:
Utilizado para ingresar información en una tabla existente en la base de datos, se basa en la siguiente sintaxis:
INSERT
{
[ TOP ( expression ) [ PERCENT ] ]
[ INTO ]
{ <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
{
[ ( column_list ) ]
[ <OUTPUT Clause> ]
{ VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ]
| derived_table
| execute_statement
| <dml_table_source>
| DEFAULT VALUES
}
}
}
[;]
5
https://es.wikipedia.org/wiki/Lenguaje_de_manipulaci%C3%B3n_de_datos
6
https://docs.microsoft.com/en-us/sql/t-sql/statements/insert-transact-sql?view=sql-server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 10
IMPORTANTE
2.2. SELECT7:
Utilizado para realizar consultas a una o más tablas de la base de datos. Contiene la siguiente sintaxis:
7
Referencia: https://docs.microsoft.com/es-es/sql/t-sql/queries/select-transact-sql?view=sql-server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 11
Esta instrucción elimina las tuplas de una tabla, posee la siguiente sintaxis:
DELETE
[ TOP ( expression ) [ PERCENT ] ]
[ FROM ]
{ { table_alias
| <object>
| rowset_function_limited
[ WITH ( table_hint_limited [ ...n ] ) ] }
| @table_variable
}
[ <OUTPUT Clause> ]
[ FROM table_source [ ,...n ] ]
[ WHERE { <search_condition>
| { [ CURRENT OF
{ { [ GLOBAL ] cursor_name }
| cursor_variable_name
}
]
}
}
]
[ OPTION ( <Query Hint> [ ,...n ] ) ]
[; ]
8
Referencia: https://docs.microsoft.com/en-us/sql/t-sql/statements/delete-transact-sql?view=sql-server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 13
IMPORTANTE
Consideraciones principales:
• Una vez eliminado, no se pueden recuperar los datos.
• Normalmente se tiene un campo “estado” el que indica si un registro esta activo o no.
• Se pueden incluir más tablas en la instrucción, pero solo de la primera tabla se eliminarán los
registros.
• Las cláusulas WHERE de la sentencia SELECT se aplican para eliminar un subconjunto de datos.
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 14
Es la instrucción encargada para realizar actualizaciones de registros en una tabla, posee la siguiente sintaxis:
UPDATE
[ TOP ( expression ) [ PERCENT ] ]
{ { table_alias | <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
| @table_variable
}
SET
{ column_name = { expression | DEFAULT | NULL }
| { udt_column_name.{ { property_name = expression
| field_name = expression }
| method_name ( argument [ ,...n ] )
}
}
| column_name { .WRITE ( expression , @Offset , @Length ) }
| @variable = expression
| @variable = column = expression
| column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression
} [ ,...n ]
[ <OUTPUT Clause> ]
[ FROM{ <table_source> } [ ,...n ] ]
[ WHERE { <search_condition>
| { [ CURRENT OF
{ { [ GLOBAL ] cursor_name }
| cursor_variable_name
}
]
}
}
]
[ OPTION ( <query_hint> [ ,...n ] ) ]
[;]
9
Referencia: https://docs.microsoft.com/es-es/sql/t-sql/queries/update-transact-sql?view=sql-server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 15
UPDATE [Empleado]
SET direccion ='Nueva Direccion', Sueldo = sueldo *1.1
WHERE rut =12
El usuario puede actualizar más de un campo en una instrucción, realizando las condiciones adecuadas en la
sentencia WHERE.
2.5. UNION:
Este comando es utilizado para unir dos sentencias SELECT, debe tener en consideración que los campos del
SELECT deben ser del mismo tipo en todas las consultas, en el siguiente ejemplo obtenemos el empleado con
rut 12 y unimos los empleados cuyo estado posee el valor 1:
Si el estado asociado al rut 12 tiene el valor 1, esta tupla no se repite en la salida. También la sentencia UNION
es asociada a un OR lógico entre dos consultas.
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 16
Este comando actúa de similar forma que la sentencia UNION, pero con la diferencia que opera como un AND
lógico10, de esta forma al unir dos consultas, en el siguiente ejemplo obtenemos las fechas de contratación
coincidentes con las fechas de nacimientos de los empleados:
Estas son utilizadas para evaluar cálculos matemáticos y/o estadísticos con los datos contenidos en una o más
tablas, estas funciones son:
a. AVG: Entrega el valor promedio de un conjunto de datos, omitiendo los valores NULL.
b. MIN: Entrega el valor mínimo de un conjunto de datos
c. CHECKSUM_AGG: Devuelve la suma de comprobación de los valores de un grupo
d. SUM: Entrega la suma de los valores contenidos en una columna, solo se aplica a
números.
e. COUNT: Entrega el número de elementos contenido en una agrupación o conjunto.
f. STDEV: Entrega la desviación estadística de un conjunto de datos numéricos.
g. COUNT_BIG: Entrega la cantidad de elementos de igual forma que COUNT, pero con un
tipo de entero mayor (bigint).
h. STDEVP: Entrega la desviación estándar de un conjunto de datos.
i. GROUPING: Indica si una expresión de columna especificada en una lista GROUP BY es
agregada o no.
j. VAR: Entrega la varianza de un conjunto de datos numéricos.
k. GROUPING_ID: Es una función que calcula el nivel de agrupación
l. VARP: Devuelve la varianza estadística de un conjunto de datos numéricos.
m. MAX: Entrega el valor máximo de un conjunto de datos.
10
Fuente: https://ebookcentral.proquest.com/lib/ippsp/reader.action?ppg=91&docID=4499125&tm=1526948522688
p. 83
11
Referencia: https://msdn.microsoft.com/es-es/library/ms173454(v=sql.120).aspx
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 17
SELECT CodSucursal,AVG(sueldo)
FROM Empleado
GROUP BY CodSucursal
2.8. EXPRESIONES:
Corresponden en la asignación de encabezado o nombre y al orden que se desee obtener en la salida de datos.
Este tipo de consultas, son utilizadas para resolver problemas complejos, donde un segmento de la
información, o información condicional, se encuentra en la misma tabla o en un conjunto de datos, el siguiente
ejemplo muestra las personas cuyo sueldo sea mayor que el sueldo promedio del departamento 2:
Una vista corresponde a la abstracción de datos mediante una consulta SELECT, con la finalidad de encapsular
los datos de la tabla, y presentar a quien la utiliza un segmento de las tablas, posee la siguiente sintaxis:
En este ejemplo se crea una vista que entregue rut y nombre de los empleados contratados a contar de 2010:
Como fue mencionado en el módulo 1, la ventaja de crear vistas es el encapsular la información a los usuarios.
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 19
Los índices están asociados a mejorar el resultado de las consultas y actualizaciones en una base de datos,
estos son creados por la sentencia CREATE y asociados a una tabla, en este ejemplo se crea un índice
“BusNom”:
Al crear este índice se obtienen mejoras en las consultas realizadas por el campo [Nombre].
El resultado de la ejecución se visualiza en la figura 14.
La concurrencia se relaciona con la cantidad de transacciones que se ejecutan en un SABD, donde toda base
de datos debe soportar que al menos dos usuarios accedan a una base de datos, utilizando consultas y/o
sentencias de actualización o eliminación de datos. El SABD debe controlar que dos o más usuarios intenten
acceder y modificar los datos, utilizando el concepto de transacciones.
VIDEO COMPLEMENTARIO
Los bloqueos y concurrencia son las tareas que encarecen el performance de la base de datos, pero primero
debemos tener claro el concepto de transacción, que se interpreta al completar un conjunto de operaciones
de forma atómica, esto quiere decir no dejar incompleta las operaciones que afectan a los datos, su
característica principal en SQL Server 2016, es la utilización de la palabra reservada TRANSACTION.
IMPORTANTE
a. Atómica: pese a tener muchas operaciones asociadas, para el motor de base de datos es solo una
operación.
b. Consistente: que todas las acciones están acordadas y siguen un patrón o algoritmo.
c. Aislada: para el usuario solo existe la operación a realizar, y no debe tener conocimiento si otro
usuario está utilizando los datos.
d. Durable: permanece en el tiempo
IMPORTANTE
a. BEGIN TRANSATION: la cual indica el inicio de una operación transaccional, puede acarrear más
de una operación, sea esta, INSERT, UPDATE y/o DELETE.
b. COMMIT TRANSACTION: que indica almacenar los cambios efectuados en la base de datos.
c. ROLLBACK TRANSACTION: deshace todas las modificaciones realizadas, dejando los datos en un
estado inicial, esto se aplica cuando ocurre un error durante la transacción.
MATERIAL COMPLEMENTARIO
Usted puede profundizar más de las cualidades de las transacciones en el siguiente link
https://msdn.microsoft.com/es-es/library/ms190925(v=sql.110).aspx
12
https://es.wikipedia.org/wiki/ACID
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 22
Concurrencia de base de datos es cuando varias operaciones se están ejecutando a la vez, el resultado final
sigue siendo el esperado. Depende normalmente en un conjunto de reglas y restricciones que coordinan el
comportamiento de las transacciones, asegurándose de que las diferentes operaciones operan muy bien.
Junto con los conceptos de concurrencia aparecen los bloqueos, explicado en palabras simples es “dos o más
procesos necesitan utilizar un mismo recurso”, como usted administrará y revisará constantemente los
distintos motores de bases de datos, se encontrara muchas veces con este tipo de operaciones, si su duración
es menos a un segundo, es la normalidad de base de datos transacciones, con alto nivel de operaciones, pero
si los tiempos de respuesta aumentan y generan deadlock, dos o más procesos necesitan recursos que entre
ellos lo tienen reservados, produciendo un tiempo de respuesta infinito en el SABD. La solución más útil es
detectar este tipo de bloqueo con el comando SP_WHO, y “matar” al proceso que está requiriendo de recursos
con el comando SP_KILL.
MATERIAL COMPLEMENTARIO
https://technet.microsoft.com/es-es/library/ms174313(v=sql.110).aspx
https://technet.microsoft.com/es-cl/library/ff929106(v=sql.110).aspx
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 23
APORTE A TU FORMACIÓN
Como fue mencionado en la introducción de este módulo, el estudiante puede proyectar su futuro laboral
orientándose en labores como DBA, desarrollo o explotación de datos, podrá tener la certeza que existirá
la necesidad de realizar labores anteriormente mencionadas, producto de la mejora continua de los
sistemas. En la actualidad un gran número de consultas y análisis de datos se resuelven por medio de
consultas SQL, las cuales son utilizadas en análisis de tendencias, proyecciones de datos, informes de
gestión para gerencias o toma de decisiones, etc.
Si analiza lo descrito, el conocer SQL y generar sentencias de forma eficientes, es una labor muy utilizada
en la mayoría de los trabajos, si gusta se puede enfocar en empresas de cobranzas, bancos, empresas
públicas y por, sobre todo, empresas que desarrollan software.
El conocer y utilizar este lenguaje orientado a las bases de datos, aporta en tu vida profesional, dando
fundamentos para rebatir y proponer mejoras a los sistemas existentes en una empresa. Si su caso es
trabajar como DBA, la mayoría de sus labores las generan mediante las instrucciones DDL para la creación
de los objetos de una base de datos, el mayor expositor de esta forma es Oracle, mientras que SQL Server
y otros motores, utilizan interfaces gráficas en la administración, pero esto no quiere decir que solo se
administra por una interfaz, también poseen la administración y gestión utilizando las sentencias de SQL.
Podemos resumir, en todo ambiente laboral que utiliza una base de datos, la forma estándar de
administrar y explotar la información contenida en ella es utilizando las sentencias SQL, independiente el
sistema operativo o el motor de base de datos, las variaciones entre un SQL Server y un Oracle, por
ejemplo, son las mínimas, al momento de realizar manipulación de información, y este punto es el que
más se debe destacar y enfocar el estudiante, para su proyección laboral.
Área: NEGOCIOS M2
Curso: BASE DE DATOS
Obligatoria
Marqués, M. (2009). Bases de datos. Pp. 41 a 93.
Complementaria
Silberschatz, A., Korth, H. F., & Sudarshan, S. (2006). Fundamentos de bases de datos (5a. ed.). Pp. 101 a 132.