Want to create interactive content? It’s easy in Genially!

Get started free

Actividad 1. Programación y Base de Datos

ROBERTO AREVALILLO HERRAEZ

Created on November 13, 2024

Start designing with a free template

Discover more than 1500 professional designs like these:

Memories Presentation

Pechakucha Presentation

Decades Presentation

Color and Shapes Presentation

Historical Presentation

To the Moon Presentation

Projection Presentation

Transcript

Roberto Arevalillo HerráezProgramación y Base de Datos Primera Actividad BT3. Sistemas de Bases de Datos y el lenguaje SQL

Gestión de bases de datos (0372) Técnico Superior en Administración de Sistemas Informáticos en Red

Iniciar

Indice

Gestión de Bases de Datos

Objetivos

El Diccionario de Datos y el Diagrama E/R

El lenguaje SQL

Herramientas Gráficas Mysql

DDL

DML

Objetivos

Esta unidad tiene como objetvo capacitar en el diseño y administración de base de datos. Para ello se presentan los conceptos clave y técnicas fundamentales del diseño físico de bases de datos y las herramientas a utilizar. Se aprenderá tanto el lenguaje de definición de datos (DDL), como el lenguaje de manipulación de datos (DML). Durante toda la unidad se mostrarán ejemplos ilustrativos para facilitar su comprensión y aplicación práctica.

El Diccionaro de datos y elDiagrama Entidad Relación

El diccionario de datos.

El diccionario de datos trata de documentar los metadatos más ligados a su almacenamiento en la base de datos. Es decir, incluye aspectos técnicos como el tipo de dato, formato, longitud, posibles valores que puede tomar e, incluso, transformaciones sufridas, sin olvidar la definición de cada campo.

Estos metadatos ayudan a los usuarios a entender los datos desde el punto de vista técnico para poder explotarlos adecuadamente. Por este motivo, cada base de datos debería contar con un diccionario de datos actualizado y bien estructurado

+ info

El modelo entidad/relación

Una Entidad es cualquier objeto u elemento (real o abstracto) acerca del cual se pueda almacenar información en la base de datos. En el modelo entidad relación los conjuntos de entidades se representan con un rectángulo dentro del cual se escribe el nombre de la entidad.

Es un modelo para realizar esquemas con la idea de proveer una visión unificada de los datos de un sistema de base de datos. Se pueden utilizarcon cualquier SGBD ya que son conceptuales. Entre los componentes del modelo se encuentran las entidades, las relaciones y los atributos.

El modelo E/R

Relaciones

Representan asociaciones entre entidades, es decir entidades de un conjunto que tienen contacto con entidades de otro conjunto

05

La representación gráfica de las entidades se realiza con un rombo al que se le unen líneas que se dirigen a las entidades, las relaciones tienen nombre (se suele usar un verbo). En el ejemplo anterior podría usarse como nombre de relación, trabajar.

Cardinalidad

Indica el número de relaciones en las que una entidad puede aparecer. Se anota en términos de:

cardinalidad mínima. Indica el número mínimo de asociaciones en las que aparecerá cada ejemplar de la entidad (el valor que se anota es de cero o uno, aunque tenga una cardinalidad mínima de más de uno, se indica sólo un uno)

cardinalidad máxima. Indica el número máximo de relaciones en las que puede aparecer cada ejemplar de la entidad. Puede ser uno, otro valor concreto mayor que uno (tres por ejemplo) o muchos (se representa con n). Normalmente la cardinalidad máxima es 1 ó n

71%

Atributos

Describen propiedades de las entidades y las relaciones. Son fundamentales y establecen la información que deseamos almacenar de cada objeto de la base de datos. El modelo Entidad/Relación clásico los representa con elipses, dentro de las cuales se coloca el nombre del atributo. La elipse se une con una línea a las entidades. El identificador principal o clave es uno o más atributos de una entidad cuyos valores son únicos en cada ejemplar de la entidad

El lenguaje SQL

¿Qué es SQL?

SQL (Structured Query Language) es un lenguaje de consulta utilizado para gestionar y manipular bases de datos relacionales. Proporciona una forma estandarizada de interactuar con los sistemas de gestión de bases de datos relacionales (RDBMS) y realizar diversas operaciones, como consultar datos, definir estructuras de bases de datos, insertar, actualizar y eliminar datos, así como gestionar la seguridad de las bases de datos.

Características y usos clave de SQL

+ info

+ info

+ info

+ info

En esta unidad aprenderemos acerca de DDL y DML

SGDB MySQL

Cada Sistema de Gestión de Bases de Datos (SGBD) utiliza su propia implementación de SQL, basada en el estándar del lenguaje, pero con características y extensiones específicas que lo diferencian

En esta unidad utilizaremos MySQL como sistema gestor de bases de datos para poner en práctica los conceptos aprendidos. MySQL es uno de los SGBD más populares, conocido por su facilidad de uso, rendimiento y amplia adopción en aplicaciones web

DDL Data Denition Language

Índice DDL

Lenguaje de Definición de Datos

Introducción al lenguaje DDL

Creación, Modificación y eliminación de Base de datos

Tablas y tipos de datos

Restricciones de tabla y columna

Introducción al lenguaje DDL

El DDL es la parte del lenguaje SQL que realiza la función de definición de datos del SGBD. Fundamentalmente, se encarga de la creación, modificación y eliminación de los objetos de la base de datos (es decir de los metadatos).

Creación de bases de datos

Crear la base de datos implica indicar los archivos y ubicaciones que se utilizarán para la misma, además de otras indicaciones técnicas y administrativas que no se comentarán en este tema.

en MySQL, la siguiente sentencia crea una nueva base de datos llamada "prueba" con el conjunto de caracteres latin1 y el cotejamiento latin1_swedish_ci

Modificación y eliminación de bases de datos

Además de crear Bases de Datos, Mysql permite la modificación y eliminación de una base de datos.

  • Podemos cambiar el conjunto de caracteres y collation de la base de datos utilizando ALTER DATABASE
  • Para eliminar una base de datos completa, utilizamos el comando DROP DATABASE

Tablas

Una tabla es un objeto de la BD que almacena datos en filas y columnas. La creación de una tabla engloba las definiciones de atributos y/o restricciones

Tipos de Datos

A la hora de crear tablas, hay que indicar el tipo de datos de cada campo. Necesitamos pues conocer los distintos tipos de datos. Describiremos los diferentes tipos así comos sus peculiaridades.

VARCHAR

BLOB

CHAR

Fecha y Hora

Numéricos

ENUM

Tipos numéricos enteros

Estos se utilizan para almacenar números enteros sin decimales en Mysql

TINYINT

BOOL

SMALLINT

MEDIUMINT

INT

tabla resumen

BIGINT

Tipos numéricos. Coma flotante

En MySQL, los tipos de datos numéricos en coma flotante están diseñados para almacenar valores con decimales

FLOAT(p)

DOUBLE

DECIMAL

Almacena números decimales exactos, sin aproximaciones. Se utiliza un byte por cada dígito más algunos bytes adicionales para el signo y la posición decimal

Número con coma flotante. p representa la precisión (número máximo de dígitos). Ocupa 4 bytes

Número de coma flotante de tamaño normal (precisión doble)Ocupa 8 bytes

+ info

+ info

+ info

Comparativa entre float, double y decimal

Tipos de Fechas y Horas

En MySQL, los tipos de datos de fecha y hora se utilizan para almacenar valores relacionados con fechas, horas o ambos

DATE

fechas en formato YYYY-MD-DD

DATETIME

Combinación de fecha y hora

TIMESTAMP

Incluye soporte para zonas horarias

Incluye solo la hora

TIME

TIMESTAMP

Almacena solo un valor de año

YEAR

Comparativa entre tipos de fechas y horas

Crear tabla

La sentencia CREATE TABLE se utiliza para crear una tabla. CREATE TABLE nom_tabla (lista _elementos_tabla) nom_tabla: es un nombre de menos de 30 caracteres. Se compone de dos partes: usuario.nombre , El usuario es el identificador del propietario de la tabla y nombre es el nombre de la tabla. Dentro de la tabla podemos especificar una serie de columnas que contienen datos y restricciones que verifican datos y especifican otras características de la tabla. Cada columna debe tener asignado un tipo de dato válido

Modificar tablas

La definición de una tabla se puede modificar con la instrucción ALTER. Las acciones de modificar incluyen:

modificación de la definición de la columna
Eliminación de columnas.
renombrar tabla

RENAME nombre_tabla_existente TO nuevo_nombre_tabla;

ALTER TABLE nombre_tabla MODIFY [COLUMN] nombre_columna definición_de_ tipo

ALTER TABLE nombre_tabla Drop [COLUMN] nom_colum

Borrar tablas

Para borrar una tabla (tanto la definición como los datos que pudiera contener) se utiliza la sentencia: DROP TABLE nombre_tabla [CASCADE] [ RESTRICT ]; Borrar solamente el contenido de la tabla. TRUNCATE TABLE nombre_tabla

Gestión de restricciones

Como norma general tendremos que pensar en los siguientes tipos de campos:

Claves primarias.

Claves externas.

Campos que se usan en combinaciones de tablas (joins)

Campos sobre los que se realizan búsquedas (Where)

Campos sobre los que se realizan clasificaciones (Order by )

Restricciones de integridad

Las restricciones de integridad se pueden hacer de dos formas:

  • Definición a nivel de columna, en la definición de cada atributo.
  • Definición a nivel de tabla, al final de cada tabla.

Las restricciones de integridad se llaman CONSTRAINTS. Se les puede asignar un nombre o por defecto el SGBD les da uno correlativo.

Restricción de columna

  • Las restricciones de columna son restricciones que afectan a una sola columna. Se utilizan para determinar si un valor propuesto para una columna es válido o no. Las restricciones de columna se evalúan después de validar la entrada según los requisitos de tipo básicos (como asegurarse de que un valor sea un número entero para columnas int).

Restricciones a nivel de tabla

Las restricciones de tabla pueden expresar casi cualquier restricción que una restricción de columna pueda expresar, pero también pueden expresar restricciones que involucran más de una columna. En lugar de adjuntarse a una columna específica, las restricciones de la tabla pueden hacer referencia a cualquiera de las columnas de la tabla

Algunas restricciones de integridad

  • UNIQUE

PRIMARY KEY

  • CASCADE
  • SET NULL

FOREIGN KEY

CHECK

DEFAULT, NULL

Verificación de las restricciones. Datos de prueba.

Los datos de prueba son fundamentales para evaluar si las restricciones de la base de datos están correctamente implementadas y si el sistema maneja adecuadamente los errores. Durante las pruebas debemos:

  • Insertar datos válidos: Verificar que los datos válidos se acepten sin problemas.
  • Insertar datos inválidos: Confirmar que el sistema rechace los datos que violan restricciones.

Participa en el Kahoot interactivo sobre SQL y DDL.

🧠 Reta tus conocimientos sobre comandos, tipos de datos y restricciones. 💡 Aprende mientras te diviertes y compites con tus compañeros. 🏆 Objetivo: Responde correctamente y ¡sube al podio de los ganadores!

Kahoot

DML (Data Manipulation Language)

Indice DML

El lenguaje DML

La orden SELECT

Subconsultas

Inserción, modificación y borrado de datos

Realización de consultas

El DML (Data Manipulation Language), lenguaje de manipulación de datos, incluye ordenes que permiten al usuario:

  • Recuperar los datos almacenados en la base de datos.
  • Actualizar la base de datos añadiendo nuevos datos.
  • Suprimir datos.
  • Modificar datos previamente almacenados

La orden SELECT

Antes de realizar una consulta sobre la Base de Datos, para recuperar información, tendremos que:

  • Decidir qué tablas están implicadas en la consulta y ponerlas en el FROM.
  • Ver cuáles son las relaciones entre las tablas, seleccionar las relevantes para la consulta en cuestión
  • Poner las condiciones en el WHERE, ORDER BY u otras.
  • Fijar las columnas a mostrar en el SELECT.
Ejemplo sencillo SELECT Tipo, Modelo FROM Pieza WHERE Precio>3;

Alias Los alias sirven para dar otro nombre a una columna SELECT id_trabajo AS identificador, nombre FROM trabajos;

No es obligatorio utilizar la palabra AS, es igualmente válido dejar un espacio en blanco antes del alias:

Uso del asterisco El símbolo * (asterisco) sirve para seleccionar todas las columnas de una tabla.

Cálculos aritméticos

Los operadores + (suma), - (resta), * (multiplicación) y / (división), se pueden utilizar para hacer cálculos en las consultas. Cuando se utilizan como expresión en una consulta SELECT. No modifican los datos originales sino que como resultado de la vista generada por SELECT SELECT nombre, precio, precio * 1.16 AS precio_con_iva FROM articulos;

La prioridad de esos operadores es la habitual en todos los lenguajes de programación. Tienen más prioridad las operaciones de multiplicación y división que las de suma y la resta. En caso de igualdad de prioridad, se realiza primero la operación que esté más a la izquierda. Como es lógico, se puede evitar cumplir esa prioridad usando paréntesis; el interior de los paréntesis es lo que se ejecuta primero.

condiciones

operadores de comparación

=, <>, >, <, >=, <=.

valores lógicos

AND, OR, NOT

  • % (Secuencia de caracteres)
  • _ un carácter cualquiera

LIKE

comprueba si el valor es nulo

IS NULL

Consultas SELECT de varias tablas

Las bases de datos relacionales almacenan sus datos en varias tablas. Lo normal, en casi cualquier consulta, es requerir datos de varias tablas a la vez. Esto es posible porque los datos de las tablas están ligados por columnas que contienen claves secundarias o externas que permiten relacionar los datos de esa tabla con datos de otra tabla.

Video

Revisamos el producto cartesiano de tablas y la composición interna JOIN ON

Composición externa

El OUTER JOIN incluye las filas que no tienen coincidencias en una de las tablas, llenando los valores faltantes con NULL

LEFT JOIN

RIGHT JOIN

CROSS JOIN

Devuelve todas las filas de la tabla izquierda aunque no tengan coincidencias en la tabla derecha

El RIGHT JOIN es similar al INNER JOIN, solo que al seleccionarlo muestra todos los valores de la tabla de la derecha, aunque no tenga correspondencia en la tabla de la izquierda

Es un tipo especial de JOIN que devuelve el producto cartesiano entre las tablas que forman parte de la UNION. Se comporta igual que el INNER JOIN como si no tuviera la parte del “ON”

+ info

Consultas de Valores Agrupados

La cláusula GROUP BY divide la tabla en grupos con las líneas del mismo valor para uno o más atributos .Si se aplica una SELECT a una tabla agrupada , cada expresión de la selección debe dar como resultado un único valor por grupo.

Obtener la edad media de los ciclistas de cada equipo SELECT AVG(edad) FROM ciclista GROUP BY nomequipo ;

+ info

SELECT con la cláusula ORDER BY

Las expresiones de la cláusula ORDER BY pueden ser cualquiera que haga referencia a una columna o a cálculos sobre la columna. Ejemplo: SELECT nombre,apellido1,apellido2 FROM alumnos ORDER BY apellido1, apellido2, nombre;

+ info

Comando LIMIT

El comando LIMIT se utiliza en MySQL para restringir la cantidad de filas que se devuelven en una consulta. SELECT columna1, columna2, ... FROM tabla LIMIT número_de_filas, offset;

Orden de ejecución de las sentencias

Este diagrama ilustra la diferencia entre el orden de escritura (coding order) y el orden de ejecución (execution order) de una consulta SQL. Aunque escribimos las cláusulas SQL en un orden específico, el motor de la base de datos las procesa en un orden diferente

+ info

La claúsula HAVING

HAVING es a GROUP BY lo que WHERE es a SELECT . Sirve para restringir el número de filas devueltas por GROUP BY. La cláusula HAVING se puede referir a funciones agregadas, a las que una cláusula WHERE no puede

Operador Unión

Combina filas de 2 tablas en una única tabla. Tiene varias restricciones :

Ambas tablas deben contener el mismo número de columnas. El tipo de datos de cada columna en la 1ª tabla debe ser el mismo que el tipo de datos de la columna correspondiente en la 2ª tabla. Ninguna de las dos tablas pueden estar ordenada con la cláusula ORDER BY. Sin embargo, los resultados combinados pueden ser ordenados.

+ info

Participa en el crucigrama interactivo sobre sentencias SELECT

¡Es hora de poner a prueba lo que has aprendido! 🖥️ Completa el crucigrama y demuestra tu dominio sobre las consultas SQL 🔍 Conocer las sentencias SELECT y otras funciones clave nunca fue tan divertido 💡 ¡Refuerza lo aprendido mientras te diviertes resolviendo pistas!

Wordwall

Consultas complejas. Funciones de ventana

Una función ventana SQL realiza cálculos a través de un conjunto de filas de la tabla que están relacionadas con la fila actual. Este conjunto de filas se llama ventana o marco de ventana - de ahí viene el término "funciones ventana".Las funciones ventana se definen utilizando la cláusula OVER(). Se pueden incluir cláusulas adicionales dentro de la cláusula OVER() para definir aún más la ventana (PARTITION BY y ORDER BY)

+ info

Consultas complejas CTE.

Las expresiones comunes de tabla (CTEs) permiten asignar un nombre a un conjunto de resultados temporal y luego referirse a ese conjunto de resultados por su nombre (como si fuera una tabla o una vista) en las sentencias SELECT, INSERT, UPDATE, o DELETE. La sintaxis básica de lasCTE en MySQL puede resumirse como sigue: WITH cte_name (column_list) AS ( query ) SELECT * FROM cte_name;

+ info

Consultas complejas CTE.

Las expresiones comunes de tabla (CTEs) permiten asignar un nombre a un conjunto de resultados temporal y luego referirse a ese conjunto de resultados por su nombre (como si fuera una tabla o una vista) en las sentencias SELECT, INSERT, UPDATE, o DELETE. La sintaxis básica de lasCTE en MySQL puede resumirse como sigue: WITH cte_name (column_list) AS ( query ) SELECT * FROM cte_name;

+ info

INSERCIÓN DE DATOS

Añadir datos a una tabla se realiza mediante la instrucción INSERT. INSERT INTO tabla [(listaDeColumnas)] VALUES (valor1 [,valor2 ...]) La tabla representa la tabla a la que queremos añadir el registro y los valores que siguen a la cláusula VALUES, son los valores que damos a los distintos campos del registro. Si no se especifica la lista de campos, la lista de valores debe seguir el orden de las columnas según fueron creados

+ info

Modificación de datos

La modificación de los datos de las filas se realiza mediante la instrucción UPDATE.Su sintaxis es la siguiente: UPDATE tabla SET columna1=valor1 [,columna2=valor2...] [WHERE condición]; Se modifican las columnas indicadas en el apartado SET con los valores indicados. La cláusula WHERE permite especificar qué registros serán modificados.

Borrado de datos

Se realiza mediante la instrucción DELETE:DELETE [FROM] tabla [WHERE condición]; Hay que tener en cuenta que el borrado de un registro no puede provocar fallos de integridad y que la opción de integridad ON DELETE CASCADE hace que no sólo se borren las filas indicadas, sino todas los relacionadas.

+ info

Participa en el Quizz interactivo sobre SQL y DML.

🧠 Reta tus conocimientos sobre sentencias SQL de manipulación de datos 💡 Aprende mientras te diviertes y compites con tus compañeros. 🏆 Objetivo: Responde correctamente y ¡sube al podio de los ganadores!

Quizz

Herramientas Gráficas

Herramientas gráficas proporcionadas por Mysql

MySQL Workbench

Herramientes del gestor. PhpMyAdmin

Gestor de MySQL con interfaz web

Herramientas externas al gestor

DBeaver

Bibliografía

Silberschatz, H. Korth & S. Sudarskhan. Fundamentos de Bases de Datos. 6ª Edición. McGraw Hill. 2014.Jorge Sanchez, profesor de informática. Manuales, ejercicios y documentos sobre cursos de informática. (n.d.). jorgesanchez.net. https://jorgesanchez.net/bd Cliente MySQL: Repasamos las mejores interfaces gráficas | blog de Arsys. (2024, 4). Arsys. https://www.arsys.es/blog/interfaces-graficas-mysql Javi Castillo J. (2023, November 15). Consultas SELECT en SQL de varias tablas [Video]. YouTube. https://www.youtube.com/watch?v=Yxia2I46EGs Programación Fácil. (2023, June 29). ¿Cómo se utilizan las SUBCONSULTAS en SQL?- MÁSTER EN SQL #19 [Video]. YouTube. https://www.youtube.com/watch?v=SDOWm-wD_VE Jayaram, P. (2019, November 4). Revisión, ejemplos Y USO de SQL union. SQL Shack - articles about database auditing, server performance, data recovery, and more. https://www.sqlshack.com/es/revision-ejemplos-y-uso-de-sql-union/ Join MySQL: La distintas formas de union entre Tablas. (n.d.). Generación de Leads Cualificados | Premium Leads. https://www.premiumleads.com/blog/desarrollo/join-mysql-la-distintas-formas-de-union-entre-tablas/ Las CTE de MySQL Y Como Utilizarlas. (2024, October 3). LearnSQL.es. https://learnsql.es/blog/las-cte-de-mysql-y-como-utilizarlas/ Una vision general de las funciones de ventana de MySQL. (2023, July 27). LearnSQL.es. https://learnsql.es/blog/una-vision-general-de-las-funciones-de-ventana-de-mysql/

Gracias!

Espero que hayas disfrutado de esta unidad didáctica!!

Restricciones de tabla

Por ejemplo, en una base de datos bancaria, una tabla llamada prestatarios_calificados podría necesitar verificar si las personas tienen una cuenta bancaria y la capacidad de ofrecer garantías para poder asingarles un préstamo. Podría tener sentido incluir ambos en el mismo CHECK

clave primaria

Para añadir un índice de clave primaria en una tabla de MySQL, debemos utilizar la instrucción ALTER TABLE seguida de la cláusula ADD PRIMARY KEY

FLOAT

Se utiliza en Mysql para almacenar números en coma flotante de precisión simple. Es más eficiente en términos de almacenamiento que DOUBLE, pero puede perder precisión para valores muy grandes o pequeños. Un número de coma flotante con precisión sencilla tiene una precisión de 7 decimales aproximadamente. Puede almacenar valores como 12345.678.

Los valores permitidos son de -3.402823466E+38 a - 1.175494351E-38 con signo y de 1.175494351E-38 a 3.402823466E+38 con signo

Criterio de ordenación

Normalmente ordena en ascendente, pero si usamos DESC ordenará en descendente: SELECT nombre, apellido1, apellido2, f_n fecha_nacimiento FROM alumnos ORDER BY f_n DESC; Mostrará la lista de alumnos ordenada de forma que aparezcan primero los más jóvenes.

CASCADE

CASCADE significa que se elimina la tabla y todas las restricciones y vistas donde se encuentra alguna de sus columnas. Precaución: Puede tener consecuencias no deseadas si hay múltiples dependencias. ​ La siguiente sentencia elimina la tabla empleados y todos los elementos relacionados. Si otras tablas o vistas dependen de empleados, se eliminarán también. DROP TABLE empleados CASCADE;

Coma flotante Double(M,D)

En Mysql es un número con coma flotante de doble precisión que tiene una precisión aproximada de 15 decimales. Puede almacenar valores como 156.79769313486231.

Los valores permitidos con signo sonde -1.7976931348623157E+308 a -2.2250738585072014E-308, 0,y sin signo de 2.2250738585072014E-308 a 1.7976931348623157E+308

M es la cantidad máxima de dígitos (precisión total). D es la cantidad de dígitos después del punto decimal.

DATETIME

En Mysql Almacena fecha y hora con el formato 'YYYY-MM-DD HH:MM:SS'. Permite almacenar fechas en el rango desde '1000-01-01 00:00:00' hasta '9999-12-31 23:59:59'. Para ello utiliza 8 bytes de almacenamiento Puede almacenar fracciones de segundo hasta 6 dígitos, lo que aumenta el tamaño. Un ejemplo sería '2024-11-16 14:30:00'

Restricciones DEFAULT y NOT NULL

La cláusula DEFAULT especifica un valor por omisión para la columna que va a utilizarse cuando se inserte una nueva fila en la tabla y no se especifique un valor.

Puede especificarse NOT NULL para asegurar que la columna siempre contiene datos

Restricciones FOREIGN KEY

Podemos definir una FOREIGN KEY (clave ajena) que indique que el valor de la lista de columnas debe existir en otra tabla. ¿Que ocurrirá si queremos borrar o modificar los valores de la clave primaria a la que hace referencia la clave ajena?, El sistema impedirá que hagamos esta operación porque rompería la integridad de la BD. Algunas de las opciones son: CASCADE, SET NULL, SET DEFAULT, NO ACTION.

BLOB

Aunque no es un tipo texto propiamente dicho puede utilizarse para guardar información binaria, contenido de un archivo JPG, un archivo comprimido ZIP , etc., y texto cuya longitud supere la longitud permitida por los tipos CHAR y VARCHAR. Este tipo diferencia entre mayúsculas y minúsculas. Los tipos TINYBLOB, MEDIUMBLOB Y LONGBLOB son BLOB de diferentes tamaños.

Diccionario de datos

Para la cumplimentación de los metadatos solicitados en un diccionario de datos, existen guías y plantillas prediseñadas como el siguiente ejemplo proporcionado por el Departamento de Agricultura de los EEUU

Estructura de una consulta SELECT

SELECT [ALL | DISTINCT ] columnas seleccionadas FROM tabla [WHERE expresión_condicional] [ORDER BY columnas de ordenación ALL : Permite la aparición de filas idénticas (valor por defecto). DISTINCT: No permite la aparición de filas idénticas.

YEAR

Permite almacenar un año en formato de dos o cuatro dígitos. El valor por defecto está en formato de cuatro dígitos. En formato de cuatro dígitos, los valores permitidos son de 1901 a 2155, y 0000 Un ejemplo sería 2024

Tipos numéricos

Existen seis tipos básicos para almacenar números enteros, diferenciados por el rango de valores que pueden almacenar.

  • TINYINT
  • BOOL, BOOLEAN
  • SMALLINT
  • MEDIUMINT
  • INT
  • BIGINT

¿Hacemos una consulta de UNION?

Por ejemplo, la tabla ‘A’ tiene 1,2 y 3 y la tabla ‘B’ tiene 3,4,5. Se aprecia como en esta operación, combina las dos tablas y se eliminan los duplicados

Restricción CHECK

En el siguiente ejemplo, se restringe la edad a un valor mayor o igual a 0 mediante la resricción CHECK

Tipo Fecha y Hora

En MySQL, los tipos de datos para fechas y horas permiten almacenar y manipular información temporal con precisión y flexibilidad. Incluyen DATE para fechas (AAAA-MM-DD), TIME para horas (HH:MM:SS), DATETIME para la combinación de fecha y hora (AAAA-MM-DD HH:MM:SS), TIMESTAMP para almacenar fecha y hora en formato UTC con soporte para zonas horarias, y YEAR para registrar únicamente el año (AAAA). Estos tipos son esenciales para gestionar eventos cronológicos, realizar cálculos temporales, filtrar datos según intervalos y garantizar la integridad al trabajar con datos temporales en aplicaciones

Restricciones a nivel de columna CHECK

La cláusula CHECK es una expresión lógica que se define con la misma sintaxis que la condición de la cláusula WHERE de la sentencia SELECT. Los predicados que admite son: BETWEEN, LIKE, IN, IS NULL /IS NOT NULL y ALL/ANY,

Restricción CHECK

En el siguiente ejemplo, se restringe la edad a un valor mayor o igual a 0 mediante la resricción CHECK

TIMESTAMP

Almacena una combinación de fecha y hora similar a DATETIME, pero incluye soporte para zonas horarias. Permite almacenar fechas desde '1970-01-01 00:00:01 UTC' hasta '2038-01-19 03:14:07 UTC'

ENUM

Es una clase especial de tipo de cadena. Al definir la columna se indican los posibles valores que puede tomar, y posteriormente sólo se podrán guardar en la columna los valores definidos. Internamente MySQL sustituye la cadena por un número, ahorrando espacio en cada inserción.

VARCHAR

Tiene el mismo rango que CHAR, pero guarda los caracteres que realmente introducimos más uno para guardar la longitud de la cadena. También admite el modificador BINARY.

Restricciones PRIMARY KEY

Podemos definir una PRIMARY KEY (clave primaria) para la tabla o definir una columna particular o un conjunto de columnas que sean UNIQUE (que sus valores no se puedan repetir en la tabla).

DATE

Descripción: En Mysql puede almacenar fechas desde '1000-01-01' hasta '9999-12-31'. Ocupa 3 bytes de espacio de almacenamiento Un ejempo podría ser '2024-11-16'

DECIMAL(M, D)

Aunque no es un tipo en coma flotante como FLOAT o DOUBLE, se utiliza para almacenar números con decimales. M especifica el número total de dígitos. D especifica el número de dígitos después del punto decimal. Puede almacenar valores como 12345678.90

Clave externa

La tabla pedidos tiene una columna id_cliente que hace referencia a la columna id_cliente de la tabla clientes

  • Visit the Analytics settings;
  • Activate user tracking;
  • Let the communication flow!

CHAR

Permite definir cadenas de texto de longitud fija. La longitud se define entre paréntesis a continuación del tipo y puede estar comprendido entre 0 y 255 caracteres. Admite la modificación BINARY que permite en las consultas diferenciar entre mayúsculas y minúsculas.

RESTRICT

Sólo se permite el borrado de la tabla si no existe ninguna vista o referencia a ella (es decir, si ninguna de sus columnas es clave ajena en otra tabla). Este enfoque es más seguro para evitar eliminaciones accidentales de estructuras interrelacionadas. Ejemplo: DROP TABLE empleados RESTRICT;

TIME

Almacena solo un valor de hora (sin fecha) en formato. 'HH:MM:SS'. Ocupa 3 bytes de espacio de almacenamiento. Un ejemplo sería '14:30:00'

Group by

La sintaxis de una referencia a una función agrupada es la siguiente: { avg | max | min | sum | count } ( [all | distinct] expresión_escalar ) | count(*) Para las funciones sum y avg los argumentos deben ser numéricos distinct indica que los valores redundantes sean eliminados antes de que se realice el cálculo correspondiente. (no se puede usar delante de count(*)). Los cálculos se realizan después de la selección y de aplicar las condiciones. Los valores nulos son eliminados antes de realizar los cálculos (incluido el count). Ejemplo: Nombre y edad del mayor ciclista de cada equipo. SELECT C.nombre, MAX(C.edad) FROM ciclista C GROUP BY C.nomequipo;

Tipos numéricos enteros

Los tipos numéricos enteros se utilizan para almacenar números enteros sin decimales

Orden de ejecución

Cuando el motor de la base de datos ejecuta la consulta, sigue un flujo diferente, basado en cómo se obtienen y filtran los datos. El orden real de ejecución es: FROM: Primero se identifican las tablas WHERE: Se filtran las filas GROUP BY: Se agrupan los datos . HAVING: Se filtran los grupos resultantes SELECT: Se seleccionan las columnas que queremos en el resultado. ORDER BY: Se ordenan los datos según los criterios establecidos. LIMIT: Finalmente, se limita el número de registros devueltos.