Está en la página 1de 36

Creación Bases de datos

y Tablas
Introducción
 Crea y Elimina Base de datos y tablas. Tipos de datos.
 Columnas generadas. Identity
 Generacion Secuencias de comandos
 Tipos de integridad de datos
 Exigir la integridad de los datos
 Definición de restricciones
 Tipos de restricciones
 Deshabilitación de restricciones
 Decisión del método de implementación que va a utilizar
Crea Base de datos

 Create DataBase nombre_Base_de_datos


 Base de datos Master : es la base de datos que registra la
existencia de las demás bases de datos, la ubicación de los
archivos de las bases de datos y la información de inicialización de
SQL Server. Por lo tanto, SQL Server no puede iniciarse si la base
de datos maestra no está disponible.
 Paso de una base de datos a otra :
use nombrebasededatos
 Creacion de tabla:
create table nombreTabla ( nombreCampo1 tipodato [null | not null]
[restricciones], nombreCampo2 tipodato….)
Tipos de Datos
Ejemplo Creación de tablas sin restricciones

create table alumnos(cod int, nombre varchar(30), grupo char(3))

create table grupos (cod int , grupoNombreLargo varchar(20))


Creación y eliminación de una tabla

 Creación de una tabla


NULL o
Nombre de columna Tipo de datos
NOT NULL
CREATE TABLE Categories
(CategoryID int IDENTITY
(1,1) NOT NULL,
CategoryName varchar(15) NOT NULL,
Description text NULL,
Picture image NULL)

 Especificación de NULL o NOT NULL


 Eliminación de una tabla
Instrucción eliminación de una tabla
Agregar y quitar columnas

AGREGAR ALTER TABLE CategoriesNew


ADD Commission money null

Customer_name Sales_amount Sales_date Customer ID Commission

QUITAR
ALTER TABLE CategoriesNew
DROP COLUMN Commission
Instrucción modificar tabla

alter table alumnos add codpostal int

alter table alumnos drop column codpostal

alter table alumnos alter column nombre varchar(50)


Modificar nombre de una columna

Exec sp_rename
‘nombredelatabla.nombredelacolumna’,
‘nombrenuevodelacolumna’ ;
 Generación de valores de columnas. Autonumérico

 Uso de la propiedad Identity


 Requisitos para utilizar la propiedad Identity
 Sólo se permite una columna de identidad por tabla
 Utilizar con tipos de datos integer, numeric y decimal
 Recuperar información acerca de la propiedad Identity
 Utilizar IDENT_SEED e IDENT_INCR para información
de definición
 Utilizar @@identity para determinar el valor más
reciente
Crear campo Identity
Identity
Identity
Generación de secuencias de comandos

 Generación del esquema como una secuencia de comandos de


Transact-SQL
 Mantener una copia de seguridad
 Crear o actualizar una secuencia de comandos de desarrollo de la
base de datos
 Crear una prueba o un entorno de desarrollo
 Formar empleados recién contratados
 Qué se genera
 Toda la base de datos en un sólo archivo de comandos
 Sólo el esquema de las tablas
 El esquema de las tablas y los índices
Tipos de integridad de datos
Integridad de dominio
(columnas)

Integridad de entidad (filas)

Integridad referencial
(entre tablas)
Exigir integridad de los datos

 Integridad de datos declarativa


 Los criterios se definen en la definición del objeto
 Asegurada automáticamente por SQL Server
 Implementada mediante restricciones, valores predeterminados y
reglas
 Integridad de datos procedimental
 Los criterios se definen en una secuencia de comandos
 Asegurada mediante secuencia de comandos
 Implementada mediante desencadenadores y prodedimientos
almacenados
 Definición de restricciones

 Creación de restricciones
 Consideraciones para el uso de restricciones
Creación de restricciones

 Utilizar CREATE TABLE o ALTER TABLE


 Puede agregar restricciones a una tabla con datos
existentes
 Puede aplicar restricciones a una sola columna o a varias
columnas
 Una sola columna, se llama restricción de columna
 Varias columnas, se llama restricción de tabla
Creación de restricciones
Creación de restricciones
Ejemplo creación de restricciones
Consideraciones para el uso de restricciones

 Pueden cambiarse sin volver a crear una tabla


 Requieren comprobación de errores en aplicaciones y
transacciones
 Comprueban los datos existentes
 Podemos comprobar las constraint sobre una tabla con el
comando
sp_helpconstraint nombre_tabla
 Tipos de restricciones

 Restricciones DEFAULT
 Restricciones CHECK
 Restricciones PRIMARY KEY
 Restricciones UNIQUE
 Restricciones FOREIGN KEY
Restricciones DEFAULT

 Sólo se aplica a las instrucciones INSERT


 Sólo una restricción DEFAULT por columna
 No se puede utilizar con la propiedad IDENTITY
 Permite que se especifiquen algunos valores
proporcionados por el sistema
ALTER TABLE Customers ADD
CONSTRAINT DF_contactname DEFAULT 'UNKNOWN'
FOR ContactName

Create Table Customers ( ContactName char(10)


constraint df_contactName default ‘unknown’, ….)
Restricciones CHECK

 Se utilizan con las instrucciones INSERT y UPDATE


 Pueden hacer referencia a otras columnas en la misma
tabla
 No pueden:
 Contener subconsultas
ALTER TABLE Employees ADD
CONSTRAINT CK_birthdate
CHECK (BirthDate > '01-01-1900' AND BirthDate <
getdate())

CREATE TABLE Employees ( birthdate date constraint


ck_birthdate check (BirthDate > '01-01-1900' AND
BirthDate < getdate()), …… )
Restricciones PRIMARY KEY
 Sólo una restricción PRIMARY KEY por tabla
 Los valores deben ser exclusivos
 No se permiten valores nulos
ALTER TABLE Customers ADD
CONSTRAINT PK_Customers
PRIMARY KEY NONCLUSTERED (CustomerID)

CREATE TABLE Customers (CustomerId int constraint


pk_Customers Primary Key,…)

CREATE TABLE Customers (CustomerId int, …,


constraint pk_Customers Primary Key(CustomerId),
…)
Restricciones UNIQUE
 Permite un valor nulo
 Permite varias restricciones UNIQUE en una tabla
 Definidas con una o más columnas

ALTER TABLE Suppliers ADD


CONSTRAINT U_CompanyName UNIQUE (CompanyName)

CREATE TABLE Suppliers (CompanyName varchar(20)


constraint U_companyname Unique,….)

CREATE TABLE Suppliers (CompanyName varchar(20),


constraint U_companyname Unique(CompanyName),….)
Restricciones FOREIGN KEY
 Deben hacer referencia a una restricción PRIMARY KEY o UNIQUE
 Proporcionan integridad referencial de una o de varias columnas
 Los usuarios deben tener permisos SELECT o REFERENCES en las
tablas a las que se hace referencia

ALTER TABLE Orders ADD CONSTRAINT FK_Orders_Customers


FOREIGN KEY(CustomerID) REFERENCES Customers(CustomerID)

CREATE TABLE orders ( customerId tipodato,


CONSTRAINT FK_Orders_Customers FOREIGN KEY(CustomerID)
REFERENCES Customers(CustomerID), ….)

CONSTRAINT nombre_constraint FOREIGN KEY (campo en esta


tabla ) REFERENCES tabla a la que referencia (nombre del
campo en la otra tabla ala que referencia)
Instrucción integridad referencial
Integridad referencial en cascada
NINGUNA CASCADA
Customers
ACCIÓN Customers CustomerID (PK)
CustomerID (PK)
1 1
INSERT new UPDATE CustomerID
CustomerID
CASCADA
Orders
CustomerID (FK) Orders
2 CustomerID (FK)
UPDATE old
CustomerID to new
CustomerID

Customers
CustomerID (PK)
3
DELETE old
CustomerID
 Deshabilitación de restricciones

 Deshabilitación de la comprobación de las restricciones en


los datos existentes

 Deshabilitación de la comprobación de las restricciones al


cargar datos nuevos
Deshabilitación de la comprobación de las restricciones
en los datos existentes

 Se aplica a las restricciones CHECK y FOREIGN KEY


 Utilice la opción WITH NOCHECK cuando agregue una
restricción nueva si no quiere se chequeen los datos
existentes
 Utilizar si los datos existentes no cambian
 Se pueden cambiar los datos existentes antes de agregar
restricciones

ALTER TABLE Employees


WITH NOCHECK
ADD CONSTRAINT FK_Employees_Employees
FOREIGN KEY (ReportsTo)
REFERENCES Employees(EmployeeID)
Deshabilitación de las restricciones

 Se aplica a las restricciones CHECK y FOREIGN KEY


 Utilizar si quiero añadir datos sin que se realice el chequeo
de la restricción correspondiente:
 Los datos cumplen las restricciones
 Carga datos nuevos que no cumplen las restricciones

ALTER TABLE Employees


NOCHECK
CONSTRAINT FK_Employees_Employees
Decisión del método de implementación que va a utilizar

Componente de Costos de Antes o después


Funcionalidad
integridad de datos rendimiento de la transacción

Restricciones Media Baja Antes

Valores predetermi-
Baja Baja Antes
nados y reglas

Desencadenadores Alta Medio-alto Después

Tipos de datos,
Baja Baja Antes
Null/Not Null

También podría gustarte