SlideShare una empresa de Scribd logo
1 de 26
CONSTRAINTS (RESTRICCIONES)
Se utilizan para especificar reglas para los datos en una
tabla
CONSTRAINTS
• Las restricciones se utilizan para limitar el tipo de datos que pueden
incluirse en una tabla. Esto asegura la precisión y confiabilidad de los
datos en la tabla. Si hay alguna violación entre la restricción y la acción
de datos, la acción se cancela.
CONSTRAINTS
Las restricciones pueden ser de nivel de columna o de tabla. Las restricciones a nivel de columna se
aplican a una columna y las restricciones a nivel de tabla se aplican a toda la tabla.
Las siguientes restricciones se usan comúnmente en SQL:
• NOT NULL : garantiza que una columna no pueda tener un valor NULL
• ÚNICO : garantiza que todos los valores de una columna sean diferentes
• LLAVE PRIMARIA : una combinación de NOT NULL y ÚNICO. Identifica de forma única cada fila en
una tabla
• LLAVE EXTRANJERA : identifica de forma única una fila / registro en otra tabla
• CHECK : garantiza que todos los valores de una columna satisfagan una condición específica
• DEFAULT : establece un valor predeterminado para una columna cuando no se especifica ningún
valor
• ÍNDICE : se utiliza para crear y recuperar datos de la base de datos muy rápidamente
RESTRICCIÓN UNIQUE
• Asegura que todos los valores de una columna sean diferentes
• Proporcionan una garantía de unicidad para una columna o conjunto de
columnas.
• Se pueden tener muchas restricciones UNIQUE por tabla
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID,LastName)
);
CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
RESTRICCIÓN UNIQUE
DROP a UNIQUE Constraint
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;
Crear una restricción única en una tabla existente
ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE
(PasswordHash, PasswordSalt);
RESTRICCIÓN DEFAULT
• Se utiliza para proporcionar un valor predeterminado para una columna.
• El valor predeterminado se agregará a todos los registros nuevos SI no
se especifica ningún otro valor.
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
CREATE TABLE Orders (
ID int NOT NULL,
OrderNumber int NOT NULL,
OrderDate date DEFAULT GETDATE()
);
También se puede usar para insertar valores del
sistema, usando funciones como GETDATE ():
RESTRICCIÓN DEFAULT
• Para crear una restricción
DEFAULT en la columna
"Ciudad" cuando la tabla
ya está creada
ALTER TABLE Persons
ADD CONSTRAINT df_City
DEFAULT 'Sandnes' FOR City;
Para eliminar una restricción DEFAULT
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;
RESTRICCIÓN CHECK
• Se utiliza para limitar el rango de valores que se puede colocar en una
columna.
• Si define una restricción CHECK en una sola columna, solo permite
ciertos valores para esta columna.
• Si define una restricción CHECK en una tabla, puede limitar los valores
en ciertas columnas en función de los valores en otras columnas de la
fila.
RESTRICCIÓN CHECK
• La restricción CHECK asegura que la edad de una persona debe ser de
18 años o más:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
RESTRICCIÓN CHECK
• Para permitir el nombramiento de una restricción CHECK y para definir
una restricción CHECK en varias columnas, utilice la siguiente sintaxis
SQL:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND Ci
ty='Sandnes')
);
RESTRICCIÓN CHECK
• Para crear una restricción CHECK en la columna "Edad" cuando la tabla
ya está creada
ALTER TABLE Persons
ADD CHECK (Age>=18);
• Permite el nombramiento de una restricción CHECK y para definir una
restricción CHECK en varias columnas
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND
City='Sandnes');
RESTRICCIÓN CHECK
• Eliminar una restricción CHECK
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
CREATE INDEX
• Se utiliza para crear índices en tablas.
• Los índices se utilizan para recuperar datos de la base de datos más
rápidamente que de otra manera. Los usuarios no pueden ver los
índices, solo se utilizan para acelerar las búsquedas / consultas.
CREATE INDEX index_name
ON table_name (column1, column2, ...);
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
• Crea un índice único en una tabla. No se permiten valores duplicados:
CREATE INDEX
• La instrucción DROP INDEX se utiliza para eliminar un índice en una
tabla.
DROP INDEX table_name.index_name;
AGREGAR UNA COLUMNA CALCULADA
AL CREAR UNA TABLA
• Crea una tabla con una columna calculada
CREATE TABLE dbo.Products (
ProductID int IDENTITY (1,1) NOT NULL ,
QtyAvailable smallint ,
UnitPrice money , InventoryValue AS QtyAvailable * UnitPrice ) ;
COLUMNAS CALCULADAS
• Agrega una nueva columna a una tabla creada
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5) ;
Opcionalmente, agregue el argumento PERSISTED para almacenar físicamente los valores
calculados en la tabla:
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5)
PERSISTED ;
COLUMNAS CALCULADAS
• Cambiar una columna existente a una columna calculada
ALTER TABLE dbo.Products DROP COLUMN RetailValue ;
GO
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5) ;
ELIMINACIÓN Y ACTUALIZACIÓN EN
CASCADA
• ELIMINAR EN CASCADA: Cuando creamos una clave foránea utilizando
esta opción, elimina las filas de referencia en la tabla secundaria cuando
la fila referenciada se elimina en la tabla primaria que tiene una clave
primaria.
• ACTUALIZAR CASCADA: cuando creamos una clave externa utilizando
ACTUALIZAR CASCADA, las filas de referencia se van a actualizar en la
tabla secundaria cuando la fila referenciada se actualiza en la tabla
principal que tiene una clave primaria.
EJEMPLO
CREATE TABLE Countries
(CountryID INT PRIMARY KEY,
CountryName VARCHAR(50),
CountryCode VARCHAR(3))
CREATE TABLE States
(StateID INT PRIMARY KEY,
StateName VARCHAR(50),
StateCode VARCHAR(3),
CountryID INT)
ALTER TABLE [dbo].[States] WITH CHECK ADD
CONSTRAINT [FK_States_Countries] FOREIGN
KEY([CountryID])
REFERENCES [dbo].[Countries] ([CountryID])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[States] CHECK CONSTRAINT
[FK_States_Countries]
GO
ELIMINACIÓN EN CASCADA
ALTER TABLE [dbo].[States] WITH CHECK ADD CONSTRAINT
[FK_States_Countries] FOREIGN KEY([CountryID])
REFERENCES [dbo].[Countries] ([CountryID])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[States] CHECK CONSTRAINT [FK_States_Countries]
GO
EJEMPLO
INSERT INTO Countries VALUES (1,'United
States','USA')
INSERT INTO Countries VALUES (2,'United
Kingdom','UK')
INSERT INTO States VALUES (1,'Texas','TX',1)
INSERT INTO States VALUES (2,'Arizona','AZ',1)
SELECT * FROM Countries
SELECT * FROM States
Eliminar una fila en la tabla primaria con CountryID = 1
que a su vez también elimina las filas en la tabla
secundaria que tiene CountryID = 1.
DELETE FROM Countries WHERE CountryID = 1
SELECT * FROM States
ACTUALIZAR EN CASCADA
CREATE TABLE Countries
(CountryID INT PRIMARY KEY,
CountryName VARCHAR(50),
CountryCode VARCHAR(3))
CREATE TABLE States
(StateID INT PRIMARY KEY,
StateName VARCHAR(50),
StateCode VARCHAR(3),
CountryID INT)
GO
INSERT INTO Countries VALUES (1,'United States','USA')
INSERT INTO Countries VALUES (2,'United Kingdom','UK
')
INSERT INTO States VALUES (1,'Texas','TX',1)
INSERT INTO States VALUES (2,'Arizona','AZ',1)
GO
ACTUALIZAR EN CASCADA
ALTER TABLE [dbo].[States] WITH CHECK ADD CONSTRAINT [FK_States_Countries] FOREIGN KEY([CountryID])
REFERENCES [dbo].[Countries] ([CountryID])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[States] CHECK CONSTRAINT [FK_States_Countries]
GO
ACTUALIZAR EN CASCADA
Actualizar CountryID en los países para una fila que también actualice las filas de referencia en los estados de la
tabla secundaria.
UPDATE Countries SET CountryID =3 where CountryID=1
SELECT * FROM Countries
SELECT * FROM States
ELIMINAR Y ACTUALIZAR EN CASCADA
• Crear una clave foránea en cascada, con las reglas de actualizar y
eliminar
ALTER TABLE [dbo].[States] WITH CHECK ADD CONSTRAINT [FK_States_Coun
tries] FOREIGN KEY([CountryID])
REFERENCES [dbo].[Countries] ([CountryID])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[States] CHECK CONSTRAINT [FK_States_Countries]
GO
• https://www.sqlshack.com/es/uso-de-diferentes-tipos-de-indices-sql-
server/

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Diapositivas De Tablas y Base Datos
Diapositivas De Tablas y Base DatosDiapositivas De Tablas y Base Datos
Diapositivas De Tablas y Base Datos
 
MYSQL-Database
MYSQL-DatabaseMYSQL-Database
MYSQL-Database
 
Sql server ___________session_17(indexes)
Sql server  ___________session_17(indexes)Sql server  ___________session_17(indexes)
Sql server ___________session_17(indexes)
 
Index in sql server
Index in sql serverIndex in sql server
Index in sql server
 
Sql(structured query language)
Sql(structured query language)Sql(structured query language)
Sql(structured query language)
 
MySql slides (ppt)
MySql slides (ppt)MySql slides (ppt)
MySql slides (ppt)
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
SQL
SQLSQL
SQL
 
Vistas en mySql
Vistas en mySqlVistas en mySql
Vistas en mySql
 
Una base de datos relacional
Una base de datos relacionalUna base de datos relacional
Una base de datos relacional
 
Create table
Create tableCreate table
Create table
 
Pasos para crear una base de datos
Pasos para crear una base de datosPasos para crear una base de datos
Pasos para crear una base de datos
 
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos
 
Creación de tablas y relaciones en MySQL y wamp server
Creación de tablas y relaciones en MySQL y  wamp serverCreación de tablas y relaciones en MySQL y  wamp server
Creación de tablas y relaciones en MySQL y wamp server
 
MySql:Introduction
MySql:IntroductionMySql:Introduction
MySql:Introduction
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
Enrutamiento estático
Enrutamiento estáticoEnrutamiento estático
Enrutamiento estático
 
SQL Constraints
SQL ConstraintsSQL Constraints
SQL Constraints
 

Similar a Constraints (restricciones).pptx

Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)José Toro
 
Sql manipulacion de tabla
Sql manipulacion de tablaSql manipulacion de tabla
Sql manipulacion de tabladmonges
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosvargasaldanajohanna
 
Tm13 introduccion al_sql
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sqlJulio Pari
 
Diapositivas de tablas y tipos de datos
Diapositivas de tablas y tipos de datosDiapositivas de tablas y tipos de datos
Diapositivas de tablas y tipos de datosTAPIA SILVA EVELINA
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datosSuarezJhon
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLalexmerono
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDLbdatos
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacionalOrlando Verdugo
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacionalOrlando Verdugo
 
Creación de tablas en PostgreSQL
Creación de tablas en PostgreSQLCreación de tablas en PostgreSQL
Creación de tablas en PostgreSQLEddie Malca
 
Bases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datosBases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datosVideoconferencias UTPL
 
MANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICIONMANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICIONSergio Perez
 
Ddl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosDdl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosvargasaldanajohanna
 

Similar a Constraints (restricciones).pptx (20)

Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
Sql manipulacion de tabla
Sql manipulacion de tablaSql manipulacion de tabla
Sql manipulacion de tabla
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
 
Introduccion al sql query
Introduccion al sql queryIntroduccion al sql query
Introduccion al sql query
 
Tm13 introduccion al_sql
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sql
 
Diapositivas de tablas y tipos de datos
Diapositivas de tablas y tipos de datosDiapositivas de tablas y tipos de datos
Diapositivas de tablas y tipos de datos
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datos
 
SQL.docx
SQL.docxSQL.docx
SQL.docx
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
 
Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
 
Consultas
ConsultasConsultas
Consultas
 
Creación de tablas en PostgreSQL
Creación de tablas en PostgreSQLCreación de tablas en PostgreSQL
Creación de tablas en PostgreSQL
 
Bases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datosBases de Datos Cap VI:SQL: SQL-Definición de datos
Bases de Datos Cap VI:SQL: SQL-Definición de datos
 
MANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICIONMANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICION
 
Ddl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datosDdl-Lenguaje de definición de datos
Ddl-Lenguaje de definición de datos
 

Último

COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMcespitiacardales
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 

Último (10)

COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COMCOMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
COMOGANARAMIGODPARACRISTOIGLESIAADVENTISTANECOCLI,COM
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 

Constraints (restricciones).pptx

  • 1. CONSTRAINTS (RESTRICCIONES) Se utilizan para especificar reglas para los datos en una tabla
  • 2. CONSTRAINTS • Las restricciones se utilizan para limitar el tipo de datos que pueden incluirse en una tabla. Esto asegura la precisión y confiabilidad de los datos en la tabla. Si hay alguna violación entre la restricción y la acción de datos, la acción se cancela.
  • 3. CONSTRAINTS Las restricciones pueden ser de nivel de columna o de tabla. Las restricciones a nivel de columna se aplican a una columna y las restricciones a nivel de tabla se aplican a toda la tabla. Las siguientes restricciones se usan comúnmente en SQL: • NOT NULL : garantiza que una columna no pueda tener un valor NULL • ÚNICO : garantiza que todos los valores de una columna sean diferentes • LLAVE PRIMARIA : una combinación de NOT NULL y ÚNICO. Identifica de forma única cada fila en una tabla • LLAVE EXTRANJERA : identifica de forma única una fila / registro en otra tabla • CHECK : garantiza que todos los valores de una columna satisfagan una condición específica • DEFAULT : establece un valor predeterminado para una columna cuando no se especifica ningún valor • ÍNDICE : se utiliza para crear y recuperar datos de la base de datos muy rápidamente
  • 4. RESTRICCIÓN UNIQUE • Asegura que todos los valores de una columna sean diferentes • Proporcionan una garantía de unicidad para una columna o conjunto de columnas. • Se pueden tener muchas restricciones UNIQUE por tabla CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT UC_Person UNIQUE (ID,LastName) ); CREATE TABLE Persons ( ID int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );
  • 5. RESTRICCIÓN UNIQUE DROP a UNIQUE Constraint ALTER TABLE Persons DROP CONSTRAINT UC_Person; Crear una restricción única en una tabla existente ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);
  • 6. RESTRICCIÓN DEFAULT • Se utiliza para proporcionar un valor predeterminado para una columna. • El valor predeterminado se agregará a todos los registros nuevos SI no se especifica ningún otro valor. CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, City varchar(255) DEFAULT 'Sandnes' ); CREATE TABLE Orders ( ID int NOT NULL, OrderNumber int NOT NULL, OrderDate date DEFAULT GETDATE() ); También se puede usar para insertar valores del sistema, usando funciones como GETDATE ():
  • 7. RESTRICCIÓN DEFAULT • Para crear una restricción DEFAULT en la columna "Ciudad" cuando la tabla ya está creada ALTER TABLE Persons ADD CONSTRAINT df_City DEFAULT 'Sandnes' FOR City; Para eliminar una restricción DEFAULT ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT;
  • 8. RESTRICCIÓN CHECK • Se utiliza para limitar el rango de valores que se puede colocar en una columna. • Si define una restricción CHECK en una sola columna, solo permite ciertos valores para esta columna. • Si define una restricción CHECK en una tabla, puede limitar los valores en ciertas columnas en función de los valores en otras columnas de la fila.
  • 9. RESTRICCIÓN CHECK • La restricción CHECK asegura que la edad de una persona debe ser de 18 años o más: CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int CHECK (Age>=18) );
  • 10. RESTRICCIÓN CHECK • Para permitir el nombramiento de una restricción CHECK y para definir una restricción CHECK en varias columnas, utilice la siguiente sintaxis SQL: CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, City varchar(255), CONSTRAINT CHK_Person CHECK (Age>=18 AND Ci ty='Sandnes') );
  • 11. RESTRICCIÓN CHECK • Para crear una restricción CHECK en la columna "Edad" cuando la tabla ya está creada ALTER TABLE Persons ADD CHECK (Age>=18); • Permite el nombramiento de una restricción CHECK y para definir una restricción CHECK en varias columnas ALTER TABLE Persons ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
  • 12. RESTRICCIÓN CHECK • Eliminar una restricción CHECK ALTER TABLE Persons DROP CONSTRAINT CHK_PersonAge;
  • 13. CREATE INDEX • Se utiliza para crear índices en tablas. • Los índices se utilizan para recuperar datos de la base de datos más rápidamente que de otra manera. Los usuarios no pueden ver los índices, solo se utilizan para acelerar las búsquedas / consultas. CREATE INDEX index_name ON table_name (column1, column2, ...); CREATE UNIQUE INDEX index_name ON table_name (column1, column2, ...); • Crea un índice único en una tabla. No se permiten valores duplicados:
  • 14. CREATE INDEX • La instrucción DROP INDEX se utiliza para eliminar un índice en una tabla. DROP INDEX table_name.index_name;
  • 15. AGREGAR UNA COLUMNA CALCULADA AL CREAR UNA TABLA • Crea una tabla con una columna calculada CREATE TABLE dbo.Products ( ProductID int IDENTITY (1,1) NOT NULL , QtyAvailable smallint , UnitPrice money , InventoryValue AS QtyAvailable * UnitPrice ) ;
  • 16. COLUMNAS CALCULADAS • Agrega una nueva columna a una tabla creada ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5) ; Opcionalmente, agregue el argumento PERSISTED para almacenar físicamente los valores calculados en la tabla: ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5) PERSISTED ;
  • 17. COLUMNAS CALCULADAS • Cambiar una columna existente a una columna calculada ALTER TABLE dbo.Products DROP COLUMN RetailValue ; GO ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5) ;
  • 18. ELIMINACIÓN Y ACTUALIZACIÓN EN CASCADA • ELIMINAR EN CASCADA: Cuando creamos una clave foránea utilizando esta opción, elimina las filas de referencia en la tabla secundaria cuando la fila referenciada se elimina en la tabla primaria que tiene una clave primaria. • ACTUALIZAR CASCADA: cuando creamos una clave externa utilizando ACTUALIZAR CASCADA, las filas de referencia se van a actualizar en la tabla secundaria cuando la fila referenciada se actualiza en la tabla principal que tiene una clave primaria.
  • 19. EJEMPLO CREATE TABLE Countries (CountryID INT PRIMARY KEY, CountryName VARCHAR(50), CountryCode VARCHAR(3)) CREATE TABLE States (StateID INT PRIMARY KEY, StateName VARCHAR(50), StateCode VARCHAR(3), CountryID INT) ALTER TABLE [dbo].[States] WITH CHECK ADD CONSTRAINT [FK_States_Countries] FOREIGN KEY([CountryID]) REFERENCES [dbo].[Countries] ([CountryID]) ON DELETE CASCADE GO ALTER TABLE [dbo].[States] CHECK CONSTRAINT [FK_States_Countries] GO
  • 20. ELIMINACIÓN EN CASCADA ALTER TABLE [dbo].[States] WITH CHECK ADD CONSTRAINT [FK_States_Countries] FOREIGN KEY([CountryID]) REFERENCES [dbo].[Countries] ([CountryID]) ON DELETE CASCADE GO ALTER TABLE [dbo].[States] CHECK CONSTRAINT [FK_States_Countries] GO
  • 21. EJEMPLO INSERT INTO Countries VALUES (1,'United States','USA') INSERT INTO Countries VALUES (2,'United Kingdom','UK') INSERT INTO States VALUES (1,'Texas','TX',1) INSERT INTO States VALUES (2,'Arizona','AZ',1) SELECT * FROM Countries SELECT * FROM States Eliminar una fila en la tabla primaria con CountryID = 1 que a su vez también elimina las filas en la tabla secundaria que tiene CountryID = 1. DELETE FROM Countries WHERE CountryID = 1 SELECT * FROM States
  • 22. ACTUALIZAR EN CASCADA CREATE TABLE Countries (CountryID INT PRIMARY KEY, CountryName VARCHAR(50), CountryCode VARCHAR(3)) CREATE TABLE States (StateID INT PRIMARY KEY, StateName VARCHAR(50), StateCode VARCHAR(3), CountryID INT) GO INSERT INTO Countries VALUES (1,'United States','USA') INSERT INTO Countries VALUES (2,'United Kingdom','UK ') INSERT INTO States VALUES (1,'Texas','TX',1) INSERT INTO States VALUES (2,'Arizona','AZ',1) GO
  • 23. ACTUALIZAR EN CASCADA ALTER TABLE [dbo].[States] WITH CHECK ADD CONSTRAINT [FK_States_Countries] FOREIGN KEY([CountryID]) REFERENCES [dbo].[Countries] ([CountryID]) ON UPDATE CASCADE GO ALTER TABLE [dbo].[States] CHECK CONSTRAINT [FK_States_Countries] GO
  • 24. ACTUALIZAR EN CASCADA Actualizar CountryID en los países para una fila que también actualice las filas de referencia en los estados de la tabla secundaria. UPDATE Countries SET CountryID =3 where CountryID=1 SELECT * FROM Countries SELECT * FROM States
  • 25. ELIMINAR Y ACTUALIZAR EN CASCADA • Crear una clave foránea en cascada, con las reglas de actualizar y eliminar ALTER TABLE [dbo].[States] WITH CHECK ADD CONSTRAINT [FK_States_Coun tries] FOREIGN KEY([CountryID]) REFERENCES [dbo].[Countries] ([CountryID]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[States] CHECK CONSTRAINT [FK_States_Countries] GO