Tablas – Create table Ejercicios

Creación de tablas

Al crear las tablas se deberían seguir ciertas reglas para el nombre de los elementos de estas, como son: campos, restricciones, índices, entre otros.Al definir los tipos de datos para cada campo se recomienda lo siguiente:

  1. Datos alfanuméricos que no cambian la longitud como códigos, números de documentos y campos para estados deberían ser nchar.
  2. Datos alfanuméricos que cambian la longitud como apellidos, nombres, direcciones, descripciones, etc deberían ser nvarchar.
  3. Datos numéricos deberían ser Numeric y definir un rango amplio para que alcancen todos los valores posibles. (Ver tipos de datos en SQL Server)
  4. Datos donde se guardan fecha deberían ser Date y si interesa guardar la hora junto con la fecha DateTime.
  5. Datos donde se guarden imágenes deberían ser Image.
  6. Evitar en lo posible usar la propiedad Identity. (Ver Identity)




Para las restricciones de los campos deberían tenerse en cuenta lo siguiente:

  1. Especificar correctamente los campos obligatorios con Not Null.
  2. Para los campos que no son obligatorios de preferencia usar restricciones de tipo Default.
  3. Los campos que sirven como clave foránea deberían tener el mismo nombre que tiene en la tabla donde es clave principal.
  4. Si en un campo no se debe repetir el valor ingresado y no es la clave primaria, usar restricciones de tipo UNIQUE.
  5. Es recomendable usar las restricciones de tipo Check para comprobar una o mas condiciones que deben de cumplir los datos para insertarlos en la tabla.

Ejercicios

1. — Tabla Productos donde se especifica la clave primaria

Create table Productos
(
ProductosCodigo nchar(10) ,
ProductosDescripcion nvarchar(200),
ProductosPrecio Numeric(9,2),
ProductosStock Numeric(9,2),
ProductosFechaVencimiento Date,
ProductosOrigen nchar(1),
ProductosFoto Image,
constraint ProductosPK Primary key (ProductosCodigo)
)
go

2. — Suponiendo una institución de enseñanza de nivel escolar, las tablas para Niveles  que pueden ser Inicial (Niños de 3 a 5 años), Primaria y Secundaria,  y Grados, la tabla de niveles tiene en el diseño las restricciones de tipo Primary key, Default, Check y Unique

Create table Niveles
(
NivelesCodigo nchar(10) ,
NivelesDescripcion nvarchar(200) not null,
NivelesExplicacion nvarchar(100) constraint NivelesExplicacionDF Default ”,
NivelesFechaCreacion Date constraint NivelesFechaCreacionDF Default (GetDate()),
NivelesEstado nchar(1) not null,
NivelesEsDeSistema nchar(1) not null constraint NivelesEsDeSistemaDF default ‘N’,
constraint NivelesPK Primary key (NivelesCodigo),
constraint NivelesEstadoCK Check (NivelesEstado = ‘A’ or NivelesEstado = ‘E’),
constraint NivelesEsDeSistemaCK Check (NivelesEsDeSistema = ‘S’ or NivelesEsDeSistema = ‘N’),
constraint NivelesDescripcionUQ Unique (NivelesDescripcion)
)
go

Grados, tiene su clave primaria y clave foránea a Niveles.
Create table Grados
(
GradosCodigo nchar(10) ,
GradosDescripcion nvarchar(200) not null,
GradosFechaCreacion Date,
GradosEsDeNivel nchar(10),
GradosEstado nchar(1) not null,
constraint GradosPK Primary key (GradosCodigo),
constraint GradosNivelesFK Foreign key (GradosEsDeNivel)  references Niveles(NivelesCodigo)
)
go

Note en negrita la restricción de tipo Foreign Key

Importante:

  • Los nombres de campos deberían tener el nombre de la tabla al inicio, se pueden usar hasta 128 caracteres para el nombre.
  • El nombre de la clave primaria (Primary Key) es el nombre de la tabla y las letras PK. Para la tabla Grados es GradosPK, recuerde que se crea el índice agrupado y es importante poder saber el nombre de este.
  • En la clave foránea (Foreign Key) se podría incluir los dos nombres de las tablas y luego las letras FK.