sábado, 16 de noviembre de 2024

Curso de DevOps: Automatización IV. Identificar el alcance de la automatización

 Vamos a reconocer el papel de la automatización de procesos, y la automatización de servicios en la creación de flujos de valor para la entrega de proyectos IT empresariales. Hay diferentes aspectos de la automatización. El primer aspecto crítico es el proceso. Luego necesitamos conocer el alcance de la automatización de procesos robóticos, junto con la automatización de servicios. Para obtener el flujo de valor correcto de la automatización, podemos seguir un proceso.

 

Curso de DevOps: Identificar el alcance de la automatización

Como podemos ver en la imagen superior, comenzamos con la planificación, eso es lo que se llama idear. Una vez realizada la planificación, debemos crear el producto, y eso lo hacemos en la fase de creación. Seguimos un enfoque de ingeniería estándar para crear el producto. Y luego llega el momento del lanzamiento, donde también debemos probar la automatización de este. Finalmente, tenemos operaciones, donde intentamos identificar operaciones de monitoreo de soporte que pueden automatizarse. Y finalmente, tenemos el usuario final, donde podemos descubrir todas las funciones que contiene. Que se pueden utilizar para facilitar al usuario final el flujo de valor de idear, crear, lanzar y operar en un producto en particular. Necesitamos comprender que todo el proceso de idear, crear, lanzar y operar debe adoptar los principios ágiles y DevOps. Cuando adoptamos los principios Agile y DevOps, nos brinda beneficios en términos de tiempo de obtención de valor. Y ese tiempo para generar valor nos proporciona un tiempo de entrega de un extremo a otro que nos ayuda a estimar los beneficios de la automatización.

 

Curso de DevOps: RPA

A continuación vamos a examinar uno de los paradigmas más  populares de automatización, que se llama RPA. Empezamos siempre por aprender, donde clasificamos qué es RPA y qué no se puede considerar como RPA. Una vez que aprendemos y definimos el alcance, pasamos al segundo paso, la fase de identificación, donde identificamos posibles oportunidades de RPA. Una vez que lo hemos identificado, pasamos a la fase de selección, donde derivamos el caso de uso inicial e intentamos definir criterios de éxito. Una vez que hayamos identificado el caso de uso inicial y estemos listos con los criterios de éxito, haremos una prueba piloto. Es decir, crearemos una solución para el caso de uso inicial que seleccionamos en la etapa anterior. Una vez que el piloto esté listo, debemos analizar el resultado. Y ese análisis se realiza manteniendo las medidas correctas en el lugar correcto en el piloto. Finalmente, la medida nos dará un documento de lección aprendida. Que se utilizará para la expansión, que es la última fase de la implementación actual de RPA para realizar el flujo de valor. Expandir proporcionará un margen para pasar al siguiente caso de uso y repetir todo el proceso de selección, prueba piloto y medición. Todo este proceso puede ser de naturaleza iterativa, dependiendo de la cantidad de casos de uso que hayan seleccionado. Y para lo cual hemos definido los criterios de éxito para derivar el flujo de valor.

 

Curso de DevOps: Identificar el alcance de la automatización

Finalmente necesitamos entender cómo derivar el alcance de la automatización.

Existen varios criterios diferentes según los cuales mediremos la automatización. Esos criterios se pueden definir sobre la base de cuatro clasificaciones importantes. El primero es estático, el segundo es dinámico, el tercero es altamente personalizado y el cuarto es estandarizado. Hay dos elementos importantes que debemos considerar dentro de un flujo de trabajo, es decir, la automatización de tareas o actividades y la automatización del flujo de trabajo. Pero cuando pasamos a tener una visión empresarial más amplia, se hace más dinámico y altamente personalizado. Nos centraremos en la automatización de procesos y la automatización centrada en decisiones.

 

sábado, 2 de noviembre de 2024

Cláusula CREATE

Se utiliza para crear diferentes objetos

CREATE [OBJETO] nombre_objeto;

Ejemplos

CREATE Database

Crea una base de datos con el siguiente comando SQL:

CREATE DATABASE Nombre_Base_Datos;

Esto crea una base de datos vacía llamada Nombre_Base_Datos donde podemos crear las tablas y el resto de objetos.

Clausula CREATE


CREATE Function 

Crea una función con el siguiente comando SQL:

CREATE Function nombre_funcion([lista_de_parametros]) RETURNS tipo_de_datos_retorno AS BEGIN cuerpo_funcion RETURN expresión_escalar END

Parámetros

Descripción de los argumentos:  nombre_funcion es el nombre de la función lista_de_parametros son los  parámetros que la función acepta;  tipo_de_datos_retorno es el tipo de dato que devuelve la función.  Cuerpo_funcion es el código de la función, y expresión_escalar es el valor escalar devuelto por la función.

Observaciones

CREATE FUNCTION crea una función definida por el usuario que se puede usar al realizar una consulta SELECT, INSERT, UPDATE o DELETE. Las funciones se pueden crear para devolver una sola variable o una sola tabla.

Ejemplos

Crear una nueva función

CREATE FUNCTION Mi_Funcion (@input varchar(1000))

RETURNS varchar(1000) AS BEGIN DECLARE @output varchar(1000)

SET @output = SUBSTRING(@input, 0, CASE CHARINDEX(' ', @input)

WHEN 0 THEN LEN(@input) + 1 ELSE CHARINDEX(' ', @input) END)

RETURN @output END

Este ejemplo crea una función llamada Mi_Funcion, que acepta un parámetro de entrada de tipo varchar y devuelve como salida otro valor varchar.

CREATE Table

La instrucción CREATE TABLE se utiliza para crear una nueva tabla en la base de datos. La definición de tabla consta de una lista de columnas, sus tipos y cualquier restricción de integridad.

Sintaxis

CREATE TABLE NombreTabla( [NombreColumna1] [tipoDato1] [, [NombreColumna1] [tipoDato2] ...])

Observaciones

Los nombres de las tablas deben ser únicos, los nombres de las columnas dentro de la misma tabla deben ser únicos.

Ejemplos

Crear una nueva tabla

Una tabla básica de Empleados, que contenga una identificación, el nombre y apellidos del empleado junto con su  número de teléfono.

CREATE TABLE Empleados(Id int identity(1,1) primary key not null,Nombre varchar(20) not null,Apellido1 varchar(20) not null,Apellido2 varchar(20) not null,NumeroTelefono varchar(10) not null);

Este ejemplo es específico de Transact-SQL, CREATE TABLE crea una nueva tabla en la base de datos, seguida del nombre de la tabla, Empleados. A esto le sigue la lista de nombres de columnas y sus propiedades, como el ID.

ID int identidad (1,1) no nulo

Significado de los valores

Id es el nombre de la primara columna (el identificador de cada empleado).

int es el tipo de datos, integer en este caso.

identity(1,1)  indica que la columna tendrá valores generados automáticamente comenzando en 1 e incrementándose en 1 para cada nuevo registro

primary key indica que es la clave principal y que todos los valores de esta columna tendrán valores únicos. 

Not null indica que esta columna no puede tener valores nulos.

Create Table a partir de una Select

Es posible que deseemos crear un duplicado de una tabla: Por ejemplo 

CREATE TABLE Empleados_Duplicado  AS SELECT * FROM Empleados;

Podemos utilizar cualquiera de las características de una instrucción SELECT para modificar los datos antes de pasarlos a nuestra nueva tabla. Las filas y columnas de la nueva tabla se crearán automáticamente según las que seleccionemos en nuestra query.

CREATE TABLE Empleados_modificado  AS SELECT Id., CONCAT(Nombre", ",Apellido1) AS Nombre_Completo FROM Empleados WHERE Id > 10;

Duplicar una tabla

Para duplicar una tabla, simplemente haremos lo siguiente:

CREATE TABLE nueva_tabla LIKE antigua_tabla;

INSERT nueva_tabla SELECT * FROM antigua_tabla;

Crear una tabla con Foreign Key

Para crear una tabla con referencia a otra, por ejemplo vamos a crear una tabla de Empleados con referencia a una tabla de Ciudades.

CREATE TABLE Ciudades(ID_Ciudad INT IDENTITY(1,1) NOT NULL,Nombre VARCHAR(20) NOT NULL,Código_postal VARCHAR(10) NOT NULL);

CREATE TABLE Empleados(ID_Empleado INT IDENTITY (1,1) NOT NULL,Nombre VARCHAR(20) NOT NULL,Apellido1 VARCHAR(20) NOT NULL,Apellido2 VARCHAR(20) NOT NULL,Num_teléfono VARCHAR(10) NOT NULL,ID_Ciudad INT FOREIGN KEY REFERENCES Ciudades (ID_Ciudad));

La columna ID_Ciudad de la tabla Empleados hará referencia a la columna ID_Ciudad de la tabla Ciudades. La línea que hace posible esto es la última, es decir esta:

ID_Ciudad INT FOREIGN KEY REFERENCES Ciudades (ID_Ciudad)

Su significado es el siguiente:

ID_Ciudad es el nombre de la columna

INT es el tipo de la de la columna FOREIGN KEY que crea la clave externa (opcional) 

REFERENCES

Ciudades (ID de ciudad) hace la referencia a la tabla Ciudades columna ID_Ciudad.

Importante: No se puede hacer referencia a una tabla que no existe en la base de datos. Hay que estar atentos a crear primero la tabla Ciudades y luego la  tabla Empleados. Si se hace al revés, dará error. 


sábado, 12 de octubre de 2024

Curso de DevOps: Automatización III. Descubriendo la necesidad de automatización

 Vamos a es especificar los métodos que pueden ayudar a encontrar procesos comerciales clave que son candidatos valiosos para la automatización de IT. Una de las tareas esenciales del ingeniero de soporte de automatización es identificar el método de búsqueda de procesos de automatización. Podemos utilizar uno o una combinación de varios métodos diferentes para obtener más detalles sobre el sistema actual que puede automatizarse.

Curso de DevOps: Descubriendo la necesidad de automatización

En primer lugar estaría la identificación de procesos, es decir debemos identificar dichos procesos. En segundo lugar está la implementación del proceso, es necesario encontrar en qué consistirá la implementación de la automatización del proceso. Pero antes de implementarlo es necesario realizar un análisis adecuado, lo que conduce a múltiples alternativas diferentes que pueden utilizarse para implementarlo. El descubrimiento de procesos es también una de las técnicas que se pueden aplicar para su automatización. A veces encontraremos que es necesario rediseñar algunas de las automatizaciones que ya se han realizado. Para lo cual es necesario ajustar el proceso rediseñándolo. Y, por último, debemos asegurarnos de poder utilizar la capacidad de seguimiento y control de procesos. Esto genera gran cantidad de datos que nos proporcionan una buena comprensión de la automatización actual, que nos permitirá aplicar técnicas para futuras necesidades de automatización.

Ahora nos vamos a centrar en el enfoque que podemos adoptar para identificar procesos de automatización.

Curso de DevOps: Descubriendo la necesidad de automatización

Siempre debemos comenzar por identificar los tipos de casos. Para cada caso tendremos ciertas funciones, ese es el segundo paso que tenemos que identificar. A continuación, debemos derivar una matriz de casos y funciones que nos ayude a comprender qué parte de la funcionalidad se puede automatizar y qué parte de la funcionalidad no se puede automatizar. Cualquiera que sea el resultado de las métricas, lo recogeremos  y comenzaremos a gestionar el proceso de automatización. Para ello, adoptaremos las mejores prácticas para dividir procesos, con la ayuda de las pautas prescritas por el arquitecto de automatización.

Curso de DevOps: Descubriendo la necesidad de automatización

A continuación nos centraremos en la gestión de la automatización de procesos de negocio,

los procesos de negocio son propensos a cambios. Por lo tanto, siempre debemos idear un enfoque sólido y ágil para gestionar la automatización de los procesos de negocio. Es necesario adoptar el ciclo de vida adecuado para la mejora de los procesos de negocio, que incluya pasos como descubrir, analizar, rediseñar, implementar y monitorear. El ciclo de vida de mejora de los procesos de negocio proporcionará resultados que podemos utilizar para comenzar una nueva fase de gestión de la automatización de procesos comerciales, que se denomina ciclo de vida de realización comercial, donde se obtienen los resultados del ciclo de vida del proceso comercial. Siempre comenzamos con identificar. Luego debemos medir utilizando varias métricas diferentes que nos ayuden a identificar el costo de ejecución correcto del proceso. En tercer lugar, tenemos ejecutar. Y finalmente necesitamos identificar los KPI correctos que nos ayuden a sostener el proceso.

Debemos comprender que obtendremos suficiente información del seguimiento del ciclo de vida de mejora de los procesos de negocio que nos ayudará a identificar y crear informes de KPI para su sostenibilidad.

Curso de DevOps: Descubriendo la necesidad de automatización

Finalmente, dividiremos el mecanismo de automatización de procesos de negocio en dos partes diferentes, tal como se muestra en la imagen superior. Tenemos la automatización de procesos de negocio, donde nuestro enfoque estará en la implementación para derivar la solución, que incluye actividades como el desarrollo de software y la integración de sistemas. En segundo lugar está el análisis y la optimización, que incluye la toma de decisiones, como comprar o desarrollar. Derivar el diseño y la arquitectura de la solución adecuada y preparar una documentación sólida del proceso.

 

sábado, 5 de octubre de 2024

Cláusula CASE de SQL

 La expresión CASE se utiliza para implementar la lógica si-entonces.

Sintaxis

CASE expresión_entrada

WHEN compara1 THEN resultado1

[WHEN compara2 THEN resultado2]...

[ELSE resultadoX]

END

CASE

WHEN condicion1 THEN resultado1

[WHEN condicion2 THEN resultado2]...

[ELSE resultadoX]

 

SELECT CASE en SQL

Observaciones
La expresión CASE simple devuelve el primer resultado cuyo valor comparaX es igual a la expresión_entrada.
La expresión CASE buscada devuelve el primer resultado cuya condiciónX es verdadera.

Ejemplo

El CASE buscado en la SELECT (Coincide con una expresión booleana) y devuelve resultados cuando una expresión booleana es VERDADERA. (Esto difiere del caso simple, en el que sólo se puede verificar la equivalencia con una entrada).

SELECT Id, IdArticulo, Precio,

CASE WHEN Precio < 10 THEN 'BARATO'

WHEN Precio < 20 THEN 'ALCANZABLE'

ELSE 'CARO'

END AS RangoPrecio

FROM Precio_Articulos 

Devolverá un resultado de este estilo:d ItemId Price PriceRating

1 100 34.5 CARO

2 145 2.3 BARATO

3 100 34.5 CARO

4 100 34.5 CARO

5 145 10 ALCANZABLE

SUM y CASE

Utilizaremos SUM junto con CASE para contar el número de filas en una columna que cumpla una condición.

CASE se puede utilizar junto con SUM para devolver un recuento de solo aquellos elementos que coincidan con una condición predefinida. El truco consiste en devolver resultados binarios que indiquen coincidencias, de modo que se devuelvan "1" para las entradas coincidentes. Se puede sumar para contar el número total de coincidencias. Dada la siguiente tabla Precio_Articulos, digamos que deseamos conocer el número total de artículos que se han categorizado como "CARO":

SELECT

COUNT(Id) AS CuentaArticulos,

SUM ( CASE

WHEN RangoPrecio = 'CARO' THEN 1

ELSE 0

END

) AS CUENTA_CAROS

FROM Precio_Articulos

 

Query Alternativa:

SELECT

COUNT(Id) as CuentaArticulos,

SUM (CASE RangoPrecio

WHEN 'CARO' THEN 1

ELSE 0

END

) AS CUENTA_CAROS

FROM Precio_Articulos

Abreviar CASE en una SELECT

Esta variante abreviada de CASE evalúa una expresión (normalmente una columna) frente a una serie de valores. Esta variante es un poco más corta y evita repetir la expresión evaluada una y otra vez.  Además aún se puede utilizar la cláusula ELSE:

SELECT Id, ArticuloId, Precio,

CASE Precio WHEN 5 THEN 'BARATO'

WHEN 15 THEN 'ALCANZABLE'

ELSE 'CARO'

END as RangoPrecio

FROM Precio_Articulos

Un poco de precaución, pues hay que tener en cuenta de que cuando se utiliza la variante corta, la declaración completa es evaluada en cada WHEN. Por ello la siguiente query:

SELECT

CASE ABS(CHECKSUM(NEWID())) % 4

WHEN 0 THEN 'Dr'

WHEN 1 THEN 'Master'

WHEN 2 THEN 'Mr'

WHEN 3 THEN 'Mrs'

END

Esta query puede producir un resultado NULL. Esto se debe a que en cada WHEN, la clausula NEWID() se vuelve a llamar con un nuevo resultado.

Es mejor utilizar esta query equivalente:

SELECT

CASE

WHEN ABS(CHECKSUM(NEWID())) % 4 = 0 THEN 'Dr'

WHEN ABS(CHECKSUM(NEWID())) % 4 = 1 THEN 'Master'

WHEN ABS(CHECKSUM(NEWID())) % 4 = 2 THEN 'Mr'

WHEN ABS(CHECKSUM(NEWID())) % 4 = 3 THEN 'Mrs'

END

Por lo tanto, se pueden omitir todos los casos WHEN y dar como resultado NULL.

Usando CASE en una cláusula UPDATE

Muestra sobre aumentos de precios:

UPDATE Tabla_Precios

SET Price = Precio *

CASE Id_Articulo

WHEN 1 THEN 1.05

WHEN 2 THEN 1.10

WHEN 3 THEN 1.15

ELSE 1.00

END

Usando CASE en la cláusula ORDER BY

CASE ordena en último lugar los valores NULL de modo que, '0' representa los valores conocidos y se clasifican en primer lugar, mientras que  '1' representa los valores NULL y se clasifican en último lugar:

SELECT ID, REGION, CIUDAD, DEPARTAMENTO, NUMERO_EMPLEADO

FROM TABLA_DEPARTAMENTOS

ORDER BY

CASE WHEN REGION IS NULL THEN 1

ELSE 0

END,

REGION

Este es un ejemplo del resultado que podría dar:

ID REGION CITY DEPARTMENT EMPLOYEES_NUMBER

10 Andalucía Almería INVESTIGACION 13

14 Andalucía Ecija VENTAS 12

9 Cantabria Torrelavega VENTAS 8

12 Castilla la Mancha Toledo MARKETING 9

5 La Rioja  Arnedo INVESTIGACION 11

15 NULL Torrejon de Ardoz MARKETING 12

4 NULL Zaragoza INNOVACION 11

2 NULL Requena RECURSOS HUMANOS 9

Para ordenar registros por el valor más bajo de 2 columnas

Vamos a imaginar que necesitamos ordenar registros por el valor más bajo de cualquiera de las dos columnas. Algunas bases de datos podrían usar una función MIN() o LEAST() de este modo (... ORDER BY MIN(Fecha1, Fecha2)), pero en SQL estándar, debemos utilizar una expresión CASE. La expresión CASE en la consulta siguiente mira las columnas Fecha1 y Fecha2, y verifica cuál tiene el valor más bajo y ordena los registros según este valor.

Por ejemplo, dados estos datos: Las fechas están en formato inglés AAAA-MM-DD

d ate1 Date2

1 2017-01-01 2017-01-31

2 2017-01-31 2017-01-03

3 2017-01-31 2017-01-02

4 2017-01-06 2017-01-31

5 2017-01-31 2017-01-05

6 2017-01-04 2017-01-31

Utilizamos esta query

SELECT Id, Fecha1, Fecha2

FROM Tabla_Fechas

ORDER BY CASE

WHEN COALESCE(Fecha1, '2000-01-01') < COALESCE(Fecha2, '2000-01-01') THEN Fecha1

ELSE Fecha2

END

El resultado sería este:

Id Date1 Date2

1 2017-01-01 2017-01-31

3 2017-01-31 2017-01-02

2 2017-01-31 2017-01-03

6 2017-01-04 2017-01-31

5 2017-01-31 2017-01-05

4 2017-01-06 2017-01-31

Como se puede ver, la fila con Id = 1 es la primera, debido a que Fecha1 tiene el registro más bajo de toda la tabla 2017. (01-01), la fila Id = 3 es la segunda porque Fecha2 es igual a 2017-01-02, que es el segundo valor más bajo de la tabla, etc.

Así que hemos ordenado los registros del 2017-01-01 al 2017-01-06 de forma ascendente y no nos importa si el valor se encuentra en la columna Fecha1 o en Fecha2.

 

sábado, 14 de septiembre de 2024

Curso de DevOps: Automatización II. Tareas y procesos clave para automatizar

Vamos a ver los pasos para identificar tareas y procesos clave que pueden automatizarse para obtener valor en nuestro negocio. El modelado de negocios es una tarea crítica. Necesitamos entender el negocio desde varias perspectivas diferentes; hablar con las partes interesadas de las empresas,  identificar a los consumidores. Y finalmente adoptar una hoja de ruta particular para poder implementar un plan de automatización del modelo de negocio que nuestro equipo de TI pueda llevar a cabo. 

Tareas y procesos clave para automatizar
 
Para empezar, debemos adoptar siempre el modelado de procesos de negocio como un campo interdisciplinario. El segundo objetivo importante es cubrir todo el ciclo de vida del proceso empresarial. Y eso sólo se puede hacer si somos capaces de identificar todas las entidades comerciales involucradas y saber cómo se realizan realmente las transiciones en los procesos comerciales. El tercer objetivo es derivar una práctica que siga un enfoque paso a paso para el modelado. Y el cuarto objetivo es que el modelado de negocios depende en gran medida de un enfoque de modelado de procesos maduro y estandarizado. 

Por lo tanto, primero debemos identificar los estándares que vamos a seguir y luego aplicar esos estándares mientras realizamos el modelado de negocios. Vamos a ver varios elementos críticos diferentes de los procesos comerciales. Necesitamos entender que el proceso de negocio siempre conducirá a algún resultado. Los procesos de negocio, contienen tres elementos importantes. El primero es el elemento empresarial. En segundo lugar está la actividad que realiza la empresa, y en tercer lugar está el punto de decisión en el que tenemos que decidir. 

Curso de DevOps. Tareas y procesos clave para automatizar
 
El proceso de negocio es un objeto que se crea internamente. Ese objeto tendrá impacto sobre el resultado. Ese resultado es un elemento de apoyo que representa al usuario en el sistema. Como resultado del proceso empresarial, obtendremos algún resultado que puede ser negativo o positivo. Y dependiendo del resultado, iniciará la acción adecuada y se informará al usuario. Luego hemos de preguntarnos, para poder hacer modelos de negocios, ¿cuáles son las tareas y procesos clave que debemos seguir? Siempre comenzamos con la identificación del proceso que nos brinde la arquitectura y nos ayude a descubrir varios componentes diferentes de este. 

Curso de DevOps. Tareas y procesos clave para automatizar

Una vez lo tengamos, analizaremos dicho proceso. Analizar el proceso significa comprender el proceso, crear un documento de resultado de análisis elaborado que pueda usarse como información para rediseñar o diseñar. Una vez que el diseño esté listo, indicaremos que es un proceso que se implementará pronto. Y se llevará a otra fase que es la fase de implementación. La fase de implementación, es decir cuando los procesos están listos para ejecutarse cada vez que se realiza una solicitud. Finalmente la ejecución de nuestros procesos producirá datos que se pueden utilizar para monitorear procesos e improvisar procesos para un mejor control. 

Curso de DevOps. Tareas y procesos clave para automatizar

El primer beneficio de la automatización del modelado de procesos de negocio es que permite una implementación sistemática, que puede documentarse y utilizarse como aprendizaje. Aumenta la capacidad para obtener un mejor control del proceso. En otras palabras, podrá derivar un mecanismo que proporcione un mejor control del proceso. El tercer beneficio de la automatización BPM es que automatiza los procesos mediante la coordinación y ejecución del modelo de procesos de negocio. Una vez que se dispone del modelo, nos proporcionará un tema para la automatización. Y, por último, también simplifica la implementación del flujo de trabajo, lo que nos ayuda a representar el flujo de trabajo empresarial correcto, que puede transformarse en un proceso de TI utilizando el modelo de negocio.

sábado, 7 de septiembre de 2024

Cláusula ALTER TABLE en SQL

Introducción

El comando ALTER en SQL se usa para modificar la columna/restricción en una tabla.

Sintaxis

ALTER TABLE [nombre_tabla] ADD [nombre_columna] [tipo de dato]

Ejemplos

Añadir Columnas

ALTER TABLE Empleados

ADD FechaIncorporacion date NOT NULL DEFAULT GetDate(),

FechaDeNacimiento date NULL 

La declaración anterior agregaría las columnas denominadas FechaIncorporacion que no puede ser NULL por defecto y fecha actual como valor por defecto y FechaDeNacimiento que si puede ser NULL en la tabla Empleados.

Cláusula ALTER TABLE en SQL


Drop Column 

ALTER TABLE Empleados

DROP COLUMN salario;

Esto no solo eliminará información de esa columna, sino que también eliminará la columna salario de la tabla Empleados (la columna ya no existirá).

Drop Constraint

ALTER TABLE Empleados

DROP CONSTRAINT SalarioBase

Esto elimina una restricción llamada SalarioBase de la definición de la tabla Empleados.

Nota: - Asegúrate de eliminar las restricciones de la columna antes de eliminar una columna.

Añadir Constraint

ALTER TABLE Empleados

ADD CONSTRAINT SalarioBase DEFAULT ((100)) FOR [Salario]

Esto agrega una restricción llamada SalarioBase que especifica un valor 
predeterminado de 100 para la columna Salario.
Se puede agregar una restricción a nivel de tabla.

Tipos de constraints

Primary Key - Clave principal: evita un registro duplicado en la tabla
Foreign Key- Clave externa: apunta a una clave principal de otra tabla.
• Not Null: evita que se introduzcan valores nulos en una columna.
Unique: identifica de forma única cada registro de la tabla.
Default: especifica un valor predeterminado
Check: limita los rangos de valores que se pueden colocar en una columna.
Para obtener más información sobre las restricciones, consulte la 
documentación de Oracle.

Alter Column

ALTER TABLE Empleados

ALTER COLUMN FechaIncorporacion DATETIME NOT NULL DEFAULT (GETDATE())

Esta consulta alterará el tipo de datos de la columna de FechaIncorporacion 
y lo cambiará de fecha simple a tipo DATETIME y establece el valor 
predeterminado en la fecha actual.

Añadir Primary Key

ALTER TABLE EMPLEADOS ADD pk_empleadoID PRIMARY KEY (ID)

Esto agregará una clave principal a la tabla Empleados en el campo ID. 
Incluyendo más de una columna en el paréntesis junto con el ID, 
se creará una clave primaria compuesta. Al agregar más de una columna, 
los nombres de las columnas deben estar separados por comas.

 ALTER TABLE EMPLEADOS ADD pk_empleadoID PRIMARY KEY (ID, FNombre)