Podcast
Questions and Answers
¿Cuál de las siguientes sentencias es utilizada para crear una base de datos en SQL?
¿Cuál de las siguientes sentencias es utilizada para crear una base de datos en SQL?
¿Cuál es el nombre de la base de datos system en SQL Server que almacena información de configuración y archivos de registro?
¿Cuál es el nombre de la base de datos system en SQL Server que almacena información de configuración y archivos de registro?
¿Cuál es la instrucción correcta para eliminar una columna de una tabla en SQL?
¿Cuál es la instrucción correcta para eliminar una columna de una tabla en SQL?
¿Cuál es la instrucción correcta para eliminar filas de una tabla en SQL?
¿Cuál es la instrucción correcta para eliminar filas de una tabla en SQL?
Signup and view all the answers
¿Cuáles son operadores de condición en SQL?
¿Cuáles son operadores de condición en SQL?
Signup and view all the answers
¿Cuál es la condición para realizar una unión de instrucciones SELECT en SQL?
¿Cuál es la condición para realizar una unión de instrucciones SELECT en SQL?
Signup and view all the answers
¿Cómo se delimita una tabla con espacios en blanco en su nombre en MySQL?
¿Cómo se delimita una tabla con espacios en blanco en su nombre en MySQL?
Signup and view all the answers
¿En qué sistema de gestión de bases de datos es correcta la expresión SELECT INSERT('lmn', 2, 1, 'def')?
¿En qué sistema de gestión de bases de datos es correcta la expresión SELECT INSERT('lmn', 2, 1, 'def')?
Signup and view all the answers
¿Cuál es la operación en Álgebra Relacional que se denota como T ⨝ S?
¿Cuál es la operación en Álgebra Relacional que se denota como T ⨝ S?
Signup and view all the answers
¿Qué significa la sigla DML en SQL?
¿Qué significa la sigla DML en SQL?
Signup and view all the answers
¿Qué es OLTP?
¿Qué es OLTP?
Signup and view all the answers
¿En qué tipo de datos no es aplicable el uso de la propiedad 'Identity' en SQL Server?
¿En qué tipo de datos no es aplicable el uso de la propiedad 'Identity' en SQL Server?
Signup and view all the answers
¿Cuál es la instrucción SQL para actualizar filas o tuplas?
¿Cuál es la instrucción SQL para actualizar filas o tuplas?
Signup and view all the answers
¿Qué es la combinación natural en Álgebra Relacional?
¿Qué es la combinación natural en Álgebra Relacional?
Signup and view all the answers
¿Qué instrucción SQL se utiliza para seleccionar todos los clientes que no tienen FAX?
¿Qué instrucción SQL se utiliza para seleccionar todos los clientes que no tienen FAX?
Signup and view all the answers
¿Qué instrucción SQL se utiliza para obtener todos los productos cuyo nombre termine con la letra 'I'?
¿Qué instrucción SQL se utiliza para obtener todos los productos cuyo nombre termine con la letra 'I'?
Signup and view all the answers
¿Cuál es la categoría de instrucción SQL que incluye instrucciones como INSERT, UPDATE y DELETE?
¿Cuál es la categoría de instrucción SQL que incluye instrucciones como INSERT, UPDATE y DELETE?
Signup and view all the answers
¿Cuál es el nombre de la operación que se utiliza para combinar dos relaciones en Álgebra Relacional?
¿Cuál es el nombre de la operación que se utiliza para combinar dos relaciones en Álgebra Relacional?
Signup and view all the answers
¿Qué clausula se utiliza en MySQL para limitar el número de filas devueltas en una consulta?
¿Qué clausula se utiliza en MySQL para limitar el número de filas devueltas en una consulta?
Signup and view all the answers
¿Cuál es la función utilizada para obtener la fecha y hora actual en SQL Server?
¿Cuál es la función utilizada para obtener la fecha y hora actual en SQL Server?
Signup and view all the answers
¿Cómo se concatenan cadenas en MySQL?
¿Cómo se concatenan cadenas en MySQL?
Signup and view all the answers
¿Qué tipo de datos se utiliza para almacenar texto en grandes cantidades en SQL Server?
¿Qué tipo de datos se utiliza para almacenar texto en grandes cantidades en SQL Server?
Signup and view all the answers
¿Qué palabra clave se usa en MySQL para definir un incremento automático de ID?
¿Qué palabra clave se usa en MySQL para definir un incremento automático de ID?
Signup and view all the answers
¿Cuál es el equivalente de la función LEN() en MySQL para obtener la longitud de una cadena?
¿Cuál es el equivalente de la función LEN() en MySQL para obtener la longitud de una cadena?
Signup and view all the answers
¿Cuál es la función de generación de UUID en SQL Server?
¿Cuál es la función de generación de UUID en SQL Server?
Signup and view all the answers
¿Cómo se define una transacción anidada en MySQL?
¿Cómo se define una transacción anidada en MySQL?
Signup and view all the answers
La sentencia SQL ORDER BY posición_columna se utiliza para ordenar por varias columnas.
La sentencia SQL ORDER BY posición_columna se utiliza para ordenar por varias columnas.
Signup and view all the answers
La cláusula ORDER BY se utiliza después de la cláusula FROM en una sentencia SQL.
La cláusula ORDER BY se utiliza después de la cláusula FROM en una sentencia SQL.
Signup and view all the answers
La sentencia SQL ORDER BY columna1, columna2 ordena primero por columna2 y luego por columna1.
La sentencia SQL ORDER BY columna1, columna2 ordena primero por columna2 y luego por columna1.
Signup and view all the answers
La sentencia SQL ORDER BY 1, 3 ordena por la primera y tercera columna de la tabla.
La sentencia SQL ORDER BY 1, 3 ordena por la primera y tercera columna de la tabla.
Signup and view all the answers
La cláusula ORDER BY no es una parte de la sintaxis DML.
La cláusula ORDER BY no es una parte de la sintaxis DML.
Signup and view all the answers
La sentencia SQL SELECT columna1, columna2 FROM tabla ORDER BY columna1 ordena la tabla en orden ascendente.
La sentencia SQL SELECT columna1, columna2 FROM tabla ORDER BY columna1 ordena la tabla en orden ascendente.
Signup and view all the answers
La sentencia SQL ORDER BY columna1 DESC ordena la tabla en orden ascendente.
La sentencia SQL ORDER BY columna1 DESC ordena la tabla en orden ascendente.
Signup and view all the answers
La cláusula ORDER BY se utiliza solo con la sentencia SQL SELECT.
La cláusula ORDER BY se utiliza solo con la sentencia SQL SELECT.
Signup and view all the answers
La sentencia SQL ORDER BY columna1, columna2 ordena por la última columna especificada.
La sentencia SQL ORDER BY columna1, columna2 ordena por la última columna especificada.
Signup and view all the answers
La cláusula ORDER BY se utiliza para ordenar filas en una tabla.
La cláusula ORDER BY se utiliza para ordenar filas en una tabla.
Signup and view all the answers
Las subconsultas autocontenidas escalares devuelven múltiples valores para una misma columna.
Las subconsultas autocontenidas escalares devuelven múltiples valores para una misma columna.
Signup and view all the answers
Una subconsulta escalar es válida si devuelve más de un valor.
Una subconsulta escalar es válida si devuelve más de un valor.
Signup and view all the answers
Si una subconsulta escalar no devuelve ningún valor, la consulta principal devuelve resultados.
Si una subconsulta escalar no devuelve ningún valor, la consulta principal devuelve resultados.
Signup and view all the answers
Las subconsultas autocontenidas multivaluadas devuelven un único valor para una columna.
Las subconsultas autocontenidas multivaluadas devuelven un único valor para una columna.
Signup and view all the answers
Se pueden utilizar predicados como IN para evaluar los resultados de subconsultas escalares.
Se pueden utilizar predicados como IN para evaluar los resultados de subconsultas escalares.
Signup and view all the answers
Se puede utilizar una subconsulta escalar en cualquier lugar de la consulta principal.
Se puede utilizar una subconsulta escalar en cualquier lugar de la consulta principal.
Signup and view all the answers
Las subconsultas autocontenidas escalares son difíciles de probar.
Las subconsultas autocontenidas escalares son difíciles de probar.
Signup and view all the answers
La siguiente consulta es una subconsulta autocontenida escalar: SELECT OrderID FROM Orders WHERE EmployeeID = (SELECT E.EmployeeID FROM Employees AS E WHERE E.LastName LIKE 'C%');
La siguiente consulta es una subconsulta autocontenida escalar: SELECT OrderID FROM Orders WHERE EmployeeID = (SELECT E.EmployeeID FROM Employees AS E WHERE E.LastName LIKE 'C%');
Signup and view all the answers
La siguiente consulta produce un error en tiempo de ejecución: SELECT OrderID FROM Orders WHERE OrderID = (SELECT MAX(O.OrderID) FROM Orders AS O);
La siguiente consulta produce un error en tiempo de ejecución: SELECT OrderID FROM Orders WHERE OrderID = (SELECT MAX(O.OrderID) FROM Orders AS O);
Signup and view all the answers
Las subconsultas autocontenidas multivaluadas se evalúan con predicados como =.
Las subconsultas autocontenidas multivaluadas se evalúan con predicados como =.
Signup and view all the answers
La instrucción CREATE VIEW se utiliza para eliminar una vista en SQL.
La instrucción CREATE VIEW se utiliza para eliminar una vista en SQL.
Signup and view all the answers
En una vista, todas las columnas deben tener nombre.
En una vista, todas las columnas deben tener nombre.
Signup and view all the answers
La instrucción DROP VIEW se utiliza para eliminar una tabla en SQL.
La instrucción DROP VIEW se utiliza para eliminar una tabla en SQL.
Signup and view all the answers
En una vista, se puede utilizar la cláusula ORDER BY.
En una vista, se puede utilizar la cláusula ORDER BY.
Signup and view all the answers
Una vista se puede utilizar como si fuera una tabla en SQL.
Una vista se puede utilizar como si fuera una tabla en SQL.
Signup and view all the answers
La instrucción CREATE VIEW se utiliza para crear una tabla en SQL.
La instrucción CREATE VIEW se utiliza para crear una tabla en SQL.
Signup and view all the answers
Las vistas se almacenan en la base de datos como objetos físicos.
Las vistas se almacenan en la base de datos como objetos físicos.
Signup and view all the answers
La definición de una vista se puede cambiar después de crearla.
La definición de una vista se puede cambiar después de crearla.
Signup and view all the answers
Las vistas se utilizan comúnmente para simplificar consultas complejas.
Las vistas se utilizan comúnmente para simplificar consultas complejas.
Signup and view all the answers
Las vistas se pueden utilizar para mejorar el rendimiento de las consultas.
Las vistas se pueden utilizar para mejorar el rendimiento de las consultas.
Signup and view all the answers
La operación de unión en Álgebra Relacional se puede expresar de varias formas, pero siempre se utiliza la notación ∪.
La operación de unión en Álgebra Relacional se puede expresar de varias formas, pero siempre se utiliza la notación ∪.
Signup and view all the answers
La operación de proyección en Álgebra Relacional se denota como ∪.
La operación de proyección en Álgebra Relacional se denota como ∪.
Signup and view all the answers
La relación EMPLEADOS_ADM se encuentra en la base de datos RELAX.
La relación EMPLEADOS_ADM se encuentra en la base de datos RELAX.
Signup and view all the answers
La expresión R = π nombre, apellido (EMPLEADOS_ADM ∪ EMPLEADOS_PROD) es una forma de obtener los nombres y apellidos de todos los empleados.
La expresión R = π nombre, apellido (EMPLEADOS_ADM ∪ EMPLEADOS_PROD) es una forma de obtener los nombres y apellidos de todos los empleados.
Signup and view all the answers
La relación ARTÍCULOS tiene un atributo llamado NPROV.
La relación ARTÍCULOS tiene un atributo llamado NPROV.
Signup and view all the answers
La relación PROVEEDORES tiene un atributo llamado DESCR.
La relación PROVEEDORES tiene un atributo llamado DESCR.
Signup and view all the answers
La operación de unión en Álgebra Relacional se utiliza para obtener los atributos comunes de dos relaciones.
La operación de unión en Álgebra Relacional se utiliza para obtener los atributos comunes de dos relaciones.
Signup and view all the answers
La relación CONTRATOS tiene un atributo llamado CIUDAD.
La relación CONTRATOS tiene un atributo llamado CIUDAD.
Signup and view all the answers
La operación de proyección en Álgebra Relacional se utiliza para obtener todos los registros de una relación.
La operación de proyección en Álgebra Relacional se utiliza para obtener todos los registros de una relación.
Signup and view all the answers
¿Qué se obtiene al combinar dos relaciones en Álgebra Relacional?
¿Qué se obtiene al combinar dos relaciones en Álgebra Relacional?
Signup and view all the answers
La combinación natural se aplica a relaciones que no tienen nombres de atributos comunes.
La combinación natural se aplica a relaciones que no tienen nombres de atributos comunes.
Signup and view all the answers
¿Qué se llama a la combinación que se obtiene al igualar todas las parejas de atributos que tienen el mismo nombre en dos relaciones?
¿Qué se llama a la combinación que se obtiene al igualar todas las parejas de atributos que tienen el mismo nombre en dos relaciones?
Signup and view all the answers
El producto cartesiano de T y S se indica como _______.
El producto cartesiano de T y S se indica como _______.
Signup and view all the answers
Match the following relational operations with their descriptions:
Match the following relational operations with their descriptions:
Signup and view all the answers
La combinación natural se aplica a relaciones que no tienen atributos superfluos.
La combinación natural se aplica a relaciones que no tienen atributos superfluos.
Signup and view all the answers
¿Qué condiciones deben cumplir dos relaciones para que su producto cartesiano sea posible?
¿Qué condiciones deben cumplir dos relaciones para que su producto cartesiano sea posible?
Signup and view all the answers
¿Qué se llama a la operación que obtiene una nueva relación formada por todas las tuplas que resultan de concadenar tuplas de la primera relación con tuplas de la segunda?
¿Qué se llama a la operación que obtiene una nueva relación formada por todas las tuplas que resultan de concadenar tuplas de la primera relación con tuplas de la segunda?
Signup and view all the answers
La extensión de la relación resultante de T ⨝ B S es el conjunto de tuplas que pertenecen a la extensión del _______ T x S.
La extensión de la relación resultante de T ⨝ B S es el conjunto de tuplas que pertenecen a la extensión del _______ T x S.
Signup and view all the answers
La división es una operación que combina dos relaciones en una nueva relación.
La división es una operación que combina dos relaciones en una nueva relación.
Signup and view all the answers
¿Cuál de las siguientes opciones es un tipo de sistema de base de datos?
¿Cuál de las siguientes opciones es un tipo de sistema de base de datos?
Signup and view all the answers
En MySQL, la base de datos 'mysql' contiene tablas con la información requerida por el servidor.
En MySQL, la base de datos 'mysql' contiene tablas con la información requerida por el servidor.
Signup and view all the answers
¿Cuál es el nombre del lenguaje que se utiliza para controlar transacciones en bases de datos?
¿Cuál es el nombre del lenguaje que se utiliza para controlar transacciones en bases de datos?
Signup and view all the answers
En MySQL, el sistema de archivos por defecto para los datos es ______________
En MySQL, el sistema de archivos por defecto para los datos es ______________
Signup and view all the answers
Match the following database systems with their characteristics:
Match the following database systems with their characteristics:
Signup and view all the answers
¿Cuál de las siguientes opciones es una base de datos del sistema en SQL Server?
¿Cuál de las siguientes opciones es una base de datos del sistema en SQL Server?
Signup and view all the answers
¿Cuál es el propósito principal de SQL?
¿Cuál es el propósito principal de SQL?
Signup and view all the answers
SQL es principalmente un lenguaje procedimental.
SQL es principalmente un lenguaje procedimental.
Signup and view all the answers
¿Qué es DDL en SQL?
¿Qué es DDL en SQL?
Signup and view all the answers
Las sentencias SQL se clasifican en dos grupos: DDL y _______________.
Las sentencias SQL se clasifican en dos grupos: DDL y _______________.
Signup and view all the answers
Match the following SQL concepts with their definitions:
Match the following SQL concepts with their definitions:
Signup and view all the answers
SQL se introdujo como lenguaje de consulta del Sistema R.
SQL se introdujo como lenguaje de consulta del Sistema R.
Signup and view all the answers
¿Cuál es el propósito de una clave foránea en una base de datos?
¿Cuál es el propósito de una clave foránea en una base de datos?
Signup and view all the answers
Una clave primaria puede admitir valores nulos.
Una clave primaria puede admitir valores nulos.
Signup and view all the answers
¿Cuál es la función de una restricción DEFAULT en una base de datos?
¿Cuál es la función de una restricción DEFAULT en una base de datos?
Signup and view all the answers
Una clave única permite un valor _______________.
Una clave única permite un valor _______________.
Signup and view all the answers
Match the following types of restrictions with their descriptions:
Match the following types of restrictions with their descriptions:
Signup and view all the answers
Una clave foránea puede referenciar a una clave candidata de la misma tabla.
Una clave foránea puede referenciar a una clave candidata de la misma tabla.
Signup and view all the answers
¿Cuál es la diferencia entre una clave primaria y una clave única?
¿Cuál es la diferencia entre una clave primaria y una clave única?
Signup and view all the answers
¿Cuál es la función de una clave primaria en una tabla?
¿Cuál es la función de una clave primaria en una tabla?
Signup and view all the answers
La deshabilitación de la comprobación de las restricciones se aplica solo a las restricciones CHECK.
La deshabilitación de la comprobación de las restricciones se aplica solo a las restricciones CHECK.
Signup and view all the answers
¿Qué operador de condición se utiliza para buscar un patrón en una cadena?
¿Qué operador de condición se utiliza para buscar un patrón en una cadena?
Signup and view all the answers
La regla de agrupamiento dice que cada columna no calculada que aparece en el SELECT debe aparecer también en el ____________________.
La regla de agrupamiento dice que cada columna no calculada que aparece en el SELECT debe aparecer también en el ____________________.
Signup and view all the answers
¿Qué función se utiliza para concatenar cadenas en T-SQL?
¿Qué función se utiliza para concatenar cadenas en T-SQL?
Signup and view all the answers
La cláusula FOREIGN KEY crea índices automáticos.
La cláusula FOREIGN KEY crea índices automáticos.
Signup and view all the answers
Match the following types of constraints with their descriptions:
Match the following types of constraints with their descriptions:
Signup and view all the answers
¿Qué opción se utiliza para deshabilitar la comprobación de las restricciones al agregar una nueva restricción?
¿Qué opción se utiliza para deshabilitar la comprobación de las restricciones al agregar una nueva restricción?
Signup and view all the answers
¿Dónde se pueden utilizar alias en una consulta SQL?
¿Dónde se pueden utilizar alias en una consulta SQL?
Signup and view all the answers
Las subconsultas autocontenidas son dependientes de la consulta principal.
Las subconsultas autocontenidas son dependientes de la consulta principal.
Signup and view all the answers
¿Cuál es la clasificación de subconsultas según la cantidad de valores que devuelve?
¿Cuál es la clasificación de subconsultas según la cantidad de valores que devuelve?
Signup and view all the answers
Las subconsultas autocontenidas multivaluadas deben evaluarse con predicados como ___.
Las subconsultas autocontenidas multivaluadas deben evaluarse con predicados como ___.
Signup and view all the answers
Relaciona las siguientes características de subconsultas con su tipo:
Relaciona las siguientes características de subconsultas con su tipo:
Signup and view all the answers
Una subconsulta escalar es válida si devuelve más de un valor.
Una subconsulta escalar es válida si devuelve más de un valor.
Signup and view all the answers
¿Qué sucede si una subconsulta escalar no devuelve ningún valor?
¿Qué sucede si una subconsulta escalar no devuelve ningún valor?
Signup and view all the answers
¿Cuál es el propósito principal de utilizar subconsultas en SQL?
¿Cuál es el propósito principal de utilizar subconsultas en SQL?
Signup and view all the answers
¿Cuál es el operador lógico utilizado para representar la conjunción en Álgebra Relacional?
¿Cuál es el operador lógico utilizado para representar la conjunción en Álgebra Relacional?
Signup and view all the answers
La instrucción SQL ORDER BY se utiliza solo con la sentencia SQL SELECT.
La instrucción SQL ORDER BY se utiliza solo con la sentencia SQL SELECT.
Signup and view all the answers
¿Cuál es el nombre de la base de datos utilizada en los ejemplos de SQL?
¿Cuál es el nombre de la base de datos utilizada en los ejemplos de SQL?
Signup and view all the answers
La instrucción SQL para seleccionar los países diferentes sin repetidos de la tabla de clientes es: SELECT DISTINCT ____________ FROM Customers.
La instrucción SQL para seleccionar los países diferentes sin repetidos de la tabla de clientes es: SELECT DISTINCT ____________ FROM Customers.
Signup and view all the answers
Match the following SQL queries with their purposes:
Match the following SQL queries with their purposes:
Signup and view all the answers
En Álgebra Relacional, ¿cuál es la operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concatenar tuplas de la primera relación con tuplas de la segunda?
En Álgebra Relacional, ¿cuál es la operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concatenar tuplas de la primera relación con tuplas de la segunda?
Signup and view all the answers
En SQL, la eliminación de filas duplicadas en el resultado de una consulta se realiza mediante la utilización de la cláusula DISTINCT.
En SQL, la eliminación de filas duplicadas en el resultado de una consulta se realiza mediante la utilización de la cláusula DISTINCT.
Signup and view all the answers
¿Cuál es la sigla que se refiere a Database Manipulation Language en SQL?
¿Cuál es la sigla que se refiere a Database Manipulation Language en SQL?
Signup and view all the answers
En MySQL, para utilizar una tabla que tiene espacios en blanco en su nombre, como Order Details de la base Northwind, se debe delimitar con ________________.
En MySQL, para utilizar una tabla que tiene espacios en blanco en su nombre, como Order Details de la base Northwind, se debe delimitar con ________________.
Signup and view all the answers
Matching: seleccione la opción que mejor se ajusta a cada función
Matching: seleccione la opción que mejor se ajusta a cada función
Signup and view all the answers
¿Cuál es la función de la cláusula GROUP BY en una sentencia SQL?
¿Cuál es la función de la cláusula GROUP BY en una sentencia SQL?
Signup and view all the answers
En SQL, las funciones de agregación realizan cálculos sobre múltiples registros.
En SQL, las funciones de agregación realizan cálculos sobre múltiples registros.
Signup and view all the answers
La cláusula ORDER BY se utiliza solo con la sentencia SQL SELECT.
La cláusula ORDER BY se utiliza solo con la sentencia SQL SELECT.
Signup and view all the answers
¿Cuál es la cláusula que se utiliza en SQL para especificar las filas que cumplen con determinada condición?
¿Cuál es la cláusula que se utiliza en SQL para especificar las filas que cumplen con determinada condición?
Signup and view all the answers
En SQL, ¿cuál es la cláusula que se utiliza para eliminar filas duplicadas en el resultado de una consulta?
En SQL, ¿cuál es la cláusula que se utiliza para eliminar filas duplicadas en el resultado de una consulta?
Signup and view all the answers
¿Cuál es la función de la sentencia SQL SUM en una consulta?
¿Cuál es la función de la sentencia SQL SUM en una consulta?
Signup and view all the answers
El resultado de la consulta SELECT c.CategoryName, SUM(od.Quantity) AS CANTIDAD, SUM(od.Quantity * od.UnitPrice) AS IMPORTETOTAL ...
es una tabla con las categorías de productos y sus correspondientes ______________ y ______________.
El resultado de la consulta SELECT c.CategoryName, SUM(od.Quantity) AS CANTIDAD, SUM(od.Quantity * od.UnitPrice) AS IMPORTETOTAL ...
es una tabla con las categorías de productos y sus correspondientes ______________ y ______________.
Signup and view all the answers
Match the SQL keywords with their functions:
Match the SQL keywords with their functions:
Signup and view all the answers
¿Cuál es el resultado de la consulta SELECT ProductID, ProductName FROM Products WHERE ProductName LIKE '%i' AND UnitPrice BETWEEN 20 AND 50
?
¿Cuál es el resultado de la consulta SELECT ProductID, ProductName FROM Products WHERE ProductName LIKE '%i' AND UnitPrice BETWEEN 20 AND 50
?
Signup and view all the answers
¿Cuál es el propósito de la cláusula WHERE en una sentencia SQL?
¿Cuál es el propósito de la cláusula WHERE en una sentencia SQL?
Signup and view all the answers
La consulta SELECT TOP 3 ProductID, ProductName, UnitPrice FROM Products WHERE CategoryID IN (3, 5, 8) ORDER BY UnitPrice
devuelve los ______________ productos con menor precio de las categorías 3, 5 y 8.
La consulta SELECT TOP 3 ProductID, ProductName, UnitPrice FROM Products WHERE CategoryID IN (3, 5, 8) ORDER BY UnitPrice
devuelve los ______________ productos con menor precio de las categorías 3, 5 y 8.
Signup and view all the answers
¿Qué tipo de join se utiliza en la sentencia SQL para obtener la lista de empleados con sus jefes?
¿Qué tipo de join se utiliza en la sentencia SQL para obtener la lista de empleados con sus jefes?
Signup and view all the answers
La sentencia SQL para calcular el total solicitado en 1997, agrupado por categoría de producto, utiliza la cláusula HAVING.
La sentencia SQL para calcular el total solicitado en 1997, agrupado por categoría de producto, utiliza la cláusula HAVING.
Signup and view all the answers
¿Cuál es el nombre de la columna que se utiliza para contar el número de órdenes por producto?
¿Cuál es el nombre de la columna que se utiliza para contar el número de órdenes por producto?
Signup and view all the answers
La sentencia SQL para obtener la lista de empleados con sus jefes utiliza la función _______________ para reemplazar los valores nulos.
La sentencia SQL para obtener la lista de empleados con sus jefes utiliza la función _______________ para reemplazar los valores nulos.
Signup and view all the answers
Match the following SQL queries with their descriptions:
Match the following SQL queries with their descriptions:
Signup and view all the answers
La sentencia SQL para obtener la lista de productos con el número de órdenes utiliza la cláusula HAVING.
La sentencia SQL para obtener la lista de productos con el número de órdenes utiliza la cláusula HAVING.
Signup and view all the answers
¿Cuál es el propósito de la cláusula SELECT en SQL?
¿Cuál es el propósito de la cláusula SELECT en SQL?
Signup and view all the answers
La cláusula GROUP BY se utiliza para filtrar datos basados en condiciones.
La cláusula GROUP BY se utiliza para filtrar datos basados en condiciones.
Signup and view all the answers
¿Cuál es el nombre de la cláusula que se utiliza para filtrar grupos basados en condiciones?
¿Cuál es el nombre de la cláusula que se utiliza para filtrar grupos basados en condiciones?
Signup and view all the answers
La cláusula _______ se utiliza para combinar datos de múltiples tablas.
La cláusula _______ se utiliza para combinar datos de múltiples tablas.
Signup and view all the answers
Match the following SQL clauses with their purposes:
Match the following SQL clauses with their purposes:
Signup and view all the answers
La cláusula UNION se utiliza para eliminar filas de una tabla.
La cláusula UNION se utiliza para eliminar filas de una tabla.
Signup and view all the answers
¿Cuál es el tipo de JOIN que devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha?
¿Cuál es el tipo de JOIN que devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha?
Signup and view all the answers
La cláusula _______ se utiliza para ordenar datos en ascendente o descendente.
La cláusula _______ se utiliza para ordenar datos en ascendente o descendente.
Signup and view all the answers
¿Cuál es el propósito de la cláusula SELECT en SQL?
¿Cuál es el propósito de la cláusula SELECT en SQL?
Signup and view all the answers
La cláusula HAVING se utiliza para filtrar datos agrupados.
La cláusula HAVING se utiliza para filtrar datos agrupados.
Signup and view all the answers
¿Cuál es el propósito de la cláusula LIMIT en SQL?
¿Cuál es el propósito de la cláusula LIMIT en SQL?
Signup and view all the answers
La cláusula _________ se utiliza para filtrar datos basados en condiciones.
La cláusula _________ se utiliza para filtrar datos basados en condiciones.
Signup and view all the answers
Match the following programming languages with their primary usage:
Match the following programming languages with their primary usage:
Signup and view all the answers
La cláusula JOIN se utiliza para combinar datos de varias tablas.
La cláusula JOIN se utiliza para combinar datos de varias tablas.
Signup and view all the answers
¿Cuál es el propósito de la cláusula ORDER BY en SQL?
¿Cuál es el propósito de la cláusula ORDER BY en SQL?
Signup and view all the answers
¿Cuál de las siguientes cláusulas se utiliza para agrupar datos según una o varias columnas?
¿Cuál de las siguientes cláusulas se utiliza para agrupar datos según una o varias columnas?
Signup and view all the answers
¿Cuál es la función utilizada para obtener la fecha y hora actual en MySQL?
¿Cuál es la función utilizada para obtener la fecha y hora actual en MySQL?
Signup and view all the answers
¿Cuál es la cláusula utilizada en SQL Server para crear un índice de texto completo?
¿Cuál es la cláusula utilizada en SQL Server para crear un índice de texto completo?
Signup and view all the answers
¿Cuál es la función utilizada para concatenar cadenas en SQL Server?
¿Cuál es la función utilizada para concatenar cadenas en SQL Server?
Signup and view all the answers
¿Cuál es la cláusula utilizada en MySQL para limitar el número de filas devueltas en una consulta?
¿Cuál es la cláusula utilizada en MySQL para limitar el número de filas devueltas en una consulta?
Signup and view all the answers
¿Cuál es la función utilizada para generar un identificador único en SQL Server?
¿Cuál es la función utilizada para generar un identificador único en SQL Server?
Signup and view all the answers
¿Cuál es la cláusula utilizada en SQL Server para definir una columna que automáticamente incrementa su valor?
¿Cuál es la cláusula utilizada en SQL Server para definir una columna que automáticamente incrementa su valor?
Signup and view all the answers
¿Cuál es la función utilizada para obtener la longitud de una cadena en MySQL?
¿Cuál es la función utilizada para obtener la longitud de una cadena en MySQL?
Signup and view all the answers
¿Cuál es la cláusula utilizada en SQL Server para crear una transacción anidada?
¿Cuál es la cláusula utilizada en SQL Server para crear una transacción anidada?
Signup and view all the answers
¿Cuál es la función utilizada para obtener la fecha y hora actual en MySQL?
¿Cuál es la función utilizada para obtener la fecha y hora actual en MySQL?
Signup and view all the answers
¿Cuál es el equivalente de la función LEN() en MySQL para obtener la longitud de una cadena?
¿Cuál es el equivalente de la función LEN() en MySQL para obtener la longitud de una cadena?
Signup and view all the answers
¿Cuál es la palabra clave utilizada en MySQL para definir un incremento automático de ID?
¿Cuál es la palabra clave utilizada en MySQL para definir un incremento automático de ID?
Signup and view all the answers
¿Cuál es la cláusula utilizada en MySQL para limitar el número de filas devueltas en una consulta?
¿Cuál es la cláusula utilizada en MySQL para limitar el número de filas devueltas en una consulta?
Signup and view all the answers
¿Cuál es la función utilizada para concatenar cadenas en MySQL?
¿Cuál es la función utilizada para concatenar cadenas en MySQL?
Signup and view all the answers
¿Cuál es el tipo de datos utilizado para almacenar texto en grandes cantidades en SQL Server?
¿Cuál es el tipo de datos utilizado para almacenar texto en grandes cantidades en SQL Server?
Signup and view all the answers
¿Cuál es la función de generación de UUID en MySQL?
¿Cuál es la función de generación de UUID en MySQL?
Signup and view all the answers
¿Cuál es la cláusula utilizada en SQL Server para limitar el número de filas devueltas en una consulta?
¿Cuál es la cláusula utilizada en SQL Server para limitar el número de filas devueltas en una consulta?
Signup and view all the answers
Study Notes
Álgebra Relacional
- La combinación natural es una operación que, dados dos relaciones T y S, se denota como T ⨝ S y consiste en una equicombinación seguida de la eliminación de los atributos superfluos.
- La unión es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que están en alguna de las relaciones de partida.
SQL
- DML se refiere a Database Manipulation Language.
- La instrucción correcta para la actualización de filas o tuplas es: UPDATE table_name SET c1 = v1, c2 = v2,...cn = vn [WHERE condition].
- La instrucción correcta para la eliminación de filas es: DELETE FROM table WHERE condition.
- La instrucción correcta para eliminar una columna de la tabla es: ALTER TABLE DROP COLUMN.
- La unión es una operación que requiere: más de una instrucción SELECT, el mismo número de columnas en cada instrucción SELECT y correlación de los pos de datos en los SELECT unidos.
Bases de Datos
- OLTP se refiere a OnLine Transactional Processing.
- En SQL Server, no es aplicable el uso de la propiedad "Identity" entipo de datos Varchar.
Instrucciones SQL
- Los operadores de condición son: Between, NOT, LIKE, etc.
- En MySQL, para utilizar una tabla que tiene espacios en blanco en su nombre, se debe delimitar con comillas invertidas ``.
Sistema de Gestión de Bases de Datos
- En SQL Server y MySQL es correcta la expresión: SELECT INSERT('lmn', 2, 1, 'def').
Funciones y Cláusulas en SQL Server y MySQL
- Limitar filas: TOP en SQL Server y LIMIT en MySQL.
- Concatenación de cadenas: + en SQL Server y CONCAT() en MySQL.
- Obtener fecha y hora actual: GETDATE() o GETUTCDATE() en SQL Server y CURRENT_TIMESTAMP o CURRENT_DATE en MySQL.
- Incremento automático de ID: IDENTITY en SQL Server y AUTO_INCREMENT en MySQL.
- Desplazamiento de filas: OFFSET...FETCH en SQL Server y LIMIT...OFFSET en MySQL.
Fechas y Tiempo
- Obtener fecha y hora actual: GETDATE() o GETUTCDATE() en SQL Server y CURRENT_TIMESTAMP o CURRENT_DATE en MySQL.
- Manipulación de fechas: DATEADD() y DATEDIFF() en SQL Server y DATE_ADD(), DATE_SUB() y DATEDIFF() en MySQL.
Tipos de Datos
- Tipo de dato TEXT: VARCHAR(MAX) en SQL Server y TEXT en MySQL.
- Tipo de dato BLOB: VARBINARY(MAX) en SQL Server y BLOB en MySQL.
- Tipo de dato BOOLEAN: BIT en SQL Server y BOOLEAN en MySQL.
Otros
- Generación de UUID: NEWID() en SQL Server y UUID() en MySQL.
- Manejo de Arrays: no soportado en SQL Server y MySQL.
- JSON: JSON, FOR JSON en SQL Server y JSON en MySQL.
- Tabla temporal: #table, ##table en SQL Server y TEMPORARY TABLE en MySQL.
- Vistas Materializadas: no soportado directamente en SQL Server y MySQL.
- Tipos de datos geométricos: GEOMETRY, GEOGRAPHY en SQL Server y GEOMETRY, POINT, LINESTRING, POLYGON en MySQL.
Optimización y Seguridad
- Optimización de consultas: SET SHOWPLAN_ALL ON, SHOWPLAN_XM en SQL Server y EXPLAIN en MySQL.
- Indices Full-Text: FULLTEXT INDEX en SQL Server y MySQL.
- Bloqueo de tablas: TABLOCK, TABLOCKX en SQL Server y LOCK TABLES en MySQL.
- Inyección de SQL Dinámico: EXEC en SQL Server y PREPARE...EXECUTE en MySQL.
- Cambio de columnas: ALTER COLUMN en SQL Server y MODIFY COLUMN, CHANGE COLUMN en MySQL.
Funciones de Agregado
- Funciones de agregado de datos: STRING_AGG() en SQL Server y GROUP_CONCAT() en MySQL.
Seguridad y Permisos
- Usuarios y permisos: GRANT, REVOKE, DENY en SQL Server y GRANT, REVOKE en MySQL.
- Permisos a nivel de fila: RLS (Row-Level Security) en SQL Server y no soportado directamente en MySQL.
Funciones y Cláusulas en SQL Server y MySQL
- Limitar filas: TOP en SQL Server y LIMIT en MySQL.
- Concatenación de cadenas: + en SQL Server y CONCAT() en MySQL.
- Obtener fecha y hora actual: GETDATE() o GETUTCDATE() en SQL Server y CURRENT_TIMESTAMP o CURRENT_DATE en MySQL.
- Incremento automático de ID: IDENTITY en SQL Server y AUTO_INCREMENT en MySQL.
- Desplazamiento de filas: OFFSET...FETCH en SQL Server y LIMIT...OFFSET en MySQL.
Fechas y Tiempo
- Obtener fecha y hora actual: GETDATE() o GETUTCDATE() en SQL Server y CURRENT_TIMESTAMP o CURRENT_DATE en MySQL.
- Manipulación de fechas: DATEADD() y DATEDIFF() en SQL Server y DATE_ADD(), DATE_SUB() y DATEDIFF() en MySQL.
Tipos de Datos
- Tipo de dato TEXT: VARCHAR(MAX) en SQL Server y TEXT en MySQL.
- Tipo de dato BLOB: VARBINARY(MAX) en SQL Server y BLOB en MySQL.
- Tipo de dato BOOLEAN: BIT en SQL Server y BOOLEAN en MySQL.
Otros
- Generación de UUID: NEWID() en SQL Server y UUID() en MySQL.
- Manejo de Arrays: no soportado en SQL Server y MySQL.
- JSON: JSON, FOR JSON en SQL Server y JSON en MySQL.
- Tabla temporal: #table, ##table en SQL Server y TEMPORARY TABLE en MySQL.
- Vistas Materializadas: no soportado directamente en SQL Server y MySQL.
- Tipos de datos geométricos: GEOMETRY, GEOGRAPHY en SQL Server y GEOMETRY, POINT, LINESTRING, POLYGON en MySQL.
Optimización y Seguridad
- Optimización de consultas: SET SHOWPLAN_ALL ON, SHOWPLAN_XM en SQL Server y EXPLAIN en MySQL.
- Indices Full-Text: FULLTEXT INDEX en SQL Server y MySQL.
- Bloqueo de tablas: TABLOCK, TABLOCKX en SQL Server y LOCK TABLES en MySQL.
- Inyección de SQL Dinámico: EXEC en SQL Server y PREPARE...EXECUTE en MySQL.
- Cambio de columnas: ALTER COLUMN en SQL Server y MODIFY COLUMN, CHANGE COLUMN en MySQL.
Funciones de Agregado
- Funciones de agregado de datos: STRING_AGG() en SQL Server y GROUP_CONCAT() en MySQL.
Seguridad y Permisos
- Usuarios y permisos: GRANT, REVOKE, DENY en SQL Server y GRANT, REVOKE en MySQL.
- Permisos a nivel de fila: RLS (Row-Level Security) en SQL Server y no soportado directamente en MySQL.
Creación de Tablas
- La sintaxis básica para crear una tabla es
CREATE TABLE (atributo1 dominio1 [NOT NULL], ...)
. - Se pueden agregar restricciones PRIMARY KEY, UNIQUE, FOREIGN KEY y CHECK en la tabla.
Restricciones
- PRIMARY KEY: asegura que cada valor en la columna sea único y no nulo.
- UNIQUE: garantiza que cada valor en la columna sea único, pero permite un valor nulo.
- FOREIGN KEY: establece una relación entre dos tablas.
- CHECK: verifica que los datos cumplen una condición especial.
Integridad de Datos
- Integridad de dominio: se refiere a la integridad de las columnas.
- Integridad de entidad: se refiere a la integridad de las filas.
- Integridad referencial: se refiere a la relación entre tablas.
Tipos de Datos
- Numéricos exactos (Enteros y de punto fijo): se utilizan para datos que no requieren decimales.
- Numéricos aproximados: se utilizan para datos que requieren decimales.
- Fecha y Hora: se utilizan para fechas y horas.
- Cadenas de caracteres: se utilizan para texto.
- Cadenas de caracteres Unicode: se utilizan para texto que requiere Unicode.
- Cadenas Binarias: se utilizan para datos binarios.
- Otros: se utilizan para datos especiales.
Creación de Valores de Columnas
- Identity: se utiliza para crear valores únicos y consecutivos.
- Uso de la función NEWID y el tipo de datos uniqueidentifier: se utiliza para crear valores únicos globales.
Agregar y Quitar Columnas
- Agregar columnas: se utiliza para agregar una columna nueva a una tabla existente.
- Quitar columnas: se utiliza para eliminar una columna de una tabla existente.
Restricciones y Índices
- Restricciones: se utilizan para mantener la integridad de los datos.
- Índices: se utilizan para mejorar el rendimiento de las consultas.
Integridad Referencial en Cascada
- NINGUNA: no hace nada cuando se elimina o actualiza una fila.
- CASCADA: actualiza o elimina las filas relacionadas cuando se elimina o actualiza una fila.
- SET NULL: establece las filas relacionadas en NULL cuando se elimina o actualiza una fila.
- SET DEFAULT: establece las filas relacionadas en un valor predeterminado cuando se elimina o actualiza una fila.
Deshabilitación de la Comprobación de las Restricciones
- Se puede deshabilitar la comprobación de las restricciones en los datos existentes y al cargar datos nuevos.
- Se utiliza la opción WITH NOCHECK cuando se agrega una restricción nueva.
Consultas SQL
- Se pueden filtrar rangos de fechas en una consulta utilizando operadores de comparación y funciones de fecha
- Ejemplo:
SELECT OrderID, CustomerID, EmployeeID, OrderDate FROM Orders WHERE OrderDate >= '19970101' AND OrderDate < '19980101';
Funciones de agregación
- Las funciones de agregación se utilizan para calcular resultados utilizando campos de múltiples registros
- Ejemplos de funciones de agregación:
-
COUNT()
: devuelve la cantidad de filas que contienen valores no nulos en un campo específico -
SUM()
: devuelve la suma de los valores en un campo específico -
AVG()
: devuelve el promedio de los valores en un campo específico -
MAX()
: devuelve el valor máximo en un campo específico -
MIN()
: devuelve el valor mínimo en un campo específico
-
- Ejemplo:
SELECT SUM(Quantity) AS TotalUnidades FROM [Order Details] WHERE ProductID = 3;
Agrupamiento y ordenamiento
- El grupo
BY
se utiliza para agrupar resultados según una columna específica - La cláusula
HAVING
se utiliza para filtrar los resultados después de agruparlos - Ejemplo:
SELECT City, COUNT(EmployeeID) AS NumEmpleados FROM Employees GROUP BY City HAVING COUNT(EmployeeID) > 1;
Subconsultas
- Las subconsultas son consultas embebidas dentro de otras consultas
- Se utilizan para obtener información de una tabla basada en información de otra tabla
- Ejemplo:
SELECT CompanyName FROM Customers WHERE CustomerID = (SELECT CustomerID FROM Orders WHERE OrderID = 10290);
Tipos de subconsultas
- Escalares: devuelven un solo valor y son independientes de la consulta principal
- Ejemplo:
SELECT OrderID FROM Orders WHERE EmployeeID = (SELECT E.EmployeeID FROM Employees AS E WHERE E.LastName LIKE 'C%');
- Ejemplo:
- Multivaluadas: devuelven múltiples valores para una misma columna
- Ejemplo:
SELECT CompanyName FROM Customers WHERE CustomerID IN (SELECT CustomerID FROM Orders WHERE YEAR(OrderDate)=1997);
- Ejemplo:
- Expresiones de tabla: devuelven múltiples valores en una tabla derivada
- Autocontenidas: son independientes de la consulta principal y pueden ser ejecutadas por separado
- Correlacionadas: dependen de la consulta principal y se ejecutan en relación con ella
Sintaxis de SELECT con INNER JOIN
- La sintaxis de INNER JOIN es:
SELECT tabla1.columna, tabla2.columna FROM tabla1 JOIN tabla2 ON (tabla1.columna=tabla2.columna) WHERE condiciones
- Devuelve las filas que tienen datos relacionados en ambas tablas
Ejemplo de INNER JOIN
- Selección de ordenes, empleados y clientes:
SELECT o.OrderID, c.CompanyName, e.FirstName, e.LastName FROM Orders o JOIN Employees e ON (e.EmployeeID = o.EmployeeID) JOIN Customers c ON (c.CustomerID = o.CustomerID) WHERE o.ShippedDate > o.RequiredDate AND o.OrderDate > '19980101' ORDER BY c.CompanyName;
Uso de combinaciones externas (LEFT/RIGHT)
- LEFT JOIN devuelve todas las filas de la primera tabla, incluso si no tienen valores relacionados en la segunda tabla
- Sintaxis:
SELECT tabla1.columna, tabla2.columna FROM tabla1 LEFT [OUTER] JOIN tabla2 ON (tabla1.columna=tabla2.columna) WHERE condiciones
- RIGHT JOIN devuelve todas las filas de la segunda tabla, aunque no tenga registros relacionados en la primera tabla
Ejemplo de LEFT JOIN
- Contar empleados y empresas por ciudad:
SELECT COUNT(DISTINCT e.EmployeeID) AS numEmployees, COUNT(DISTINCT c.CustomerID) AS numCompanies, e.City, c.City FROM Employees e LEFT JOIN Customers c ON (e.City = c.City) GROUP BY e.City, c.City ORDER BY numEmployees DESC;
FULL OUTER JOIN
- Devuelve todas las filas de ambas tablas, incluyendo aquellas que no tienen valores relacionados
- Sintaxis en MySQL:
SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id UNION SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.id
Ejemplo de FULL OUTER JOIN
- Contar empleados y empresas por ciudad, incluyendo aquellas que no tienen registros relacionados:
SELECT COUNT(DISTINCT e.EmployeeID) AS numEmployees, COUNT(DISTINCT c.CustomerID) AS numCompanies, e.City AS EmpCity, c.City AS CusCity FROM Employees e FULL JOIN Customers c ON (e.City = c.City) GROUP BY e.City, c.City ORDER BY numEmployees DESC;
Combinación de más de dos tablas
- Posible combinación de varias tablas utilizando INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL OUTER JOIN
Vistas
- Creación de una vista:
CREATE VIEW nombre_vista (columna1, columna2, ...) AS select_statement
- Vista como una tabla virtual que se puede consultar como una tabla normal
- Ejemplo de creación de una vista:
CREATE VIEW USACusts AS SELECT CustomerID, companyname, contactname, contacttitle, address, city, region, postalcode, country, phone, fax FROM Customers WHERE country = N'USA';
Restricciones en vistas
- Todas las columnas deben tener nombre (si se usan expresiones, debe agregarse un alias)
- Los nombres de las columnas deben ser únicos
- No se permite el uso de ORDER BY en la definición de la vista
Modelo Relacional
- Un esquema es la estructura de una relación, que se compone de los atributos y sus tipos de datos.
- La extensión es el conjunto de tuplas que pertenecen a una relación.
- Una tupla es un registro o fila en una relación.
Claves
- Unasuperclave es un conjunto de atributos que identifican de forma única cada tupla en una relación.
- Una clave candidata es un atributo o conjunto de atributos que se pueden utilizar como superclave.
- La clave primaria es el campo o campos que se eligen como identificadores únicos en una relación.
- La clave alternativa es un atributo o conjunto de atributos que pueden ser utilizados como clave primaria, pero no se han seleccionado como tales.
- La clave foránea es un atributo que se refiere a la clave primaria de otra relación.
Álgebra Relacional
- La álgebra relacional se utiliza para especificar consultas en una base de datos relacional.
- Se define una consulta como una serie de pasos que utilizan operaciones del álgebra relacional para construir una nueva relación que contiene los datos que responden a la consulta.
- Las operaciones del álgebra relacional son procedimentales, es decir, los pasos que forman la consulta describen un procedimiento.
- Todas las operaciones del álgebra relacional tienen relaciones como operandos y resultado, lo que se conoce como cierre relacional.
Operaciones del Álgebra Relacional
- Operaciones primitivas: unión, diferencia, producto cartesiano, selección y proyección.
- Operaciones no primitivas: intersección, combinación y división, que se pueden expresar en términos de las operaciones primitivas.
- Operaciones binarias: unión, intersección, diferencia y producto cartesiano.
- Operaciones unarias: selección y proyección.
Operaciones Conjuntistas
- Unión: combina dos relaciones en una sola, con todas las tuplas que están en alguna de las relaciones de partida.
- Intersección: selecciona las tuplas que están en ambas relaciones.
- Diferencia: selecciona las tuplas que están en la primera relación pero no en la segunda.
Producto Cartesiano
- Combina dos relaciones en una sola, con todas las tuplas que resultan de concatenar tuplas de la primera relación con tuplas de la segunda relación.
- La relación resultante tiene todos los atributos de las dos relaciones iniciales.
Operaciones Algebraicas
- La relación r ÷ s es una relación del esquema R - S, que contiene todos los atributos del esquema R que no están en el esquema S.
- La operación división, denotada por ÷, es adecuada para las consultas que incluyen la expresión "para todos".
- Una tupla t está en r ÷ s si y solo si se cumplen dos condiciones:
- t está en π R-S (r)
- Para cada tupla ts de s, hay una tupla tr de r que cumple las dos condiciones siguientes:
- tr [S] = ts [S]
- tr [R - S] = t
Secuencias de Operaciones
- Hay dos posibilidades para formular una consulta en álgebra relacional:
- Utilizar una sola expresión del álgebra que incluya todas las operaciones con los paréntesis necesarios para indicar el orden de aplicación.
- Descomponer la expresión en varios pasos donde cada paso aplique una sola operación y obtenga una relación intermedia que se pueda utilizar en los pasos subsiguientes.
Normalización
- La normalización es un proceso en la teoría de bases de datos que organiza las estructuras de datos en una base de datos para reducir la redundancia y mejorar la integridad de los datos.
- El objetivo principal es asegurar que cada pieza de información solo se almacene una vez, lo que reduce la redundancia y facilita la gestión de los datos.
Formas Normales
- 1FN (Primera forma normal): incluye la eliminación de grupos repetitivos y la identificación de la clave principal de una relación.
- 2FN (Segunda forma normal): verifica si hay datos de relación biunívoca con parte de la clave mencionada (Dependencia Funcional Parcial).
- 3FN (Tercera forma normal): analiza las relaciones para determinar si existe alguna o algunas relaciones biunívocas entre algunos elementos de datos de las mismas, con otro u otros elementos de la relación que no forman parte de la clave principal (Dependencia Funcional Transitiva).
Algebra Relacional
- La álgebra relacional es un lenguaje procedural que describe un procedimiento para construir una nueva relación con los datos que responden a la consulta a partir de las relaciones almacenadas.
- Los lenguajes basados en el álgebra relacional son procedimentales, y tanto los operandos como el resultado son relaciones.
- El resultado de una operación cumplirá todas las características que ya conocemos de las relaciones: no-ordenación de las tuplas, ausencia de tuplas repetidas, etc.
Operaciones Algebraicas
- Las operaciones algebraicas se clasifican en:
- Primitivas: son aquellas operaciones a partir de las cuales podemos definir el resto (Unión, Diferencia, Producto Cartesiano, Selección, Proyección).
- No primitivas: no son necesarias, aunque pueden expresarse en términos de las primitivas (Intersección, Combinación, División).
- Las operaciones algebraicas también se clasifican según el número de relaciones y su parecido a la teoría de conjuntos.
Operaciones específicas
- Asignar: establece el nombre de la relación.
- Redenominar: renombra una relación.
- Selección: σ sirve para elegir algunas tuplas según una condición.
- Proyección: π elimina atributos específicos de una relación.
- Unión: ∪ combina dos relaciones en una sola.
- Intersección: ∩ devuelve las tuplas comunes a dos relaciones.
- Diferencia: devuelve las tuplas que están en una relación pero no en la otra.
- Producto Cartesiano: combina todas las tuplas de dos relaciones en una sola relación.
- Combinación: combina dos relaciones según una condición específica.
- División: devuelve las tuplas que satisfacen una condición en dos relaciones.
Introducción a SQL
- SQL (Structured Query Language) es el lenguaje por excelencia para crear y manipular bases de datos relacionales.
- Permite ser ejecutado directamente dentro de un entorno de trabajo o incrustado dentro del código de un programa escrito en otro lenguaje.
Tipos de sentencias SQL
- Sentencias DDL (Data Definition Language): se utilizan para la creación de una base de datos y todos sus componentes (tablas, índices, relaciones).
- Ejemplos: create, alter, drop
- Sentencias DML (Data Manipulation Language): se utilizan para insertar, borrar, modificar y consultar los datos de una base de datos.
- Ejemplos: select, insert, update, delete, truncate
- Sentencias DCL (Database Control Language): se utilizan para controlar el acceso a la base de datos.
- Ejemplos: GRANT, DENY, REVOKE
- Sentencias TCL (Transaction Control Language): se utilizan para controlar transacciones.
- Ejemplos: COMMIT, ROLLBACK, SAVEPOINT
Tipos de sistemas de bases de datos
- OLTP (OnLine Transactional Processing): sistemas de bases de datos para transacciones en línea.
- DW (DataWarehouse): sistemas de bases de datos para análisis de datos.
- DSA (Data-staging área): sistemas de bases de datos para preparación de datos.
- ETL (Extract, Transform and Load): sistemas de bases de datos para extracción, transformación y carga de datos.
Arquitectura SQL
- Appliance
- Box
- Nube
Sistemas de bases de datos en SQL Server
- Master
- Model
- Tempdb
- Msdb
- Resource
MySQL - Bases de Datos
- mysql: base de datos de sistema que contiene tablas con la información requerida por MySQL server
- information_schema: permite el acceso a la metadata de la base de datos
- performance_schema: características para monitorear la ejecución de MySQL Server a bajo nivel
- Sys: conjunto de objetos que ayudan al DBA y a los desarrolladores a interpretar los datos colectados por el performance_schema
- Archivos físicos: el path por defecto para los datos es: /var/lib/mysql
- Cada directorio corresponde a una base (de Sistema o de Usuario)
- Logs
- InnoDB tablespaces y logs
Restricciones en MySQL
- Clave primaria: identificador único de cada registro (tupla), no admite valores nulos
- Claves candidatas: restricción que colabora con la integridad de datos
- Claves foráneas: permiten cumplir con la regla de integridad referencial, referencian a una clave primaria o candidata de otra tabla
- Restricciones DEFAULT: permiten especificar valores proporcionados por el sistema
- Restricciones CHECK: utilizadas con las instrucciones INSERT y UPDATE, pueden hacer referencia a otras columnas en la misma tabla
- Restricciones PRIMARY KEY: crea un índice exclusivo en las columnas especificadas
- Restricciones UNIQUE: permite un valor nulo y varias restricciones por tabla definidas en una o más columnas
- Restricciones FOREIGN KEY: deben hacer referencia a una clave primaria o unique, proporcionan integridad referencial de varias columnas
Operadores de condición
- Clausula Where
- Between
- In
- Like
- Not
Concatenación
- La concatenación consiste en encadenar diferentes palabras o caracteres
- T-SQL proporciona el operador de signo más (+), la función CONCAT y la función CONCAT_WS para concatenar cadenas
- MySQL solo permite concatenar usando CONCAT y CONCAT_WS
Reglas de agrupamiento
- Cada columna no calculada que aparece en el SELECT debe aparecer también en el GROUP BY
- No se pueden utilizar alias en el HAVING
- Se pueden utilizar alias en el ORDER BY
- Sólo se pueden utilizar campos calculados en el HAVING
- Se deben utilizar alias de campos calculados o campos reales en el ORDER BY
Subconsultas
- Las subconsultas son consultas embebidas dentro de otras consultas
- Se utilizan para obtener información de una tabla basada en información de otra tabla
- Se pueden clasificar según la cantidad esperada de valores que puede devolver una subconsulta:
- Escalar (Un solo valor)
- Multivaluada (Múltiples Valores)
- Expresión de Tabla (Múltiples valores en una Tabla Derivada)
- Se pueden clasificar según la dependencia de la consulta principal:
- Autocontenida
- Correlacionada
Operaciones en Álgebra Relacional
- La operación de producto cartesiano es una operación que, a partir de dos relaciones, obtiene una nueva relación formada por todas las tuplas que resultan de concatenar tuplas de la primera relación con tuplas de la segunda.
DML en SQL
- La sigla DML en SQL se refiere a "Database Manipulation Language" (Lenguaje de Manipulación de Bases de Datos).
Propiedad "Identity" en SQL Server
- La propiedad "Identity" no es aplicable en los tipos de datos varchar, decimal, etc.
Subconsultas en SQL
- Una subconsulta "autocontenida" depende de la consulta principal.
Esquema y Base de Datos en MySQL
- En MySQL, el concepto de base de datos y de esquema son sinónimos.
Eliminación de Filas Duplicadas en SQL
- La eliminación de filas duplicadas en el resultado de una consulta se realiza mediante la utilización de la cláusula DISTINCT.
Cláusula WHERE en SQL
- La especificación de filas que cumplen con determinada condición es posible mediante la cláusula WHERE.
Funciones de Agregación en SQL
- Las funciones de agregación realizan cálculos sobre múltiples registros.
Delimitación de Tablas con Espacios en MySQL
- En MySQL, para utilizar una tabla que tiene espacios en blanco en su nombre, se debe delimitar con comillas inversas
Álgebra Relacional
- La expresión en álgebra relacional que muestra el número de artículo (nro_art) y el peso de los artículos depositados en Trelew es: π nro_art, peso (σ ciudad = ‘Trelew’ (Artículos)).
Consultas en SQL
- Consultas variadas en SQL para obtener información específica, como países, órdenes, productos, categorías, clientes, etc.
Cláusulas y Oraciones SQL - Comparación
Cláusula SELECT
- Se utiliza para seleccionar datos de una tabla de base de datos
- Especifica las columnas que se van a recuperar
- Puede utilizar
*
para seleccionar todas las columnas - Puede utilizar
AS
para renombrar columnas - Puede utilizar
DISTINCT
para eliminar duplicates - Puede utilizar
TOP
oLIMIT
para limitar el número de filas devueltas
Cláusula FROM
- Se utiliza para especificar las tablas desde las que se recuperan datos
- Puede especificar varias tablas utilizando
JOIN
o nombres de tablas separados por comas - Puede utilizar
AS
para renombrar tablas
Cláusula WHERE
- Se utiliza para filtrar datos basados en condiciones
- Puede utilizar operadores lógicos (
AND
,OR
,NOT
) para combinar condiciones - Puede utilizar operadores de comparación (
=
,<>
, etc.) para comparar valores - Puede utilizar
IN
para verificar si un valor está en una lista - Puede utilizar
LIKE
para coincidir patrones
Cláusula GROUP BY
- Se utiliza para agrupar datos según una o varias columnas
- Puede utilizar funciones agregadas (
SUM
,AVG
,MAX
, etc.) para realizar cálculos - Puede utilizar la cláusula
HAVING
para filtrar grupos según condiciones
Cláusula HAVING
- Se utiliza para filtrar grupos según condiciones
- Similar a la cláusula
WHERE
, pero para grupos - Puede utilizar funciones agregadas (
SUM
,AVG
,MAX
, etc.) para realizar cálculos
Cláusula ORDER BY
- Se utiliza para ordenar datos en orden ascendente o descendente
- Puede especificar varias columnas para ordenar
- Puede utilizar
ASC
oDESC
para especificar el orden de la clasificación
Cláusula JOIN
- Se utiliza para combinar datos de varias tablas
- Tipos de uniones:
-
INNER JOIN
: devuelve solo las filas coincidentes -
LEFT JOIN
: devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha -
RIGHT JOIN
: devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda -
FULL JOIN
: devuelve todas las filas de ambas tablas
-
Subconsultas
- Se utilizan para anidar una consulta dentro de otra consulta
- Pueden ser utilizadas en cláusulas
SELECT
,FROM
,WHERE
yHAVING
- Pueden ser correlacionadas o no correlacionadas
Cláusulas UNION e INTERSECT
-
UNION
: combina los conjuntos de resultados de dos o más consultas -
INTERSECT
: devuelve solo las filas comunes a dos o más consultas
Cláusulas SQL
Cláusula SELECT
- Recupera datos de una tabla de base de datos
- Usa la palabra clave
SELECT
seguida de nombres de columna o*
para todas las columnas - Puede dar alias a columnas con
AS
Cláusula FROM
- Especifica las tabla(s) de donde recuperar datos
- Usa la palabra clave
FROM
seguida del nombre de la tabla(s) - Puede combinar datos de varias tablas con
JOIN
Cláusula WHERE
- Filtra datos según condiciones
- Usa la palabra clave
WHERE
seguida de una condición - Puede combinar condiciones con operadores lógicos (
AND
,OR
,NOT
)
Cláusula GROUP BY
- Agrupa datos según una o varias columnas
- Usa la palabra clave
GROUP BY
seguida del nombre de la columna(s) - A menudo se utiliza con funciones agregadas (p. ej.
SUM
,AVG
,COUNT
)
Cláusula HAVING
- Filtra datos agrupados según condiciones
- Usa la palabra clave
HAVING
seguida de una condición - Puede combinar condiciones con operadores lógicos (
AND
,OR
,NOT
)
Cláusula ORDER BY
- Ordena datos en orden ascendente o descendente
- Usa la palabra clave
ORDER BY
seguida del nombre de la columna(s) - Puede especificar el orden con
ASC
oDESC
Cláusula LIMIT
- Limita el número de filas devueltas
- Usa la palabra clave
LIMIT
seguida de un número - Puede usarse con
OFFSET
para especificar la fila de inicio
Cláusula JOIN
- Combina datos de varias tablas
- Usa la palabra clave
JOIN
seguida del tipo de unión (p. ej.INNER
,LEFT
,RIGHT
) - Puede especificar la condición de unión con
ON
Cláusula SUBQUERY
- Una consulta anidada dentro de otra consulta
- Usa paréntesis para encerrar la subconsulta
- Puede filtrar datos o realizar cálculos
SQL Server
- La cláusula TOP se utiliza para limitar el número de filas devueltas en una consulta.
- GETDATE() y GETUTCDATE() se utilizan para obtener la fecha y hora actuales.
- IDENTITY se utiliza para generar números de identificación únicos.
- OFFSET...FETCH se utiliza para paginar resultados.
- LEN() se utiliza para obtener la longitud de una cadena.
- VARCHAR(MAX) y VARBINARY(MAX) se utilizan para almacenar cadenas y datos binarios de longitud variable.
- SAVE TRANSACTION se utiliza para guardar un punto de restauración en una transacción.
- BIT se utiliza para almacenar valores booleanos.
- ROW_NUMBER(), RANK() y DENSE_RANK() se utilizan para numerar filas en una consulta.
- SEQUENCE se utiliza para crear una serie de números.
- NEWID() se utiliza para generar un identificador único.
- JSON se utiliza para trabajar con datos en formato JSON.
- #table y ##table se utilizan para crear tablas temporales.
- GEOMETRY y GEOGRAPHY se utilizan para trabajar con datos geoespaciales.
- SET SHOWPLAN_ALL ON y SHOWPLAN_XML se utilizan para mostrar el plan de ejecución de una consulta.
- FULLTEXT INDEX se utiliza para crear índices de texto completo.
- TABLOCK y TABLOCKX se utilizan para bloquear tablas durante una operación.
- EXEC se utiliza para ejecutar una consulta o un procedimiento almacenado.
- ALTER COLUMN se utiliza para modificar una columna de una tabla.
- DATEADD() y DATEDIFF() se utilizan para calcular fechas y horas.
- STRING_AGG() se utiliza para concatenar cadenas.
- GRANT, REVOKE y DENY se utilizan para administrar permisos.
- COMPUTED COLUMN se utiliza para crear columnas calculadas.
- ROLLUP, CUBE y GROUPING SETS se utilizan para agrupar y resumir datos.
- INSTEAD OF y AFTER se utilizan para crear triggers.
- RLS (Row-Level Security) se utiliza para controlar el acceso a filas individuales.
- DATENAME y DATEPART se utilizan para obtener partes de una fecha.
- CHECKSUM_AGG, COUNT_BIG, STDEV/STDEVP, VAR/VARP se utilizan para calcular estadísticas.
MySQL
- LIMIT se utiliza para limitar el número de filas devueltas en una consulta.
- CONCAT() se utiliza para concatenar cadenas.
- CURRENT_TIMESTAMP y CURRENT_DATE se utilizan para obtener la fecha y hora actuales.
- AUTO_INCREMENT se utiliza para generar números de identificación únicos.
- LIMIT...OFFSET se utiliza para paginar resultados.
- LENGTH() se utiliza para obtener la longitud de una cadena.
- TEXT y BLOB se utilizan para almacenar cadenas y datos binarios de longitud variable.
- SAVEPOINT se utiliza para guardar un punto de restauración en una transacción.
- BOOLEAN se utiliza para almacenar valores booleanos.
- UUID() se utiliza para generar un identificador único.
- JSON se utiliza para trabajar con datos en formato JSON.
- TEMPORARY TABLE se utiliza para crear tablas temporales.
- EXPLAIN se utiliza para mostrar el plan de ejecución de una consulta.
- FULLTEXT INDEX se utiliza para crear índices de texto completo.
- LOCK TABLES se utiliza para bloquear tablas durante una operación.
- PREPARE...EXECUTE se utiliza para preparar y ejecutar una consulta.
- MODIFY COLUMN y CHANGE COLUMN se utilizan para modificar una columna de una tabla.
- DATE_ADD(), DATE_SUB() y DATEDIFF() se utilizan para calcular fechas y horas.
- GROUP_CONCAT() se utiliza para concatenar cadenas.
- GRANT y REVOKE se utilizan para administrar permisos.
- DELIMITER se utiliza para definir un delimitador para una consulta.
- XOR se utiliza para realizar operaciones XOR bit a bit.
- GENERATED ALWAYS AS se utiliza para crear columnas calculadas.
- ROLLUP se utiliza para agrupar y resumir datos.
- BEFORE y AFTER se utilizan para crear triggers.
- TABLESPACE se utiliza para administrar el espacio de tabla.
- DATE_FORMAT se utiliza para formatear fechas.
- NOW se utiliza para obtener la fecha y hora actuales.
- TIMESTAMPDIFF() se utiliza para calcular la diferencia entre fechas.
- MONTHNAME() se utiliza para obtener el nombre del mes.
- STDDEV() y VARIANCE() se utilizan para calcular estadísticas.
- BIT_AND(), BIT_OR() y BIT_XOR() se utilizan para realizar operaciones bit a bit.
- GROUP_CONCAT() se utiliza para concatenar cadenas.
- JSON_ARRAYAGG() y JSON_OBJECTAGG() se utilizan para trabajar con datos en formato JSON.
SQL Server
- La cláusula TOP se utiliza para limitar el número de filas devueltas en una consulta.
- GETDATE() y GETUTCDATE() se utilizan para obtener la fecha y hora actuales.
- IDENTITY se utiliza para generar números de identificación únicos.
- OFFSET...FETCH se utiliza para paginar resultados.
- LEN() se utiliza para obtener la longitud de una cadena.
- VARCHAR(MAX) y VARBINARY(MAX) se utilizan para almacenar cadenas y datos binarios de longitud variable.
- SAVE TRANSACTION se utiliza para guardar un punto de restauración en una transacción.
- BIT se utiliza para almacenar valores booleanos.
- ROW_NUMBER(), RANK() y DENSE_RANK() se utilizan para numerar filas en una consulta.
- SEQUENCE se utiliza para crear una serie de números.
- NEWID() se utiliza para generar un identificador único.
- JSON se utiliza para trabajar con datos en formato JSON.
- #table y ##table se utilizan para crear tablas temporales.
- GEOMETRY y GEOGRAPHY se utilizan para trabajar con datos geoespaciales.
- SET SHOWPLAN_ALL ON y SHOWPLAN_XML se utilizan para mostrar el plan de ejecución de una consulta.
- FULLTEXT INDEX se utiliza para crear índices de texto completo.
- TABLOCK y TABLOCKX se utilizan para bloquear tablas durante una operación.
- EXEC se utiliza para ejecutar una consulta o un procedimiento almacenado.
- ALTER COLUMN se utiliza para modificar una columna de una tabla.
- DATEADD() y DATEDIFF() se utilizan para calcular fechas y horas.
- STRING_AGG() se utiliza para concatenar cadenas.
- GRANT, REVOKE y DENY se utilizan para administrar permisos.
- COMPUTED COLUMN se utiliza para crear columnas calculadas.
- ROLLUP, CUBE y GROUPING SETS se utilizan para agrupar y resumir datos.
- INSTEAD OF y AFTER se utilizan para crear triggers.
- RLS (Row-Level Security) se utiliza para controlar el acceso a filas individuales.
- DATENAME y DATEPART se utilizan para obtener partes de una fecha.
- CHECKSUM_AGG, COUNT_BIG, STDEV/STDEVP, VAR/VARP se utilizan para calcular estadísticas.
MySQL
- LIMIT se utiliza para limitar el número de filas devueltas en una consulta.
- CONCAT() se utiliza para concatenar cadenas.
- CURRENT_TIMESTAMP y CURRENT_DATE se utilizan para obtener la fecha y hora actuales.
- AUTO_INCREMENT se utiliza para generar números de identificación únicos.
- LIMIT...OFFSET se utiliza para paginar resultados.
- LENGTH() se utiliza para obtener la longitud de una cadena.
- TEXT y BLOB se utilizan para almacenar cadenas y datos binarios de longitud variable.
- SAVEPOINT se utiliza para guardar un punto de restauración en una transacción.
- BOOLEAN se utiliza para almacenar valores booleanos.
- UUID() se utiliza para generar un identificador único.
- JSON se utiliza para trabajar con datos en formato JSON.
- TEMPORARY TABLE se utiliza para crear tablas temporales.
- EXPLAIN se utiliza para mostrar el plan de ejecución de una consulta.
- FULLTEXT INDEX se utiliza para crear índices de texto completo.
- LOCK TABLES se utiliza para bloquear tablas durante una operación.
- PREPARE...EXECUTE se utiliza para preparar y ejecutar una consulta.
- MODIFY COLUMN y CHANGE COLUMN se utilizan para modificar una columna de una tabla.
- DATE_ADD(), DATE_SUB() y DATEDIFF() se utilizan para calcular fechas y horas.
- GROUP_CONCAT() se utiliza para concatenar cadenas.
- GRANT y REVOKE se utilizan para administrar permisos.
- DELIMITER se utiliza para definir un delimitador para una consulta.
- XOR se utiliza para realizar operaciones XOR bit a bit.
- GENERATED ALWAYS AS se utiliza para crear columnas calculadas.
- ROLLUP se utiliza para agrupar y resumir datos.
- BEFORE y AFTER se utilizan para crear triggers.
- TABLESPACE se utiliza para administrar el espacio de tabla.
- DATE_FORMAT se utiliza para formatear fechas.
- NOW se utiliza para obtener la fecha y hora actuales.
- TIMESTAMPDIFF() se utiliza para calcular la diferencia entre fechas.
- MONTHNAME() se utiliza para obtener el nombre del mes.
- STDDEV() y VARIANCE() se utilizan para calcular estadísticas.
- BIT_AND(), BIT_OR() y BIT_XOR() se utilizan para realizar operaciones bit a bit.
- GROUP_CONCAT() se utiliza para concatenar cadenas.
- JSON_ARRAYAGG() y JSON_OBJECTAGG() se utilizan para trabajar con datos en formato JSON.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Prueba sobre conceptos de álgebra relacional y lenguaje de manipulación de bases de datos SQL, incluyendo operaciones como combinación natural y unión.