Vous êtes sur la page 1sur 31

Componentes del SQL

Comandos SQL

Creacin de Tablas

Temas

Tipos de datos de SQL Server Tipos de datos de usuario Crear, Modificar y Eliminar tablas Implementar Constraints Implementar Triggers

Tipos de Datos provistos por SQL Server


Numricos Integer Exact numeric Approximate numeric Monetary Date and Time Character y Unicode Character Binary Sql_Variant, Table, uniqueidentifier, timestamp

Crear y Eliminar tipos de datos de usuario

Crear Crear EXEC EXEC EXEC EXEC EXEC EXEC Eliminar Eliminar EXEC sp_droptype cadena EXEC sp_droptype cadena sp_addtype codigo, 'char(5)', NOT NULL sp_addtype codigo, 'char(5)', NOT NULL sp_addtype cadena, 'varchar(50)', NULL sp_addtype cadena, 'varchar(50)', NULL sp_addtype direc, 'varchar(65)', NULL sp_addtype direc, 'varchar(65)', NULL

Crear y Eliminar tipos de datos de usuario

LAB

Como organiza SQL Server los datos en filas

Data

Header Header

Fixed Data Fixed Data

NB NB

VB VB

Variable Data Variable Data

4 bytes

Bloque Null Bloque Variable

Como organiza SQL Server los datos text, ntext e image


Fila de Data
Puntero Text

Estructura Raz Estructura Raz

Nodo Intermedio Nodo Intermedio

Nodo intermedio Nodo intermedio

block 1 block 1

block 2 block 2

block 1 block 1

block 2 block 2

Crear y Eliminar Tablas


Crear tablas
Nombre de columna Nombre de columna CREATE TABLE Empleados CREATE TABLE Empleados (codEmpleado (codEmpleado nomEmpleado nomEmpleado direcEmp direcEmp foto foto ) ) Tipo de dato Tipo de dato NULL o NULL o NOT NULL NOT NULL

int IDENTITY (1,1) NOT NULL, int IDENTITY (1,1) NOT NULL, varchar(25) NOT NULL, varchar(25) NOT NULL, Varchar(50) NOT NULL, Varchar(50) NOT NULL, image NULL) image NULL)

Eliminar tablas DROP TABLE Empleados DROP TABLE Empleados

Adicionar o eliminar columnas


Agregar
ALTER TABLE Empleados ALTER TABLE Empleados ADD sueldo money null ADD sueldo money null
foto foto sueldo sueldo

codEmpleado nomEmpleado direcEmp codEmpleado nomEmpleado direcEmp

Eliminar
ALTER TABLE Empleados ALTER TABLE Empleados DROP COLUMN foto DROP COLUMN foto

Crear y Eliminar tablas

LAB

Columnas Calculadas
NULL o NULL o NOT NULL NOT NULL NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL, NULL) NULL)

Nombre de columna Nombre de columna CREATE TABLE DemoCalc CREATE TABLE DemoCalc (cod (cod des des precio precio cant cant total As total As ) )

Tipo de dato Tipo de dato Char(4) Char(4) varchar(25) varchar(25) money money integer integer (precio * cant) (precio * cant)

Con SQL Server 2000 es posible definir columnas calculadas que operan columnas de la misma tabla.

Columnas calculadas

LAB

Integridad de datos
Tipos de integridad de datos Forzar integridad de datos Definir constraints Tipos de Constraints

Tipos de Integridad de datos


Integridad de dominio (columnas)

Integridad de Entidad (filas)

Integridad Referencial (entre tablas)

Forzar integridad de datos

Integridad declarativa Criterios definidos en un objeto Implementar usando constraints Integridad por procedimientos Forzar scripts Implementar triggers y stored procedures

Crear Constraints

DEFAULT CHECK PRIMARY KEY FOREIGN KEY

Constraint PRIMARY KEY


Solo un constraint PRIMARY KEY por tabla Los valores deben ser nicos Los valores NULL no estan permitidos Crea un ndice sobre las columnas especificadas

USE MiBase USE MiBase GO GO ALTER TABLE Empleados ALTER TABLE Empleados ADD ADD CONSTRAINT PK_Empleados CONSTRAINT PK_Empleados PRIMARY KEY NONCLUSTERED (codEmpleado) PRIMARY KEY NONCLUSTERED (codEmpleado)

Ejemplo Primary Key

LAB

Probar: insert clientes values (2113,'Amago Sys.',103,15000)

Constraint FOREIGN KEY


Deben referenciar a un constraint PRIMARY KEY Proveen integridad referencial No crean ndices
USE MiBase USE MiBase GO GO ALTER TABLE Empleados ALTER TABLE Empleados ADD CONSTRAINT FK_Pedidos ADD CONSTRAINT FK_Pedidos FOREIGN KEY (codEmpleado) FOREIGN KEY (codEmpleado) REFERENCES Pedidos (codEmpleado) REFERENCES Pedidos (codEmpleado) GO GO

Ejemplo Llave Foranea

LAB

Probar insert clientes values (3000,'Amago Sys.',250,15000)

Constraint CHECK
Son empleados con sentencias INSERT y UPDATE Pueden referenciar otras columnas en la tabla

USE MiBase USE MiBase GO GO ALTER TABLE Empleados ALTER TABLE Empleados ADD ADD CONSTRAINT CK_sueldo CONSTRAINT CK_sueldo CHECK (sueldo >= 500) CHECK (sueldo >= 500)

Ejemplo Check

LAB

insert repventas values(50,'Sofia Quevedo',33,22,'Rep.Ventas','3/5/1991',default,default,12000)

Constraint DEFAULT

Aplicado slo para sentencias INSERT Slo se acepta un DEFAULT por columna No puede ser usado con la propiedad IDENTITY

USE MiBase USE MiBase GO GO ALTER TABLE Empleados ALTER TABLE Empleados ADD ADD CONSTRAINT DF_SueldoEmpleado DEFAULT 500 CONSTRAINT DF_SueldoEmpleado DEFAULT 500 FOR sueldo FOR sueldo GO GO

Ejemplo Default
LAB

insert repventas values(451,'Karem Vigo',33,22,'Rep.Ventas','3/5/1991',default,default,12000) select * from repventas where num_empl=450

Resumen

Crear tipos de datos Crear tablas Agregar / Eliminar columnas Implementar constraints Permisos y Roles

Vous aimerez peut-être aussi