6. Restricciones SQL Server
Transcript of 6. Restricciones SQL Server
-
8/18/2019 6. Restricciones SQL Server
1/14
B D C I 2
I . C 1/14
.
.
:
DEFAE
I EE
I A E I
F EIG EE
CHECE
, .
, ,
.
.
.
A , , E , :
D
D 25
E D 0
D 1
-
8/18/2019 6. Restricciones SQL Server
2/14
B D C I 2
I . C 2/14
35
15
1 'E' ' ',' ','E'
D
I F
F
180
A :
CREATE DATABASE Proyectos
go
USE Proyectos
go
CREATE TABLE Departamento (
numero_Dep tinyint NOT NULL , nombre_Dep char ( 25 ) NOT NULL , numeroEmp_Dep tinyint NOT NULL , vigencia_Dep bit NOT NULL
);
CREATE TABLE Proyecto
( numero_Pro tinyint NOT NULL , nombre_Pro char ( 35 ) NOT NULL , lugar_Pro char ( 15 ) NOT NULL , estado_Pro char ( 1 ) NOT NULL , numero_Dep tinyint NOT NULL ,fechaIni_Pro smalldatetime NOT NULL ,fechaFin_Pro smalldatetime NOT NULL
);
-
8/18/2019 6. Restricciones SQL Server
3/14
B D C I 2
I . C 3/14
G ,
G
.
. ( ) .
A :
• ALTER TABLE Proyecto
ADD CONSTRAINT PK_Proyecto PRIMARY KEY ( numero_Pro ) ;
• D :
ALTER TABLE Departamento ADD CONSTRAINT PK_Departamento PRIMARY KEY ( numero_Dep ) ;
( ).
. ( )
.
.
A :
• :
ALTER TABLE Proyecto ADD CONSTRAINT UQ_Proyecto_nombre UNIQUE ( nombre_Pro ) ;
• D D :
ALTER TABLE Departamento ADD CONSTRAINT UQ_Departamento_nombre UNIQUE ( nombre_Dep ) ;
( ) ( ).
-
8/18/2019 6. Restricciones SQL Server
4/14
B D C I 2
I . C 4/14
. ( )
.
, .
D :
ALTER TABLE Proyecto ADD CONSTRAINT FK_Proyecto_Departamento FOREIGN KEY (
numero_Dep)
REFERENCES Departamento (
numero_Dep
);
,
( ) , .
.
.
:
• AC I• CA CADE• E
( ) D E D D
( ) ( ) I
D
-
8/18/2019 6. Restricciones SQL Server
5/14
B D C I 2
I . C 5/14
• E DEFA
DE E E DA E.
DE E E DA E
,
, .
, ( )
, .
, ( )
, .
DEFA ,
, .
DEFA ,
-
8/18/2019 6. Restricciones SQL Server
6/14
B D C I 2
I . C 6/14
, , D
, :
ALTER TABLE Proyecto ADD CONSTRAINT FK_Proyecto_Departamento FOREIGN KEY (
numero_Dep)
REFERENCES Departamento (
numero_Dep) ON UPDATE CASCADE ON DELETE NO ACTION ;
. ( ) . C
, CHEC .
A :
• ' ', ' ' 'E', :
ALTER TABLE ProyectoADD CONSTRAINT CK_Proyecto_estadoCHECK ( estado_Pro IN ( 'T' , 'S' , 'E' ));
• 180 6
, :
ALTER TABLE ProyectoADD CONSTRAINT CK_Proyecto_fechaFin CHECK ( fechaFin_Pro >= fechaIni_Pro +180 );
• CE :
ALTER TABLE Departamento ADD CONSTRAINT CK_Departamento_numeroEmp CHECK ( numeroEmp_Dep >= 0 ) ;
( ) ( ).
-
8/18/2019 6. Restricciones SQL Server
7/14
B D C I 2
I . C 7/14
. ( ) ,
.A :•
'E' :
ALTER TABLE ProyectoADD CONSTRAINT DF_Proyecto_estado
DEFAULT 'E' FOR estado_Pro ;
• :
ALTER TABLE ProyectoADD CONSTRAINT DF_Proyecto_fechaIni
DEFAULT getdate () FOR fechaIni_Pro ;
• 180 :
ALTER TABLE ProyectoADD CONSTRAINT DF_Proyecto_fechaFin
DEFAULT getdate ()+ 180 FOR fechaFin_Pro ;
. :
-
8/18/2019 6. Restricciones SQL Server
8/14
B D C I 2
I . C 8/14
• D 1 ( ), :
ALTER TABLE DepartamentoADD CONSTRAINT DF_Departamento_vigencia
DEFAULT 1 FOR vigencia_Dep ;
( ( ).
.
, .
:
1. E EC ,
-
8/18/2019 6. Restricciones SQL Server
9/14
B D C I 2
I . C 9/14
2. H
-
8/18/2019 6. Restricciones SQL Server
10/14
B D C I 2
I . C 10/14
:
D . .
3. .
-
8/18/2019 6. Restricciones SQL Server
11/14
B D C I 2
I . C 11/14
4.
, ,
.
5. .
F D E .
-
8/18/2019 6. Restricciones SQL Server
12/14
B D C I 2
I . C 12/14
.
:
-
8/18/2019 6. Restricciones SQL Server
13/14
B D C I 2
I . C 13/14
. E . D
.
, .
A :
• CHEC F , :
ALTER TABLE Proyecto NOCHECK CONSTRAINT DF_Proyecto_fechaFin ;
• D :
ALTER TABLE Proyecto NOCHECK CONSTRAINT FK_Proyecto_Departamento ;
E :
ALTER TABLE ProyectoCHECK CONSTRAINT DF_Proyecto_fechaFin ;
ALTER TABLE Proyecto CHECK CONSTRAINT FK_Proyecto_Departamento ;
. ,
. .
A :
• F , :
ALTER TABLE ProyectoDROP CONSTRAINT DF_Proyecto_fechaFin ;
• CHEC F :
ALTER TABLE ProyectoDROP CONSTRAINT CK_Proyecto_fechaFin ;
-
8/18/2019 6. Restricciones SQL Server
14/14
B D C I 2
I . C 14/14
• D D , :
ALTER TABLE DepartamentoDROP CONSTRAINT UQ_Departamento_nombre ;
•
D , ,
D , I A , :
ALTER TABLE ProyectoDROP CONSTRAINT FK_Proyecto_Departamento ;
ALTER TABLE DepartamentoDROP CONSTRAINT PK_Departamento ;