Insert, Update, Delete, Indentity y Sequence
Temas de este video tutorial: Insert, Update, Delete, actualizar datos de una tabla con respecto a otra tabla, eliminar datos de una tabla con respecto a otra tabla, función Identity, objeto Sequence.
- INSERT: La sentencia
INSERT
se utiliza para agregar nuevos registros a una tabla en una base de datos. La sintaxis básica es la siguiente:INSERT INTO nombre_tabla (columna1, columna2, ...)
VALUES (valor1, valor2, ...);
Por ejemplo, para insertar un nuevo empleado en una tabla de empleados:
INSERT INTO empleados (nombre, apellido, edad)
VALUES ('Juan', 'Pérez', 30);
- UPDATE: La sentencia
UPDATE
se utiliza para actualizar los valores de una o varias columnas en uno o varios registros de una tabla. La sintaxis básica es la siguiente:UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2, ...
WHERE condicion;
Por ejemplo, para actualizar el salario de un empleado:
UPDATE empleados
SET salario = 25000
WHERE id_empleado = 1;
- DELETE: La sentencia
DELETE
se utiliza para eliminar uno o varios registros de una tabla. La sintaxis básica es la siguiente:DELETE FROM nombre_tabla
WHERE condicion;
Por ejemplo, para eliminar un empleado:
DELETE FROM empleados
WHERE id_empleado = 1;
- Actualizar datos de una tabla con respecto a otra tabla: Puedes usar la sentencia
UPDATE
con una cláusulaFROM
para actualizar los datos de una tabla basados en los datos de otra tabla. Por ejemplo, para actualizar el salario de los empleados en una tabla usando los datos de otra tabla temporal:UPDATE empleados
SET salario = t.salario_nuevo
FROM empleados e
INNER JOIN tabla_temporal t ON e.id_empleado = t.id_empleado;
- Eliminar datos de una tabla con respecto a otra tabla: Puedes usar la sentencia
DELETE
con una cláusulaFROM
para eliminar registros de una tabla basados en los datos de otra tabla. Por ejemplo, para eliminar los empleados que están en una tabla temporal:DELETE FROM empleados
FROM empleados e
INNER JOIN tabla_temporal t ON e.id_empleado = t.id_empleado;IdentityLa función
IDENTITY
en SQL Server se utiliza para generar valores automáticamente para una columna al insertar nuevos registros en una tabla. Esta función es útil cuando necesitas generar valores únicos de forma automática, como en el caso de un identificador único para cada registro.Para utilizar la función
IDENTITY
, primero debes definir una columna en una tabla con el atributoIDENTITY
. La sintaxis básica para crear una tabla con una columnaIDENTITY
es la siguiente:CREATE TABLE nombre_tabla
(
id_columna INT IDENTITY(1,1) PRIMARY KEY,
otra_columna VARCHAR(50)
);
En este ejemplo,
id_columna
es la columna que utilizará la funciónIDENTITY
para generar valores automáticamente. Los parámetrosIDENTITY(1,1)
especifican que los valores comenzarán en 1 y se incrementarán en 1 para cada nuevo registro.Cuando insertas un nuevo registro en la tabla y no proporcionas un valor para la columna
IDENTITY
, SQL Server automáticamente genera un valor único para esa columna. Por ejemplo:INSERT INTO nombre_tabla (otra_columna)
VALUES ('valor');
En este caso, SQL Server generará automáticamente un valor para
id_columna
.Es importante tener en cuenta que una tabla solo puede tener una columna
IDENTITY
y que esta columna normalmente se utiliza como clave primaria. La funciónIDENTITY
también se puede personalizar para que los valores se incrementen en un valor distinto de 1 o para que comiencen en un valor distinto de 1, pero estos casos son menos comunes.
sequence
La instrucción SEQUENCE
en SQL Server se utiliza para crear un objeto que genera secuencias de números únicos. Esto es útil cuando necesitas generar valores únicos para una columna en una tabla, similar a la función IDENTITY
, pero con más flexibilidad y control sobre cómo se generan los valores.
La sintaxis básica para crear una secuencia es la siguiente:
CREATE SEQUENCE nombre_secuencia
START WITH valor_inicial
INCREMENT BY incremento
[ MINVALUE min_valor ]
[ MAXVALUE max_valor ]
[ CYCLE | NO CYCLE ];
nombre_secuencia
es el nombre que le das a la secuencia.START WITH
especifica el valor inicial de la secuencia.INCREMENT BY
especifica el valor en el que se incrementará la secuencia.MINVALUE
yMAXVALUE
especifican los valores mínimo y máximo que puede tener la secuencia.CYCLE
indica si la secuencia debe reiniciarse cuando se alcanza el valor máximo (CYCLE
) o si debe devolver un error (NO CYCLE
).
Una vez que has creado la secuencia, puedes utilizarla para generar valores en una columna en una tabla. Por ejemplo:
CREATE TABLE ejemplo
(
id INT PRIMARY KEY,
nombre VARCHAR(50)
);
CREATE SEQUENCE secuencia_ejemplo
START WITH 1
INCREMENT BY 1;
INSERT INTO ejemplo (id, nombre)
VALUES (NEXT VALUE FOR secuencia_ejemplo, 'Ejemplo 1'),
(NEXT VALUE FOR secuencia_ejemplo, 'Ejemplo 2');
En este ejemplo, la secuencia secuencia_ejemplo
se utiliza para generar valores automáticos para la columna id
en la tabla ejemplo
.
Las secuencias son útiles cuando necesitas más control sobre cómo se generan los valores que con la función IDENTITY
, por ejemplo, si necesitas generar valores únicos en múltiples tablas o si necesitas generar valores en un rango específico.