0% encontró este documento útil (0 votos)
5 vistas33 páginas

Semana 3 - SQL 2

El documento detalla las restricciones en bases de datos, incluyendo PRIMARY KEY, FOREIGN KEY, UNIQUE, NULL, DEFAULT, IDENTITY y CHECK, que aseguran la integridad y validez de los datos. También se describe el Lenguaje de Manipulación de Datos (DML), que permite realizar operaciones de inserción, actualización y eliminación de datos en tablas. Se presentan ejemplos de cómo implementar estas restricciones y sentencias DML en SQL.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas33 páginas

Semana 3 - SQL 2

El documento detalla las restricciones en bases de datos, incluyendo PRIMARY KEY, FOREIGN KEY, UNIQUE, NULL, DEFAULT, IDENTITY y CHECK, que aseguran la integridad y validez de los datos. También se describe el Lenguaje de Manipulación de Datos (DML), que permite realizar operaciones de inserción, actualización y eliminación de datos en tablas. Se presentan ejemplos de cómo implementar estas restricciones y sentencias DML en SQL.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 33

RESTRICCIONES

Una limitación que obliga el


cumplimiento de ciertas
condiciones en la BD.

Inherentemente definidas
¿Qué es? Es por el simple hecho de que
la BD sea relacional.

Definida algunas otras por el


usuario
RESTRICCIONES
¿CUÁLES SON LAS RESTRICCIONES A NIVEL DEL MOTOR DE BASE DE DATOS?

1. PRIMARY KEY • Clave primaria


SON
2. FOREIGN KEY • Clave externa
7
3. UNIQUE • Unicidad de datos

4. NULL • Valor vacío

5. DEFAULT • Valor predeterminado

6. IDENTITY • Correlativo automático

7. CHECK • Alternativa de valores


PRIMARY KEY
Es un valor que identifica de manera única a cada FILA.

DONDE:

• El valor puede ser de un campo (simple) o de la combinación de


varios campos (compuesta)

▪ Los campos que identifican al Primary Key deben ser Not Null

▪ No permite valores nulos


Restricción
▪ No permite valores duplicados
CONSTRAINT: Primary Key

TABLA: DISTRITO

ADEMÁS:
▪ Se define un Primary Key por TABLA
▪ Se puede definir para una o más COLUMNAS
▪ Índice de tipo CLUSTERED: La tabla está ordenada físicamente
por su índice
CONSTRAINT: Foreign Key

Foreign Key:

▪ Permite definir una clave externa, que es una


columna o combinación de columnas, que se
utiliza para establecer y exigir un vínculo
entre los datos de dos tablas.

▪ Evidencia una relación física entre dos


entidades

▪ En una relación “Uno a Muchos” la llave del


lado “Uno” es referenciada desde el lado
“Muchos”
CONSTRAINT: Foreign Key

Ejemplo:
Tabla: DISTRITO

Tabla: CLIENTE

FK

ADEVERTENCIA: (Prohibido olvidar)


▪ Antes de registrar un dato en Cliente, debe haber sido registrado en
Distrito.
▪ Antes de borrar un dato de Distrito, no debe de existir un dato en Cliente.
CONSTRAINT: Foreign Key
Alter Table Estado
Ejemplo 02: Add Primary Key (Cod_Est)

Llave primaria Alter Table Usuario


Add Primary Key (Cod_Usua)

Llave foránea

Llave Alter Table Usuario


primaria Add Foreign Key (Cod_Est)
References Estado
RESTRICCIONES

Indica implícitamente al Motor de base de datos que


DEFAULT cargue un valor predeterminado en la columna en la que
no se haya especificado ningún valor.

Podemos definir un valor por defecto de las siguientes formas:

• Al crear una tabla • A una tabla, ya existente

CREATE TABLE NOMBRE_TABLA ( ALTER TABLE NOMBRE_TABLA


COLUMNA1 TIPO DEFAULT VALOR ADD DEFAULT 'VALOR' FOR CAMPO
COLUMNA2 TIPO DEFAULT VALOR )
DEFAULT
REGLA DE NEGOCIO:
• Al crear una tabla • A la tabla, ya existente
DEFAULT
Otros ejemplos:

Ejemplo 01
La fecha de ingreso del empleado debe tener por defecto el valor de la
fecha emitida por el sistema.

ALTER TABLE EMPLEADO


ADD CONSTRAINT DFFECHA_INGRESO
DEFAULT GETDATE() FOR FECHA_INGRESO
GO

Ejemplo 02
ASIGNAR EL VALOR “NO REGISTRA” AL CORREO ELECTRONICO (EMAIL) DE LA TABLA CLIENTE

ALTER TABLE CLIENTE


ADD CONSTRAINT DF_EMAIL
DEFAULT ‘NO REGISTRA’ FOR EMAIL
GO
RESTRICCIONES

Asegura que sólo puedan existir entradas de los tipos o


CHECK rangos esperados para una columna determinada

Podemos definir un valor por defecto de las siguientes formas:

• Al crear una tabla


CREATE TABLE NOMBRE_TABLA (
COLUMNA1 TIPO NULL|NOT NULL CHECK (CONDICIÓN)
COLUMNA2 TIPO NULL|NOT NULL CHECK (CONDICIÓN)
)
• A una tabla, ya existente
ALTER TABLE NOMBRE_TABLA ADD CONSTRAINT
NOMBRE_RESTRICCIÓN CHECK (CONDICIÓN)
CHECK

REGLA DE NEGOCIO:

• Al crear una tabla • A la tabla, ya existente


CHECK

Otros ejemplos:

Ejemplo 01
El sueldo Básico del empleado debe aceptar entre 850 y 6000.

ALTER TABLE EMPLEADO


ADD CONSTRAINT CKSUELDO_EMP
CHECK (SUELDO_BASICO>=850 AND SUELDO_BASICO<=6000)
GO

Ejemplo 02
El estado civil del empleado no admite viudos o divorciados.

ALTER TABLE EMPLEADO


ADD CONSTRAINT CKECIVIL_EMP
CHECK (NOT(ESTADO_CIVIL='VIUDO(A)') AND
NOT(ESTADO_CIVIL='DIVORCIADO(A)'))
GO
RESTRICCIONES

La restricción UNIQUE asigna a uno o varios campos de


UNIQUE una tabla que sus valores no sean repetidos

Podemos definir un valor por defecto de las siguientes formas:

• Al crear una tabla


CREATE TABLE NOMBRE_TABLA (
COLUMNA1 TIPO NULL|NOT NULL UNIQUE )

• A una tabla, ya existente


ALTER TABLE NOMBRE_TABLA
ADD CONSTRAINT NOMBRE_RESTRICCIÓN
UNIQUE (CAMPO)
UNIQUE

REGLA DE NEGOCIO:

• Al crear una tabla • A la tabla, ya existente


UNIQUE
Otros ejemplos:

Ejemplo 01
Apellidos de los empleados deben ser valores únicos.

ALTER TABLE EMPLEADO


ADD CONSTRAINT UQAPELLIDOS
UNIQUE (APELLIDOS)
GO

Ejemplo 02
La descripción del producto deben ser valores únicos

ALTER TABLE PRODUCTO


ADD CONSTRAINT UQ_DESCRIPCION_PROD
UNIQUE (DESCRIPCION)
GO
RESTRICCIONES

Asigna un valor incremental a una sola columna dentro


IDENTITY de una tabla

Podemos definir una restricción IDENTITY de la siguiente forma:

CREATE TABLE NOMBRE_TABLA (


COLUMNA1 INT IDENTITY (VALOR INICIO, VALOR DE INCREMENTO) )
IDENTITY

REGLA DE NEGOCIO:

Ejemplo 01
La tabla DETALLE_BOLETA cuenta con un campo numero de ítem que se
autoincrementa de 1 en 1 a partir de 100.

CREATE TABLE DETALLE_BOLETA(


nro_item int IDENTITY (100,1),
nro_boleta char (8) not null,
cod_prod char (6) not null,
cantidad int not null,
precio_venta numeric (8,2) not null)
GO
PARA RECORDAR:
▪ Una tabla, es una colección de datos sobre una entidad
específica, que tiene un número discreto de atributos
designados.
▪ Para crear una Tabla utilizamos sintaxis DDL: Create
Table, Alter Table, Drop Table
▪ Las relaciones sirven para poder utilizar datos
procedentes de otras tablas como si formaran parte de la
tabla en la que se esté trabajando.
▪ Una restricción consiste en la definición de una
característica adicional que tiene una columna o una
combinación de columnas. Las restricciones son:
PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK,
NULL, DEFAULT, IDENTITY
MANIPULACION DE DATOS - DML
Semana 2
¿QUÉ ES UN LENGUAJE DE MANIPULACIÓN DE DATOS?

Un lenguaje de manipulación de datos o data manipulation


language es un lenguaje proporcionado por el sistema de gestión de
base de datos que permite a los usuarios de la misma llevar a cabo las
tareas de consulta o manipulación de los datos, organizados por el
modelo de datos adecuado.

DML
¿CUÁLES SON LAS SENTENCIAS DML?

INSERT UPDATE DELETE


SENTENCIA: INSERT INTO

¿PORQUÉ Y PARA QUÉ UTILIZAR ?

Insertar datos,
Insertar filas y
SQL pone a Insertar a una a todos los
así almacenar
nuestra tabla uno más campos de la
datos en una
disposición filas. tabla o a
tabla.
algunas.
SENTENCIA: INSERT INTO

▪ Para realizar la inserción individual de filas SQL posee la


instrucción INSERT INTO.

¿Cuál es su sintaxis?
INSERT INTO Nombre_tabla[(nombre_columna1,
nombre_columna1,nombre_columna n..)]
VALUES (expr1, expr2, expr n...)

• Nombre_Tabla: Tabla donde se desea ingresar los nuevos datos.


• Nombre_Columna: Es una lista opcional de nombres de campos de la
tabla. Debe considerar el orden de las columnas.
• Expr: Es una lista de expresiones o valores constantes, separados por
comas, para dar valor a los distintos campos del registro que se añadirá a
la tabla. Las cadenas de caracteres deberán estar encerradas entre
comillas.
SENTENCIA: INSERT INTO
Primera forma de insertar

--Especificando únicamente los valores de los campos.


INSERT INTO USUARIO VALUES ('U00001','LUIS')

Segunda forma de insertar

--Especificando todos los campos a ingresar


INSERT INTO USUARIO(COD_USUA,NOM_USUA)
VALUES ('U00001','LUIS')

ANTES DESPUÉS
SENTENCIA: DELETE
¿PARA QUÉ SE UTILIZA ?

Para borrar datos de una tabla.

¿Cómo lo borramos? ¿Cuál es su sintaxis?


Primero, saber su sintaxis DELETE FROM Nombre_Tabla
[WHERE { condición }]

Donde:
Nombre_Tabla nombre de la tabla donde se desea borrar los datos.
La cláusula WHERE sigue el mismo formato que la vista en la sentencia
SELECT y determina qué registros se borrarán.
SENTENCIA: DELETE
• Eliminación total

1.) Eliminar todos los registros de la tabla usuarios


DELETE FROM USUARIOS

TABLA USUARIO ANTES TABLA USUARIO DESPUÉS


SENTENCIA: DELETE
• Eliminación con criterio (Uso de Where)

2.) Eliminar al usuario con código ‘U00001’


DELETE FROM USUARIO WHERE COD_USUA='U00001'

TABLA USUARIO ANTES TABLA USUARIO DESPUÉS


SENTENCIA: UPDATE
¿PARA QUÉ SE UTILIZA ?

Para actualizar uno o varios registros


de una única tabla.

¿Cómo lo utilizamos? ¿Cuál es su sintaxis?


Primero, saber su sintaxis UPDATE Nombre_tabla
SET nombre_columna1 = expr1,
nombre_columna2 = expr2, …...
[WHERE { condición }]

Donde:
Nombre_Tabla: Tabla donde se actualiza los datos.
Nombre columna: Es el nombre de columna o campo cuyo valor se
desea cambiar.
Expr: El nuevo valor que se desea asignar al campo que le precede.
SENTENCIA: UPDATE
• Actualización total
1.) Actualiza el Precio de venta de todos los registros de la tabla
producto incrementando en un 20%

UPDATE PRODUCTO
SET PRECIO_VENTA = PRECIO_VENTA*1.20

TABLA PRODUCTO TABLA PRODUCTO


ANTES DESPUÉS
SENTENCIA: UPDATE
• Actualización total de varios campos
2.) Actualiza el campo PRECIO_ALQXMES_DEP con 2500 y
NUM_AMB_DEP con 6 a todos los registros de la tabla
DEPARTAMENTOS

UPDATE DEPARTAMENTOS
SET PRECIO_ALQxMES_DEP = 2500,
NUM_AMB_DEP = 6

TABLA DEPARTAMENTOS TABLA DEPARTAMENTOS


ANTES DESPUÉS
SENTENCIA: UPDATE
• Actualización de un campo con criterio (uso de Where)

3.) Actualiza el campo PRECIO_ALQXMES_DEP incrementando un


10%, solo aquellos cuya AREA_TOTAL_DEP sea mayor a 100. la
actualización lo realizará en la tabla DEPARTAMENTOS.

UPDATE DEPARTAMENTOS
SET PRECIO_ALQxMES_DEP=PRECIO_ALQxMES_DEP*1.1
WHERE AREA_TOTAL_DEP > 100

TABLA DEPARTAMENTOS TABLA DEPARTAMENTOS


ANTES DESPUES
PARA RECORDAR:

• El Lenguaje de Manipulación de Datos o DML es


un lenguaje que permite a los usuarios de la
misma llevar a cabo las tareas de consulta o
manipulación de los datos, organizados por el
modelo de datos adecuado.
• El lenguaje de manipulación de datos se clasifica
en:
• INSERT INTO: consiste en añadir a una tabla
una o más filas y en cada fila todos o parte de
sus campos.
• UPDATE: Permite la actualización de uno o
varios registros de una única tabla.
• DELETE: consiste en borrar datos de una tabla,
para borrar todos los datos de una tabla
ejecutamos TRUNCATE.

También podría gustarte