SlideShare una empresa de Scribd logo
Microsoft SQL Server Básico
Aprende haciendo
Creación de tablas
y
definición de la integridad de datos
® Derechos reservados www.isil.edu.pe 1
definición de la integridad de datos
Ing. Eric Gustavo Coronel Castillo
http://www.facebook.com/gcoronelc
http://gcoronelc.blogspot.com
gcoronelc@gmail.com
Índice
Tipos de Datos
Creación de Tablas
Restricciones de Integridad: de entidad, de dominio y referencial
Implementación de Restricciones: PRIMARY KEY, FOREIGN KEY,
UNIQUE, DEFAULT, CHECK
Modificar de la Definición de una Tabla
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe 2
Tipos de Datos
CATEGORIAS
Numéricos exactos
Numéricos aproximados
Fecha y hora
Cadenas de caracteres No Unicode
Cadenas de caracteres Unicode
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
Cadenas de caracteres Unicode
Cadenas binarias
Otros tipos de datos
3
Tipos de Datos
Numéricos exactos
bigint 8 bytes
bit 1, 0 o NULL
decimal(p,s) Depende de la presición (p)
int 4 bytes
money 8 bytes
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
money 8 bytes
numeric(p,s) Depende de la presición (p)
smallint 2 bytes
smallmoney 4 bytes
tinyint 1 byte
4
Tipos de Datos
Numéricos aproximados
float[(n)] Depende del valor de n.
real 4 bytes
Fecha y hora
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
date de 0001-01-01 a 9999-12-31 3 bytes
datetime de 1753-01-01 a 9999-12-31 8 bytes
datetime2(n) 0001-01-01 a 9999-12-31 de 6 a 8 bytes
datetimeoffset(n) Fecha, hora y desplazamiento de 8 a 10 bytes
smalldatetime 1900-01-01 a 2079-06-06 4 bytes
time(n) HH:MI:SS[.nnnnnnn] de 3 a 5 bytes
5
Tipos de Datos
Cadenas de caracteres NO UNICODE
char(n) De longitud fija hasta 8.000 caracteres.
varchar(n) De longitud variable hasta 8.000 caracteres.
text De longitud variable hasta 2.147.483.647 caracteres.
Cadenas de caracteres UNICODE
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
Cadenas de caracteres UNICODE
nchar(n) De longitud fija hasta 4.000 caracteres.
nvarchar(n) De longitud variable hasta 4.000 caracteres.
ntext De longitud variable 1.073.741.823 caracteres.
6
Tipos de Datos
Cadenas binarias
binary[(n)] De longitud fija hasta 8.000 bytes.
varbinary[(n)] De longitud variable hasta 8.000 bytes.
image De longitud variable hasta 2.147.483.647 bytes.
Otros tipos de datos
cursor
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
cursor
Un tipo de datos para las variables o para los parámetros de resultado de los
procedimientos almacenados que contiene una referencia a un cursor.
table
Es un tipo de datos especial que se puede utilizar para almacenar un
conjunto de resultados para su procesamiento posterior. table se utiliza
principalmente para el almacenamiento temporal de un conjunto de filas
devuelto como el conjunto de resultados de una función con valores de tabla.
xml ( [ CONTENT | DOCUMENT ] xml_schema_collection )
Es el tipo de datos que almacena datos de XML. Puede almacenar instancias
de xml en una columna o una variable de tipo xml.
7
Creación de Tablas
SINTAXIS
CREATE TABLE table_name (
{ < column_definition > | < table_constraint > } [ ,...n ]
)
< column_definition > ::=
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
< column_definition > ::=
{ column_name data_type }
[ { DEFAULT constant_expression
| [ IDENTITY [ ( seed , increment ) ] ]
} ]
[ ROWGUIDCOL ]
[ < column_constraint > [ ...n ] ]
8
Creación de Tablas
USE tienda
GO
CREATE TABLE maestros.articulo(
art_id INT NOT NULL IDENTITY(1,1),
art_nombre VARCHAR(100) NOT NULL,
art_pre_costo MONEY NOT NULL,
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
art_pre_costo MONEY NOT NULL,
art_pre_venta MONEY NOT NULL,
art_stock INT NOT NULL
)
GO
9
Restricciones de Integridad
Definición de Integridad
La Integridad es el término utilizado para decir que la información
almacenada tiene calidad. El DBMS debe asegurar que los datos se
almacenan de acuerdo a las políticas previamente determinadas por el
DBA.
En otras palabras, el DBMS debe principalmente, a este respecto,
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
En otras palabras, el DBMS debe principalmente, a este respecto,
comprobar las restricciones de integridad, controlar la correcta
ejecución de las actualizaciones y recuperar la base de datos en caso
de pérdida.
Un control de integridad o restricción es aquel que nos permite definir
con precisión el rango de valores válidos para un elemento y/o las
operaciones que serán consideradas válidas en la relación de tales
elementos.
10
Restricciones de Integridad
Integridad de Entidad
La integridad de entidad define una fila como entidad única para una
tabla determinada.
La integridad de entidad exige la integridad de las columnas de los
identificadores o la clave primaria de una tabla, mediante índices y
restricciones UNIQUE, o restricciones PRIMARY KEY.
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
restricciones UNIQUE, o restricciones PRIMARY KEY.
11
Restricciones de Integridad
Integridad de Dominio
La integridad de dominio viene dada por la validez de las entradas para
una columna determinada.
Puede exigir la integridad de dominio para restringir el tipo mediante
tipos de datos, el formato mediante reglas y restricciones CHECK, o el
intervalo de valores posibles mediante restricciones FOREIGN KEY,
restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y
reglas.
12
Restricciones de Integridad
Integridad Referencial
La integridad referencial protege las relaciones definidas entre las
tablas cuando se crean o se eliminan filas. En SQL Server la integridad
referencial se basa en las relaciones entre claves foráneas y claves
primarias, mediante restricciones FOREIGN KEY.
La integridad referencial garantiza que los valores de clave sean
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
La integridad referencial garantiza que los valores de clave sean
coherentes en las distintas tablas. Para conseguir esa coherencia, es
preciso que no haya referencias a valores inexistentes y que, si cambia
el valor de una clave, todas las referencias a ella se cambien en
consecuencia en toda la base de datos.
13
Restricciones de Integridad
Integridad Referencial
ClienteId Nombre Email
C1001 Sergio Matsukawa Maeda smatsukawa@isil.pe
C1002 Hugo Valencia Morales hvalencia@terra.com.pe
C1003 Gustavo Coronel Castillo gcoronelc@gmail.com
C1004 Ricardo Marcelo Villalobos ricardomarcelo@hotmail.com
Tabla: Cliente
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe 14
Tabla: Pedido PedidoId Fecha ClienteId Importe
1001 04/Ene/2011 C1002 5,000.00
1002 15/Ene/2011 C1001 10,000.00
1003 13/Feb/2011 C1004 8,500.00
1004 07/Mar/2011 C1001 7,400.00
ClienteId en la
tabla Pedido es
una Clave Foránea.
Implementación de Restricciones
Nivel de Integridad Tipo de
Restricción
Descripción
Dominio
(columna)
DEFAULT Especifica el valor que se mantendrá para la columna
cuando un valor no se ha ingresado explícitamente en
una sentencia INSERT.
CHECK Especifica los valores de los datos que son aceptables en
la columna.
Entidad
(fila)
PRIMARY KEY Identifica cada registro o fila como única. Se crea un
índice para mejorar el rendimiento. Los valores nulos no
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe 15
(fila) índice para mejorar el rendimiento. Los valores nulos no
son permitidos.
UNIQUE Previene la duplicación de las llaves alternas, y se
asegura que un índice se crea para que mejore el
rendimiento. Se permiten valores nulos.
Referencial
(relación)
FOREIGN KEY Define la columna o combinación de columnas de una
tabla secundaria, cuyos valores dependen de la llave
primaria de una tabla primaria.
Implementación de Restricciones
CREATE TABLE maestros.articulo(
art_id INT NOT NULL IDENTITY(1,1),
art_nombre VARCHAR(100) NOT NULL,
art_pre_costo MONEY NOT NULL,
art_pre_venta MONEY NOT NULL,
art_stock INT NOT NULL
CONSTRAINT df_articulo_stock
DEFAULT 0,
CONSTRAINT pk_articulo
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
CONSTRAINT pk_articulo
PRIMARY KEY(art_id),
CONSTRAINT u_articulo_nombre
UNIQUE (art_nombre),
CONSTRAINT chk_articulo_pre_costo
CHECK(art_pre_costo > 0),
CONSTRAINT chk_articulo_pre_venta
CHECK(art_pre_venta > art_pre_costo)
)
GO
16
Implementación de Restricciones
CREATE TABLE Cliente(
ClienteId CHAR(5) NOT NULL
CONSTRAINT pk_cliente PRIMARY KEY,
Nombre VARCHAR(100) NOT NULL
CONSTRAINT u_cliente_nombre UNIQUE,
Email VARCHAR(100) NOT NULL
CONSTRAINT u_cliente_email UNIQUE
)
GO
CREATE TABLE Pedido(
PedidoId INT NOT NULL IDENTITY(1000,1)
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
PedidoId INT NOT NULL IDENTITY(1000,1)
CONSTRAINT pk_pedido PRIMARY KEY,
Fecha DATE NOT NULL,
ClienteId CHAR(5) NOT NULL,
Importe MONEY NOT NULL
CONSTRAINT chk_pedido_importe CHECK(Importe>0),
CONSTRAINT fk_pedido_cliente
FOREIGN KEY (ClienteId)
REFERENCES Cliente
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
GO
17
Modificar de la Definición de una Tabla
ALTER TABLE [ database_name . ] [ schema_name . ] table_name {
ALTER COLUMN column_name
type_name [ ( precision [ , scale ] ) ]
[ NULL | NOT NULL ]
[ WITH { CHECK | NOCHECK } ]
| ADD
{
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe
{
<column_definition>
| <table_constraint>
} [ ,...n ]
| DROP
{
[ CONSTRAINT ] constraint_name
| COLUMN column_name
} [ ,...n ]
18
Modificar de la Definición de una Tabla
ALTER TABLE maestros.articulo
ADD art_porc_ganancia INT NOT NULL
CONSTRAINT df_articulo_porc_ganancia
DEFAULT 0
GO
I S I L Ing. Eric Gustavo Coronel Castillo
® Derechos reservados www.isil.pe 19

Más contenido relacionado

PDF
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
PPT
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
PDF
05 Sql Profundizacion
PPTX
Introduccion a SQL
PPT
Sql presentacion
PPT
SQL-DDL
PPTX
SQL: DDL, DML y SQL
PDF
Bases de datos módulo 3 el lenguaje sql
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
05 Sql Profundizacion
Introduccion a SQL
Sql presentacion
SQL-DDL
SQL: DDL, DML y SQL
Bases de datos módulo 3 el lenguaje sql

La actualidad más candente (17)

PDF
MANUAL COMPLETO DE SQL
PPT
Introducción a sql
PPTX
Sql DML Lenguaje de manipulación de datos
PDF
Clase 1 Modelo Físico de Base de Datos
PDF
D49996 cs10 51_e
PPT
DDL - Lenguaje de definición de datos
DOCX
4. sql (autoguardado)
PDF
Manual practicosql
DOCX
2. creación de tablas 2007
PPTX
Consultas sql
PPTX
Microsoft sql server
PDF
Breve resumen sobre consultas básicas en MySQL
PPTX
Generación de Interfaces a partir de XML
DOC
Sql comamdo
PDF
Introducción a sql server
PPTX
Sql DDL Lenguaje de definición de datos
PPTX
Presentación1
MANUAL COMPLETO DE SQL
Introducción a sql
Sql DML Lenguaje de manipulación de datos
Clase 1 Modelo Físico de Base de Datos
D49996 cs10 51_e
DDL - Lenguaje de definición de datos
4. sql (autoguardado)
Manual practicosql
2. creación de tablas 2007
Consultas sql
Microsoft sql server
Breve resumen sobre consultas básicas en MySQL
Generación de Interfaces a partir de XML
Sql comamdo
Introducción a sql server
Sql DDL Lenguaje de definición de datos
Presentación1
Publicidad

Similar a Sql 04 tablas (20)

PPTX
Restricciones bd
PPTX
INTEGRIDAD DE DATOS
PDF
Integridad
PDF
ManualPracticoSQL.pdf
PDF
Investigacion alter, create y integridad referencial
PDF
Manual practico para sql ingieneria de sistemas
PDF
Manual practicosql
PDF
Manual practico-sql
PDF
Manual practico SQL
PDF
Manual practico SQL
PDF
04-SQLBuenaPresentaciónyConceptos.pdf
PDF
04-SQL.pdf
PPTX
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
DOCX
Manejo De Sentencias De Definicion
PPTX
Características avanzadas de SQL.pptx
PPTX
Tablas y tipos de datos
PDF
Tema3
PDF
TODO SOBRE SQL
PPTX
base de datos ppPPPPPPPPPPPPPPPPPPPPPPPPPPt.pptx
Restricciones bd
INTEGRIDAD DE DATOS
Integridad
ManualPracticoSQL.pdf
Investigacion alter, create y integridad referencial
Manual practico para sql ingieneria de sistemas
Manual practicosql
Manual practico-sql
Manual practico SQL
Manual practico SQL
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQL.pdf
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
Manejo De Sentencias De Definicion
Características avanzadas de SQL.pptx
Tablas y tipos de datos
Tema3
TODO SOBRE SQL
base de datos ppPPPPPPPPPPPPPPPPPPPPPPPPPPt.pptx
Publicidad

Último (20)

PDF
capacitación de aire acondicionado Bgh r 410
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PPTX
Presentación de Redes de Datos modelo osi
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
capacitación de aire acondicionado Bgh r 410
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
MANUAL de recursos humanos para ODOO.pdf
TRABAJO DE TECNOLOGIA.pdf...........................
Zarate Quispe Alex aldayir aplicaciones de internet .docx
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Sesion 1 de microsoft power point - Clase 1
informe_fichas1y2_corregido.docx (2) (1).pdf
la-historia-de-la-medicina Edna Silva.pptx
Presentación de Redes de Datos modelo osi
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Presentación PASANTIAS AuditorioOO..pptx
El-Gobierno-Electrónico-En-El-Estado-Bolivia
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Influencia-del-uso-de-redes-sociales.pdf
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf

Sql 04 tablas

  • 1. Microsoft SQL Server Básico Aprende haciendo Creación de tablas y definición de la integridad de datos ® Derechos reservados www.isil.edu.pe 1 definición de la integridad de datos Ing. Eric Gustavo Coronel Castillo http://www.facebook.com/gcoronelc http://gcoronelc.blogspot.com gcoronelc@gmail.com
  • 2. Índice Tipos de Datos Creación de Tablas Restricciones de Integridad: de entidad, de dominio y referencial Implementación de Restricciones: PRIMARY KEY, FOREIGN KEY, UNIQUE, DEFAULT, CHECK Modificar de la Definición de una Tabla I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe 2
  • 3. Tipos de Datos CATEGORIAS Numéricos exactos Numéricos aproximados Fecha y hora Cadenas de caracteres No Unicode Cadenas de caracteres Unicode I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe Cadenas de caracteres Unicode Cadenas binarias Otros tipos de datos 3
  • 4. Tipos de Datos Numéricos exactos bigint 8 bytes bit 1, 0 o NULL decimal(p,s) Depende de la presición (p) int 4 bytes money 8 bytes I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe money 8 bytes numeric(p,s) Depende de la presición (p) smallint 2 bytes smallmoney 4 bytes tinyint 1 byte 4
  • 5. Tipos de Datos Numéricos aproximados float[(n)] Depende del valor de n. real 4 bytes Fecha y hora I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe date de 0001-01-01 a 9999-12-31 3 bytes datetime de 1753-01-01 a 9999-12-31 8 bytes datetime2(n) 0001-01-01 a 9999-12-31 de 6 a 8 bytes datetimeoffset(n) Fecha, hora y desplazamiento de 8 a 10 bytes smalldatetime 1900-01-01 a 2079-06-06 4 bytes time(n) HH:MI:SS[.nnnnnnn] de 3 a 5 bytes 5
  • 6. Tipos de Datos Cadenas de caracteres NO UNICODE char(n) De longitud fija hasta 8.000 caracteres. varchar(n) De longitud variable hasta 8.000 caracteres. text De longitud variable hasta 2.147.483.647 caracteres. Cadenas de caracteres UNICODE I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe Cadenas de caracteres UNICODE nchar(n) De longitud fija hasta 4.000 caracteres. nvarchar(n) De longitud variable hasta 4.000 caracteres. ntext De longitud variable 1.073.741.823 caracteres. 6
  • 7. Tipos de Datos Cadenas binarias binary[(n)] De longitud fija hasta 8.000 bytes. varbinary[(n)] De longitud variable hasta 8.000 bytes. image De longitud variable hasta 2.147.483.647 bytes. Otros tipos de datos cursor I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe cursor Un tipo de datos para las variables o para los parámetros de resultado de los procedimientos almacenados que contiene una referencia a un cursor. table Es un tipo de datos especial que se puede utilizar para almacenar un conjunto de resultados para su procesamiento posterior. table se utiliza principalmente para el almacenamiento temporal de un conjunto de filas devuelto como el conjunto de resultados de una función con valores de tabla. xml ( [ CONTENT | DOCUMENT ] xml_schema_collection ) Es el tipo de datos que almacena datos de XML. Puede almacenar instancias de xml en una columna o una variable de tipo xml. 7
  • 8. Creación de Tablas SINTAXIS CREATE TABLE table_name ( { < column_definition > | < table_constraint > } [ ,...n ] ) < column_definition > ::= I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe < column_definition > ::= { column_name data_type } [ { DEFAULT constant_expression | [ IDENTITY [ ( seed , increment ) ] ] } ] [ ROWGUIDCOL ] [ < column_constraint > [ ...n ] ] 8
  • 9. Creación de Tablas USE tienda GO CREATE TABLE maestros.articulo( art_id INT NOT NULL IDENTITY(1,1), art_nombre VARCHAR(100) NOT NULL, art_pre_costo MONEY NOT NULL, I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe art_pre_costo MONEY NOT NULL, art_pre_venta MONEY NOT NULL, art_stock INT NOT NULL ) GO 9
  • 10. Restricciones de Integridad Definición de Integridad La Integridad es el término utilizado para decir que la información almacenada tiene calidad. El DBMS debe asegurar que los datos se almacenan de acuerdo a las políticas previamente determinadas por el DBA. En otras palabras, el DBMS debe principalmente, a este respecto, I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe En otras palabras, el DBMS debe principalmente, a este respecto, comprobar las restricciones de integridad, controlar la correcta ejecución de las actualizaciones y recuperar la base de datos en caso de pérdida. Un control de integridad o restricción es aquel que nos permite definir con precisión el rango de valores válidos para un elemento y/o las operaciones que serán consideradas válidas en la relación de tales elementos. 10
  • 11. Restricciones de Integridad Integridad de Entidad La integridad de entidad define una fila como entidad única para una tabla determinada. La integridad de entidad exige la integridad de las columnas de los identificadores o la clave primaria de una tabla, mediante índices y restricciones UNIQUE, o restricciones PRIMARY KEY. I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe restricciones UNIQUE, o restricciones PRIMARY KEY. 11
  • 12. Restricciones de Integridad Integridad de Dominio La integridad de dominio viene dada por la validez de las entradas para una columna determinada. Puede exigir la integridad de dominio para restringir el tipo mediante tipos de datos, el formato mediante reglas y restricciones CHECK, o el intervalo de valores posibles mediante restricciones FOREIGN KEY, restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y reglas. 12
  • 13. Restricciones de Integridad Integridad Referencial La integridad referencial protege las relaciones definidas entre las tablas cuando se crean o se eliminan filas. En SQL Server la integridad referencial se basa en las relaciones entre claves foráneas y claves primarias, mediante restricciones FOREIGN KEY. La integridad referencial garantiza que los valores de clave sean I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe La integridad referencial garantiza que los valores de clave sean coherentes en las distintas tablas. Para conseguir esa coherencia, es preciso que no haya referencias a valores inexistentes y que, si cambia el valor de una clave, todas las referencias a ella se cambien en consecuencia en toda la base de datos. 13
  • 14. Restricciones de Integridad Integridad Referencial ClienteId Nombre Email C1001 Sergio Matsukawa Maeda smatsukawa@isil.pe C1002 Hugo Valencia Morales hvalencia@terra.com.pe C1003 Gustavo Coronel Castillo gcoronelc@gmail.com C1004 Ricardo Marcelo Villalobos ricardomarcelo@hotmail.com Tabla: Cliente I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe 14 Tabla: Pedido PedidoId Fecha ClienteId Importe 1001 04/Ene/2011 C1002 5,000.00 1002 15/Ene/2011 C1001 10,000.00 1003 13/Feb/2011 C1004 8,500.00 1004 07/Mar/2011 C1001 7,400.00 ClienteId en la tabla Pedido es una Clave Foránea.
  • 15. Implementación de Restricciones Nivel de Integridad Tipo de Restricción Descripción Dominio (columna) DEFAULT Especifica el valor que se mantendrá para la columna cuando un valor no se ha ingresado explícitamente en una sentencia INSERT. CHECK Especifica los valores de los datos que son aceptables en la columna. Entidad (fila) PRIMARY KEY Identifica cada registro o fila como única. Se crea un índice para mejorar el rendimiento. Los valores nulos no I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe 15 (fila) índice para mejorar el rendimiento. Los valores nulos no son permitidos. UNIQUE Previene la duplicación de las llaves alternas, y se asegura que un índice se crea para que mejore el rendimiento. Se permiten valores nulos. Referencial (relación) FOREIGN KEY Define la columna o combinación de columnas de una tabla secundaria, cuyos valores dependen de la llave primaria de una tabla primaria.
  • 16. Implementación de Restricciones CREATE TABLE maestros.articulo( art_id INT NOT NULL IDENTITY(1,1), art_nombre VARCHAR(100) NOT NULL, art_pre_costo MONEY NOT NULL, art_pre_venta MONEY NOT NULL, art_stock INT NOT NULL CONSTRAINT df_articulo_stock DEFAULT 0, CONSTRAINT pk_articulo I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe CONSTRAINT pk_articulo PRIMARY KEY(art_id), CONSTRAINT u_articulo_nombre UNIQUE (art_nombre), CONSTRAINT chk_articulo_pre_costo CHECK(art_pre_costo > 0), CONSTRAINT chk_articulo_pre_venta CHECK(art_pre_venta > art_pre_costo) ) GO 16
  • 17. Implementación de Restricciones CREATE TABLE Cliente( ClienteId CHAR(5) NOT NULL CONSTRAINT pk_cliente PRIMARY KEY, Nombre VARCHAR(100) NOT NULL CONSTRAINT u_cliente_nombre UNIQUE, Email VARCHAR(100) NOT NULL CONSTRAINT u_cliente_email UNIQUE ) GO CREATE TABLE Pedido( PedidoId INT NOT NULL IDENTITY(1000,1) I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe PedidoId INT NOT NULL IDENTITY(1000,1) CONSTRAINT pk_pedido PRIMARY KEY, Fecha DATE NOT NULL, ClienteId CHAR(5) NOT NULL, Importe MONEY NOT NULL CONSTRAINT chk_pedido_importe CHECK(Importe>0), CONSTRAINT fk_pedido_cliente FOREIGN KEY (ClienteId) REFERENCES Cliente ON DELETE NO ACTION ON UPDATE NO ACTION ) GO 17
  • 18. Modificar de la Definición de una Tabla ALTER TABLE [ database_name . ] [ schema_name . ] table_name { ALTER COLUMN column_name type_name [ ( precision [ , scale ] ) ] [ NULL | NOT NULL ] [ WITH { CHECK | NOCHECK } ] | ADD { I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe { <column_definition> | <table_constraint> } [ ,...n ] | DROP { [ CONSTRAINT ] constraint_name | COLUMN column_name } [ ,...n ] 18
  • 19. Modificar de la Definición de una Tabla ALTER TABLE maestros.articulo ADD art_porc_ganancia INT NOT NULL CONSTRAINT df_articulo_porc_ganancia DEFAULT 0 GO I S I L Ing. Eric Gustavo Coronel Castillo ® Derechos reservados www.isil.pe 19