Operaciones para la proyección de información MySQL
Módulo 6
Last updated
Was this helpful?
Módulo 6
Last updated
Was this helpful?
Con la módulo de esta semana el lector tendrá la oportunidad de conocer la utilidad de algunas funciones de MySQL para la proyección de la información principalmente. De igual manera, este capitulo inicia explicando algunos aspectos para la relación de información, a través del concepto clave foránea.
Otro aspecto interesante a tocar inicialmente será la generación del modelo relacional mediante PhpMyAdmin.
Este módulo enfocara sus esfuerzos en mostrar las diferentes funciones y utilidades con las que podemos contar con MySQL para relacionar información y realzar manipulación de información, para lograr trasformaciones muy puntuales sobre esta y de esta manera lograr solucionar problemas que en la vida real se nos presentan.
Una clave foránea o clave externa es una columna o grupo de columnas en una tabla que se vincula a una columna o grupo de columnas en otra tabla. La clave foránea impone restricciones a los datos de las tablas relacionadas, lo que permite que MySQL mantenga la integridad referencial.
Echemos un vistazo a las siguientes tablas oficina y empleado de la base de datos empresa_confecciones_limitada (base de datos que estaremos trabajando durante este módulo).
En este diagrama, una oficina puede pertenecer a uno a muchos empleados y un empleado debe tener una oficina asignada.
La relación entre oficina y empleado es de uno a muchos. Y esta relación se establece mediante la clave foránea en la tabla empleado especificada por la columna codigOficina.
La columna codigOficina de la tabla empleado se vincula a la columna codigOficina, la cual es la clave principal de la tabla oficina.
La tabla oficina se denomina tabla principal, y la tabla empleado se conoce como tabla secundaria.
Por lo general, las columnas de clave externa de la tabla secundaria a menudo se refieren a las columnas de clave principal de la tabla principal.
Una tabla puede tener más de una clave externa donde cada clave externa hace referencia a una clave primaria de las diferentes tablas principales.
Una vez que se aplica una restricción de clave externa, las columnas de clave externa de la tabla secundaria deben tener la fila correspondiente en las columnas de clave principal de la tabla principal o los valores en estas columnas de clave externa deben ser NULL.
A veces, las tablas primaria y secundaria pueden hacer referencia a la misma tabla. En este caso, la clave externa hace referencia a la clave principal dentro de la misma tabla.
La columna jefe es una clave externa que se refiere a la columna numeroEmpleado que es la clave principal de la tabla empleado.
Esta relación permite que la tabla empleado almacene la estructura de informes entre empleados y jefes. Cada empleado informa a cero o un empleado y un empleado puede tener cero o muchos subordinados.
La clave externa de la columna jefe se conoce como clave externa recursiva o autorreferencial.
Para referenciar la restricción de una llave foránea en MySQL se utiliza la expresión FOREIGN KEY. Esta restricción no aplica en MyISAM como motor de almacenamiento, debido a que no admite relaciones en una base de datos. De los motores vistos y profundizados en estos módulos, solamente InnoDB soportan lleves foráneas.
Una llave foránea puede ser creada desde un CREATE TABLE o ALTER TABLE. La sintaxis para realizarlo por SQL es la siguiente:
En esta sintaxis:
Primero, especifique el nombre de la restricción de clave externa que desea crear después de la palabra clave CONSTRAINT. Si omite el nombre de la restricción, MySQL genera automáticamente un nombre para la restricción de clave externa.
En segundo lugar, especifique una lista de columnas de claves externas separadas por comas después de las palabras claves FOREIGN KEY. El nombre de la clave externa también es opcional y se genera automáticamente si lo omite.
En tercer lugar, especifique la tabla principal seguida de una lista de columnas separadas por comas a las que hacen referencia las columnas de clave externa.
Finalmente, especifique cómo la clave externa mantiene la integridad referencial entre las tablas secundaria y primaria mediante las cláusulas ON DELETE y ON UPDATE. La palabra clave reference_option determina la acción que llevará acabo MySQL cuando los valores de las columnas claves se eliminan (ON DELETE) o actualizados (ON UPDATE).
MySQL tiene cinco opciones de referencia: CASCADE, SET NULL, NO ACTION, RESTRICT y SET DEFAULT.
CASCADE: si una fila de la tabla principal se elimina o actualiza, los valores de las filas coincidentes en la tabla secundaria se eliminan o actualizan automáticamente.
SET NULL: si una fila de la tabla principal se elimina o actualiza, los valores de la columna (o columnas) de clave externa en la tabla secundaria se establecen en NULL.
RESTRICT: si una fila de la tabla principal tiene una fila coincidente en la tabla secundaria, MySQL rechaza eliminar o actualizar filas en la tabla principal.
NO ACTION: es lo mismo que RESTRICT.
SET DEFAULT: es reconocido por el analizador MySQL. Sin embargo, esta acción es rechazada por las tablas que tienen configuradas el sistema de almacenamiento de InnoDB y NDB.
Si no especifica la cláusula ON DELETE y ON UPDATE, la acción predeterminada es RESTRICT.
Suponiendo que ya se tiene creada la base de datos y las tablas de esta, se puede realizar estas relaciones mediante este cliente, veamos:
1. Vamos a la sección Estructura de la tabla, donde se desea crear la llave foránea.
2. Luego nos dirigimos a la sección Vista de relaciones.
3. En esta sección se debe diligenciar la información asociada a la llave foránea, tal como se muestra a continuación y guardamos la o las restricciones ingresadas.
4. Al final obtendremos el script SQL que se generó en MySQL.
Veamos el siguiente ejemplo. Partamos de la siguiente relación y realizando la creación durante la creación de la tabla y después de haber creado la tabla.
Cuando se crea la tabla, el script a ejecutar es el siguiente:
Después de haber creado la tabla, se debe ejecutar el siguiente script:
A veces, desea asegurarse que los valores en una columna o un grupo de columnas sean únicos. Por ejemplo, las direcciones de correo electrónico de los usuarios de la tabla usuario o el número de teléfono de los clientes de la tabla cliente deben ser únicos. Para hacer cumplir esta regla, usa una restricción UNIQUE.
Una UNIQUE restricción es una restricción de integridad que asegura que los valores en una columna o grupo de columnas sean únicos. Una restricción UNIQUE puede ser una restricción de columna o una restricción de tabla.
Para definir una restricción UNIQUE para una columna cuando se crea una tabla , use esta sintaxis:
Para este caso si inserta o actualiza un valor que causa duplicación en nomnbre_columna, MySQL rechaza el cambio y emite un error.
Para definir una restricción UNIQUE para dos o más columnas, utilice la siguiente sintaxis:
En esta sintaxis, agrega una lista de columnas separadas por comas entre paréntesis después de la palabra clave UNIQUE. MySQL usa la combinación de valores en ambas columnas nombre_columna1 y nombre_columna2 para evaluar la unicidad.
Si define una restricción UNIQUE sin especificar un nombre, MySQL genera automáticamente un nombre para ella. Para definir una restricción UNIQUE con un nombre, use esta sintaxis:
En esta sintaxis, especifica el nombre de la restricción UNIQUE después de la palabra clave CONSTRAINT.
Veamos el siguiente ejemplo:
En este ejemplo, la primera restricción UNIQUE se define para la columna telefono:
Y la segunda restricción es la combinación de las columnas de nombre y direccion:
Desde muchos clientes de MySQL es posible generar el modelo relacional de las bases de datos, esto con la finalidad de tener nuestro diagrama lo mas actualizado posible, sin necesidad de invertir mucho tiempo en los posibles cambios que a podido sufrir nuestra base de datos. En PhpMyAdmin contamos con un diseñador que nos permite crear la base de datos y obtener una vista de nuestro modelo relacional.
Para explicar esta generación de este modelo tomaremos como punto de referencia Clever-Cloud, aunque también puede aplicar en el cliente de PhpMyAdmin instalado en XAMPP (es posible que en local esta extensión presente dificultades). Veamos como se genera este modelo.
1. Ingrese a la base de datos creada en Clever Cloud y nos dirigimos a la opción de PhpMyAdmin (en caso de no recordar como ingresar a Clever Cloud, se puede remitir a el módulo 5 de base de datos).
2. Luego seleccionamos la base de datos que nos asigna Clever Cloud (partimos del hecho que ya se crearon las tablas de esta base de datos).
3. Una vez seleccionada la base de datos, nos dirigimos a la opción More > Designer.
4. Organice el modelo, de tal manera que quede lo mas visible las tablas y relaciones que hay entre las tablas.
5. Diríjase al menú lateral del diseñador y seleccione la opción Export schema.
6. Seleccione el método de exportación, para efectos de este ejemplo se exportará el diagrama como SVG.
La declaración SQL SELECT le permite leer datos de una o más tablas. Para escribir una declaración SELECT en MySQL, siga esta sintaxis:
Veamos cada parte de la declaración.
Primero, empiece con la palabra clave SELECT. La palabra clave tiene un significado especial en MySQL. En este caso, SELECT indica a MySQL que recupere datos.
Luego, tiene espacio y luego una lista de columnas o expresiones que desea mostrar en el resultado.
Luego, tienes la palabra clave FROM, el espacio y el nombre de la tabla desde donde se van a extraer los datos.
Finalmente, tiene un punto y coma ; al final de la declaración. El punto y coma ; es el delimitador de instrucciones. Especifica el final de una declaración. Si tiene dos o más declaraciones, use el punto y coma ; para separarlas para que MySQL ejecute cada declaración individualmente.
En la declaración SELECT, SELECT y FROM son palabras clave y están escritas en mayúsculas. Básicamente, se trata solo de formatear. Las letras mayúsculas hacen que las palabras clave se destaquen en gran parte de los editores.
Dado que SQL no es un lenguaje que distingue entre mayúsculas y minúsculas, puede escribir las palabras claves en minúsculas o mayúsculas.
También es importante tener en cuenta que la palabra clave FROM está en una nueva línea. MySQL no requiere esto. Sin embargo, colocar la palabra clave FROM en una nueva línea hará que la consulta sea más fácil de leer y más simple de mantener.
Al evaluar la declaración SELECT, MySQL evalúa primero la cláusula FROM y luego la cláusula SELECT:
El siguiente ejemplo usa la declaración SELECT para seleccionar el nombre de todos los clientes:
La salida de una declaración SELECT se llama resultados o conjunto de resultados, ya que es un conjunto de datos que resulta de una consulta.
El siguiente ejemplo usa la declaración SELECT para obtener el nombre, apellido 1, apellido 2 y teléfono:
Aunque la tabla cliente tiene muchas columnas, la declaración SELECT solo devuelve datos de cuatro columnas.
Si desea recuperar datos de todas las columnas de la tabla cliente, puede especificar todos los nombres de columna en la cláusula SELECT o simplemente use la abreviatura de asterisco (*) como se muestra en la siguiente consulta:
La consulta devuelve datos de todas las columnas de la tabla cliente.
Un alias es como su nombre lo dice, un apodo o forma alternativa de llamar a algo.
Estos alias en MySQL son usados para renombrar o para evitar conflictos con campos repetidos. La cláusula para un alias es AS y su sintaxis es:
También es posible solo dejar un espacio en blanco, seguido del nombre con el que queremos nombrar esta columna, tal como se observa en el ejemplo anterior.
Las sentencias de control de flujo nos permiten intervenir la salida de lo que queremos proyectar, de acuerdo a una serie de condiciones. Estas sentencias las podemos ver reflejadas en varias partes de una consulta SQL, por ejemplo, un SELECT. Veamos algunas sentencias de este tipo.
La instrucción CASE se usa para aplicar una construcción condicional compleja en MySQL. Tiene la funcionalidad de una instrucción IF-THEN-ELSE al permitirle evaluar condiciones y devolver un valor cuando se cumple la primera condición.
La sintaxis de la función CASE en MySQL es:
Parámetros o argumentos
expression
Opcional. Es el valor que está comparando con la lista de condiciones. (es decir: condition_1, condition_2, ... condition_n)
condition_1, condition_2, ... condition_n
Evaluado en el orden indicado. Una vez que se determina que una condición es verdadera, la función CASE devolverá el resultado y no evaluará más las condiciones.
result_1, result_2, ... result_n El valor devuelto una vez que se determina que una condición es verdadera.
Nota
Si no se encuentra ninguna condición verdadera, la función CASE devolverá el valor de la cláusula ELSE.
Si se omite la cláusula ELSE y no se determina que ninguna condición sea verdadera, la instrucción CASE devolverá NULL.
Veamos el siguiente ejemplo:
Las para la empresa de confecciones es muy importante conocer la localización de las de los productos, el cual esta correlacionado en la siguiente tabla.
Localización numérica
Nombre de la localización
1:10
Estante de cuero
1:12
Estante telas
1:18
Estante materia prima
1:24
Estante de cuerina
1:32
Estante de cintas
1:50
Estante de material variado
1:700
Estante de estampados
1:72
Estante de material desconocido
Se requiere realizar una consulta que muestre el nombre de la localización del producto.
La sentencia de control IF () toma tres expresiones y si la primera expresión es verdadera, ni cero ni NULL, devuelve la segunda expresión. De lo contrario, devuelve la tercera expresión.
Dependiendo del contexto en el que se use, devuelve un valor numérico o de cadena.
Sintaxis:
Dependiendo del contexto en el que se use, devuelve un valor numérico o de cadena.
Parámetros
Nombre
Descripción
Tipo de retorno
expression
Una expresión o condición.
expr_true
Devuelve cuando la condición es VERDADERA.
Una cadena cuando expr_true es una cadena, un valor de punto flotante cuando expr_true es un valor de punto flotante y un número entero cuando expr_true es un número entero.
expr_false
Devuelve cuando la condición es FALSA.
Una cadena cuando expr_false es una cadena, un valor de punto flotante cuando expr_false es un valor de punto flotante y un entero cuando expr_false es un número entero.
Veamos algunos ejemplos:
En la fábrica de confecciones se necesita saber cuándo un producto está agotado en inventario. Para el dueño, tener menos de 1000 elementos de un producto es la alerta para indicar que se debe aumentar el inventario.
Por esto se requiere realizar una consulta que indique cuales productos están agotados o si cuentan con inventario suficiente.
La función IFNULL () toma dos expresiones y si la primera expresión no es NULL, devuelve la primera expresión. De lo contrario, devuelve la segunda expresión.
Dependiendo del contexto en el que se use, devuelve un valor numérico o de cadena.
Sintaxis:
Veamos algunos ejemplos:
En la fábrica de confecciones, el dueño desea saber si un cliente no tiene asignado el estado donde vive, por lo cual se debe construir una consulta para tal fin.
En MySQL se cuenta con algunas funciones para la manipulación de cadenas de texto, estas funciones tienen fines muy específicos y ayudan al lector en la solución de algunas problemáticas que son muy comunes en su trabajo diario. Veamos algunas de estas funciones.
Retorna la longitud de la cadena enviada como argumento. Veamos algunos ejemplos:
Veamos un ejemplo que permita conocer el tamaño del texto descriptivo de la tabla de la línea de producto.
Devuelve una cadena de texto, encadenando o uniéndonos una serie de argumentos que le pasamos a la función. Veamos algunos ejemplos.
Usemos esta función para concatenar todo el nombre del empleado.
Esta función es igual a la anterior, pero tiene “ws” al final de la función, iniciales de "with separator". La diferencia con la función CONCAT es que esta función espera el primer argumento es el separador de entre los otros argumentos que se pasan. Veamos algunos ejemplos.
Usemos esta función para concatenar todo el nombre del cliente.
A estas funciones se le pasa una cadena de texto y devuelve una cadena de texto con todos sus caracteres en mayúsculas. Veamos los siguientes ejemplos:
A estas funciones se le pasa una cadena de texto y devuelve una cadena de texto con todos sus caracteres en minúscula. Veamos los siguientes ejemplos:
Esta función se le pasa una cadena de texto y esta se encarga de eliminar los espacios del inicio a la izquierda. Veamos el siguiente ejemplo:
REPLACE
Esta función se encarga de buscar un texto sobre una cadena de texto y remplazar el texto encontrado por otro texto.
Sintaxis:
Veamos el siguiente ejemplo:
La función REVERSE () invierte una cadena y devuelve otra cadena de texto. Veamos el siguiente ejemplo:
En MySQL también se cuenta con funciones matemáticas para dar solución a múltiples problemas de la vida cotidiana. Es importante resaltar, que por ser funciones matemáticas, se puede presentar errores con facilidad, por lo cual, estas funciones retornan NULL. Veamos algunas de estas funciones.
Retorna el valor absoluto de un número X que se le pasa a la función. Veamos algunos ejemplos:
Estas funciones devuelven el entero más pequeño cuyo valor es mayor que X (valor que se le pasa a la función). El alias CEIL() fue añadido en la versión 4.0.6. El valor de retorno se convierte a BIGINT. Veamos algunos ejemplos:
Esta función devuelve el entero más grande inferior o igual a X (valor que se le pasa a la función). El valor de retorno se convierte a BIGINT. Veamos algunos ejemplos:
Devuelve el logaritmo natural de X (valor que se le pasa a la función). Veamos algunos ejemplos:
Módulo (operador % en gran parte de los lenguajes). Devuelve el resto de la división de N entre (MOD(N, M)). También es posible utilizar el operador %. Veamos algunos ejemplos:
Esta función retorna el valor de X elevado a la potencia Y (POW(X,Y)). Veamos algunos ejemplos:
Esta función devuelve la raíz cuadrada no negativa de X (número que se le pasa a la función). Veamos algunos ejemplos:
Formatea el número X según la plantilla '#,###,###.##', redondeando a D decimales (FROMAT(X,D)), y devuelve el resultado como una cadena. Si D es 0, el resultado no tendrá punto decimal ni parte fraccionaría. Veamos algunos ejemplos:
Al momento de desarrollar un sistema de información el trabajo con fechas es un dolor de cabeza para los integrantes de un equipo. En ese sentido MySQL incorpora algunas funciones para la manipulación de fechas, permitiendo transformarlas y realizar operaciones complejas con ellas. Veamos algunas de estas funciones.
La función NOW() devuelve la fecha y hora actual en la zona horaria configurada como una cadena o un número, en el formato 'YYYY-MM-DD HH:MM:DD' o 'YYYYMMDDHHMMSS.uuuuuu'. El formato retornado, depende del contexto en el que se invoque dicha función, veamos:
En este contexto se retorna una cadena de texto formateada como fecha.
Sin embargo, en el contexto numérico como el siguiente ejemplo, la función NOW() devuelve la fecha y hora actuales como un número.
La función NOW como valor por defecto para una columna.
Puede utilizar la función NOW() para proporcionar un valor predeterminado para una columna DATETIME o TIMESTAMP. Cuando omite el valor de fecha u hora en las declaraciones INSERT y UPDATE, MySQL inserta y actualiza la fecha y hora actuales en la columna cuyo valor predeterminado es NOW(). Esto también se puede conseguir con la instrucción CURRENT_TIMESTAMP.
Veamos el siguiente ejemplo, donde se debe realizar el registro de ingreso y salida de estudiantes en una sesión de clase:
Ahora insertemos un registro de un estudiante que ingresa.
Ahora generemos la salida del estudiante.
Observe que en ninguno de los scripts SQL (INSERT y UPDATE) se insertan o modifican las fechas, si no que MySQL lo hace automáticamente de acuerdo a lo declarado en la definición de la estructura.
Extrae la fecha de la expresión de fecha o fecha y hora. Veamos algunos ejemplos:
La función DATEDIFF calcula el número de días entre dos valores DATE, DATETIME o TIMESTAMP.
La sintaxis de esta función es la siguiente:
La función DATEDIFF acepta dos argumentos que pueden ser cualquier valor válido de fecha o fecha y hora. Si pasa valores DATETIME o TIMESTAMP, la función DATEDIFF solo toma las partes de fecha para el cálculo e ignora las partes de tiempo.
Veamos algunos ejemplos:
DATE_ADD
La función DATE_ADD agrega un intervalo a un valor DATE o DATETIME. A continuación, se ilustra la sintaxis de la función DATE_ADD.
La función DATE_ADD toma dos argumentos:
start_date es el valor, en el cual comienza DATE o DATETIME.
INTERVAL expr unit es un valor de intervalo que se agregará al valor de la fecha de inicio.
Veamos algunos ejemplos:
La función DATE_SUB() resta un valor de tiempo (o un intervalo) de un valor DATE o DATETIME. Lo siguiente ilustra la función DATE_SUB():
start_date es el valor, en el cual comienza DATE o DATETIME.
INTERVAL expr unit es un valor de intervalo que se restará al valor de la fecha de inicio.
Veamos algunos ejemplos:
En el caso que el intervalo sea negativo, la función DATE_SUB se comporta como DATE_ADD.
Esta función permite formatear una fecha que se envíe en un formato y pueda ser visualizada en otro de los formatos permitidos, vemos su sintaxis:
La función DATE_FORMAT acepta dos argumentos:
date: es un valor de fecha válido que desea formatear.
format: es una cadena de formato que consta de especificadores predefinidos. Cada especificador está precedido por un carácter de porcentaje (%). Veamos esta tabla de especificadores:
Especificador
Sentido
%a
Nombre del día de la semana abreviado de tres caracteres, p. Ej., lunes, martes, miércoles, etc.
%b
Nombre del mes abreviado de tres caracteres, por ejemplo, enero, febrero, marzo, etc.
%c
Mes en numérico, p. Ej., 1, 2, 3… 12
%D
Día del mes con sufijo en inglés, por ejemplo, 0, 1, 2, etc.
%d
Día del mes con cero a la izquierda si es 1 número, por ejemplo, 00, 01,02,… 31
%e
Día del mes sin cero a la izquierda, p. Ej., 1,2,… 31
%f
Microsegundos en el rango de 000000..999999
%H
Hora en formato de 24 horas con cero a la izquierda, por ejemplo, 00..23
%h
Hora en formato de 12 horas con cero a la izquierda, por ejemplo, 01, 02… 12
%I
Igual que% h
%i
Minutos con cero a la izquierda, por ejemplo, 00, 01,… 59
%j
Día del año con cero a la izquierda, p. Ej., 001,002,… 366
%k
Hora en formato de 24 horas sin cero a la izquierda, por ejemplo, 0,1,2… 23
%l
Hora en formato de 12 horas sin cero a la izquierda, p. Ej., 1,2… 12
%M
Nombre del mes completo, por ejemplo, enero, febrero,… diciembre
%m
Nombre del mes con cero a la izquierda, por ejemplo, 00,01,02,… 12
%p
AM o PM, dependiendo de otros especificadores de tiempo
%r
Hora en formato de 12 horas hh: mm: ss AM o PM
%S
Segundos con cero a la izquierda 00,01,… 59
%s
Igual que% S
%T
Hora en formato de 24 horas hh: mm: ss
%U
Número de semana con cero a la izquierda cuando el primer día de la semana es domingo, por ejemplo, 00,01,02… 53
%u
Número de semana con cero a la izquierda cuando el primer día de la semana es el lunes, por ejemplo, 00,01,02… 53
%V
Lo mismo que tu; se usa con% X
%v
Lo mismo que tu; se usa con% x
%W
Nombre completo del día de la semana, p. Ej., Domingo, lunes,…, sábado
%w
Día de la semana en número (0 = domingo, 1 = lunes, etc.)
%X
Año de la semana en cuatro dígitos donde el primer día de la semana es el domingo; usado a menudo con% V
%x
Año de la semana, donde el primer día de la semana es el lunes, cuatro dígitos; usado con% v
%Y
Año de cuatro dígitos, por ejemplo, 2000 y 2001.
%y
Año de dos dígitos, por ejemplo, 10,11 y 12.
%%
Agregar carácter de porcentaje (%) a la salida
Veamos algunos ejemplos:
Si desea lograr que los meses y días de la semana aparezcan en español, tenga en cuenta este ejemplo:
Tome como referencia la base de datos de la empresa de confecciones (tratada en este módulo). El supervisor de recurso requiere que se adicione una nueva tabla, que permita saber el estado de los empleados, los estados que se manejan son: Active, Inactive, Suspended, Disabled y Fired.
Cree una tabla de estados para los empleados.
Adicione la llave foránea (tenga en cuenta las restricciones) en la tabla de empleado, donde el valor por defecto es Active.
Entregue la evidencia de los scripts ejecutados y pantallazo de las tablas creadas en la base de datos.
Genere los modelos relaciones mediante PhpMyAdmin de dos bases de datos de las cuales a trabajados en los módulos de base de datos (No se permite el modelo de la empresa de confecciones tratada en este módulo).
Diseñe 2 consultar con CASE – WHEN y 2 consultas con IF, donde demuestre el uso de estas dos estructuras de control de flujo y sobre estas 4 consultas demuestre el uso de los ALIAS. Aplique dichas consultas en sobre tablas del PPI.
Se tienen las siguientes cadenas de texto
"Lavan esa base naval"
“LAVAN ESAB ASE NAVAL”
Diseñe una consulta que indique si estas dos palabras son palíndromas o no son palíndromas.
Desarrolle una consulta que me indique si un número (el número va dentro de la consulta, no necesita ser una variable) es palíndromo o no.
En la base de datos de la empresa de confecciones (tratada en este módulo), existe la tabla de pedido; se requiere saber cuántos días han transcurrido entre la fecha límite de entrega (fechaLimitEntrega) y la fecha de envío (fechaEnvio), asegure que el pedido se encuentre en estado Shipped. Diseñe una consulta que permita obtener este dato.
La tabla abordada en el ejercicio anterior (pedido), se requiere ver las fechas en los siguientes formatos.
fechaOrden
'%Y-%m-%d'
fechaLimitEntrega
'%a %D %b %Y'
fechaEnvio
'%W %D %M %Y'
Investigue una función diferente a cada uno de los temas tratados en este módulo:
Función para para manipular cadenas.
Función matemática.
Función para manipulación de fechas.
7. Con esto ya tendremos nuestro modelo exportado. En el siguiente enlace se puede apreciar el modelo descargado:
Para el resto del módulo se usará la siguiente la base de datos empresa_confecciones_limitada, la cual cuenta con datos de prueba para realizar consultas y operaciones sobre estos. A continuación, se deja el modelo relacional y el link donde se puede descargar el script: