Sie sind auf Seite 1von 12

Manual de SQL Server 2000 Tablas

Tablas

Las Tablas
Una tabla es una colección de columnas que contiene todos los datos de una base de datos de una base
de datos y definen los atributos de la información que en ella se almacena.
Cada fila de la tabla contiene la información sobre un registro.
Una tabla es una colección de datos sobre una entidad (persona, lugar, proceso, cosa) especifica que
tiene un numero discreto de atributos designados (descripción, dirección, teléfono, nombres, cantidad,
stock). SQL Server las denomina tabla de base.
Algunos Términos
• Columnas
Los atributos de los datos de una tabla (cantidad, fecha de venta, código de vendedor, cantidad
vendida).
• Filas
Cada instancia de los datos en una tabla viene representada por una única entrada.
• Clave Primaria (Primary Key)
Identifica a cada fila y es única.
• Clave Foránea (Foreign Key)
Campo que permite establecer una relación con otra tabla, siendo una clave externa la que une a
dos tablas.

Los tipos de datos de SQL Server


SQL Server 2000. Proporciona un gran número de tipos de datos, como se muestra a continuación en la
siguiente tabla.
Tipos de datos numéricos exactos
Los tipos de datos numéricos exactos le permiten especificar de manera exacta la escala y precisión a
utilizar para el dato. Por ejemplo, puede especificar tres dígitos a la derecha del decimal y cuatro a la
izquierda. Una consulta siempre devuelve exactamente lo que ingreso. SQL Server soporta dos tipos de
datos numéricos exactos compatibles con ANSI: decimal y numeric.
En general, se usan los datos numéricos exactos para aplicaciones financieras en las que se desea tener
los datos de forma consistente, por ejemplo, siempre dos espacios decimales para evitar errores de
redondeo.
Tipos de datos numéricos aproximados
Los tipos de datos numéricos aproximados almacenan los datos sin precisión. Por ejemplo, el fragmento
1/3 se representa en un sistema decimal como 0.33333… (repitiendo).
El número no puede guardarse con precisión, por lo que se almacena una aproximación del valor.
Se usan en las aplicaciones científicas en las que la cantidad de decimales de un valor suele ser muy
grande.
Tipos de datos especiales
Bit
El tipos de dato bit es un tipo de dato lógico que se usa para almacenar información booleana. Los tipos
de datos voléanos se utilizan como marcadores para expresar criterios como encendido/apagado,
cierto/falso, y si/no. Los valores se almacenan como 0 o 1.
Las columnas de tipo bit pueden tener el valor NULL (desconocido) y no pueden ser indexadas.

Ing. Segundo José Castillo Zumarán 1


Manual de SQL Server 2000 Tablas

Los tipos de datos bit requieren de un solo byte de espacio de almacenamiento.


Text o image
Los tipos de datos text e image se usan cuando los requerimientos de almacenamiento exceden al límite
de columna de 8,000 caracteres. A menudo, a estos tipos de datos se les hace referencia como BLOBs.
Los tipos de datos e image pueden almacenar hasta 2 GB de datos binarios o de texto.
Tipos de datos de fecha y hora
La fecha y hora pueden almacenarse en un tipo de dato definido o bien en uno smalldatetime. La fecha y
hora siempre se almacenan juntas en un solo valor. Los datos de fecha y hora pueden tomar varios
formatos diferentes.puede especificar el mes utilizando el nombre completo o una abreviatura. Se ignora
el uso de mayúsculas/minúsculas y las comas son opcionales.
Los siguientes son algunos de los ejemplos de los formatos alfabéticos para el 15 de abril de 1999.
“Abr 15 1999”
“Abr 15 99”
“Abr 99 15”
“15 Abr 99”
“1999 Abril 15”
“1999 15 Abril”
También puede especificar el valor ordinal del mes. El valor ordinal de un elemento es el valor posicional
dentro de una lista de elementos. En los ejemplos anteriores abril es el cuarto mes del año, así que puede
usar el número 4 para su designación.
Los siguientes son algunos ejemplos que usan el valor ordinal para el 15 de abril de 1999.
4/15/99 (mm/dd/aa)
4/99/15 (mm/aa/dd)
15/99/04 (dd/aa/mm)
99/15/04 (aa/mm/dd)
Los datos almacenados en el tipo de dato DateTime se almacena hasta el milisegundo. Se utiliza un total
de 8 bytes, entre un intervalo de fechas de 01/01/1753 hasta el 31/12/9999.
El tipo de datos SmallDateTime utiliza un total de 4 bytes. Las fechas almacenadas en este formato son
precisas hasta el minuto. Esta se encuentra entre un intervalo de fecha de 01/01/1900 hasta 06/06/2079
Tipo de dato moneda
Hay dos tipos de datos moneda: money y smallmoney. Ambas tiene una escala de cuatro, lo que significa
que almacenan cuatro dígitos a la derecha del punto decimal. Estos tipos de datos pueden almacenar
para uso internacional unidades distintas a dólares, pero no hay disponibles en SQL Server funciones de
conversión de moneda. Al ingresar datos monetarios, debe antecederlos con un signo dólar.
Tipo de datos timestamp
Cada vez que agregue un nuevo registro a una tabla con un campo timestamp, se agregaran valores de
hora de forma automática; pero no solo esto, timestamp va un poco mas allá. Si realiza una actualización
a una fila, timestamp se actualiza a si mismo en forma automática.
El tipo de dato timestamp crea un valor único, generado por SQL Server, que se actualiza
automáticamente. Aunque el tipo timestamp luce como un tipo de dato datetime, no lo es. Los tipos de
datos timestamp se almacenan como binary(8) para columnas NOT NULL o Varvinary(8) si la columna
esta marcada para permitir valores nulos.

Ing. Segundo José Castillo Zumarán 2


Manual de SQL Server 2000 Tablas

Tipo de datos Tipo de datos base Sinónimos Rango/Dominio Espacio de almacenamiento

Entero Bigint Números de 8 bytes


-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807

Int integer Números de -2.147.483.648 a 2.147.483.647 4 bytes

Smallint Números enteros de -32.768 a 32.767 2 bytes

Tinyint Números enteros de 0 a 255 1 byte


Bit 0ó1 Los tipos de datos bit comparten un byte con otras
columnas de tipo bit de la misma tabla. Por tanto, 8
columnas de tipo bit de la misma tabla utilizan 1
byte de almacenamiento. Si la tabla sólo tiene una
columna de tipo bit, seguirá utilizando 1 byte,
aunque podrán añadirse 7 columnas más gratis.

Decimal decimal(p,s) dec Números enteros o fraccionarios de -10^38+1a De 5 a 17 bytes, en función de la precisión
empaquetado numeric 10^38-1 especificada, p, que puede tener hasta 38 cifras. De
(numérico exacto) promedio, hace falta 1 byte de almacenamiento para
cada 2 cifras de precisión.

Coma flotante float (precisión de hasta float(n) donde n está entra 1 y Aproximaciones de números de Entre 4 y 8 bytes, dependiendo de la precisión
(numérico 15cifras) 53 e indica el número de bits -1.79E+308 a 1.79E+308
aproximado) que se utilizan para almacenar
la mantiza del número flota en
notación científica Double
precisión
real (precisión de 7 cifras) float(n) donde n está entra 1 y Aproximaciones de números de 4 bytes
24 -3.40E+38 a 3.40E+38
Carácter (longitud char(n) character(n) character Hasta 8.000 caracteres, según indique n, del 1 byte por cada carácter n declarado, aunque no se
fija) (character sin un tamaño conjunto de caracteres instalado utilice en su totalidad
específico es sinónimo de un
campo de 1 carácter, char(1))

Carácter (longitud varchar(n) character varying (n), char Hasta 8.000 caracteres, según indique n, del 1 byte por cada carácter almacenado. Los
variable) varying(n) conjunto de caracteres instalado caracteres declarados, pero no utilizados no
consumen espacio de almacenamiento

Cadenas de nchar(n) national character(n) national Hasta 4.000 caracteres 2 bytes por cada carácter declarado
caracteres Unicote char(n)

Nvarchar(n) national character(n) varying(n) Hasta 4.000 caracteres 2 bytes por cada carácter almacenado. Los
national char varying(n) caracteres declarados, pero no utilizados no
consumen espacio de almacenamiento

ntext national text hasta 2^30-1 (1.073.741.823) caracteres Es dos veces el número de caracteres especificado

Moneda Money Número con precisión de una diez milésima de 8 bytes


unidad (cuatro decimales); se utiliza
habitualmente para guardar valores de moneda.
De
-922.337.203.685.477,5808 a
922.337.203.685.477,5807

smallmoney Número con precisión de una diez milésima de 4 bytes


unidad (cuatro decimales); se utiliza
habitualmente para guardar valores de moneda.
De
-214.748,3648 a 214.748,3648

Ing. Segundo José Castillo Zumarán 3


Manual de SQL Server 2000 Tablas

Fecha y hora Datetime Representación de fecha y hora combinadas 8 bytes


(SQL Server no tiene tipos de datos DATE y
TIME independientes) Parte de
fecha: de 01-ENE-1753 a 31-DIC-9999

smalldatetime Representación de fecha y hora combinadas 4 bytes


Parte de fecha: de 01-ENE-1900 a 06-JUN-2079

Binario (longitud fija) binary(n) Datos binarios de longitud fija de n + 4 bytes aunque no se utilicen totalmente
n bytes. El argumento n debe ser valor
comprendido entre 1 y 8.000

Binario (longitud Varbinary(n) binary varying Datos binarios de longitud variable de n bytes. El tamaño de almacenamiento es la longitud actual
variable) El argumento debe ser un valor comprendido de los datos escritos + 4 bytes
entre 1 y 8.000

Texto largo/BLOB text e image Text: Datos de tipo carácter hasta 2^31-1 Si no es nulo, se utiliza un puntero de 16 bytes en la
(2.147.438.647) caracteres Image: Datos página de datos mas el número de páginas de 8Kb
binarios hasta 2^31-1 (2.147.483.647) que sean necesarias para guardar los datos reales.
caracteres. Los tipos de datos text e image son Las páginas de tipo text e image pueden
siempre de longitud variable compartirse con otros datos de tipo text e image de
la misma tabla

Otros Cursor Una referencia a un cursor que pude utilizarse


sólo para variables, para definiciones de tabla

timestamp Un número exclusivo para toda la base de datos 8 bytes

uniqueidentifier Un identificador exclusivo globalmente 16 bytes

sql_variant Almacena valores de varios tipos de datos


excepto text, ntext, timestamp y sql_variant

Table Se utiliza para almacenar un conjunto de


resultados para un proceso posterior

Ing. Segundo José Castillo Zumarán 4


Manual de SQL Server 2000 Tablas

Tipos de Datos Definidos por el Usuario


Los tipos de datos definidos por el usuario se basan en los tipos de datos proporcionados por el sistema.
Un tipo de dato definido por el usuario se define para una base de datos específicos.
Sp_addtype nombre_tipo_dato_usuario, tipo_dato_estandar
[, NULL |NONULL]
• Nombre_tipo_dato_usuario es el nombre del tipo de dato definido por el usuario.
• Tipo_dato_estandar es un tipo de dato incorporado en SQL Server.
• NULL | NONULL determina si el tipo de dato definido por el usuario permitirá valores nulos.
Los tipos de datos definidos por el usuario que se crean en la base de datos model son automáticamente
incluidos en todas las bases de datos que se crean desde el momento de su inclusión en la model.
La definición del tipo de datos se guarda en la tabla de sistema systype del catalogo de la base de datos.
Ejemplo
Sp_addtype telefono, 'Varchar(12)', Null
Crea un tipo de dato de usuario de nombre telefono en base al tipo estándar VARCHAR, y que permite
valores nulos.
Eliminación de un tipo de dato definido por el usuario
El procedimiento almacenado del sistema sp_droptype elimina los tipos de datos definidos por el usuario
de la tabla del sistema systypes. Un tipo de dato definido por el usuario no puede eliminarse si las tabla u
otras bases de datos hacen referencia a el.
sp_droptype nombre_tipo_dato_usuario
Ejemplo
Sp_addtype telefono

Ing. Segundo José Castillo Zumarán 5


Manual de SQL Server 2000 Tablas

Creación de Tablas

Creando Tablas
La sentencia CREATE TABLE sirve para crear la estructura de una tabla no para rellenarla con
datos, nos permite definir las columnas que tiene y ciertas restricciones que deben cumplir
esas columnas.
La sintaxis es la siguiente:

Nbtabla : Nombre de la tabla que estamos definiendo


Nbcol : Nombre de la columna que estamos definiendo
Tipo : Tipo de dato de la columna, todos los datos almacenados en la columna
deberán ser de ese tipo.

Una restricción consiste en la definición de una característica adicional que tiene una columna
o una combinación de columnas, suelen ser características como valores no nulos (campo
requerido), definición de índice sin duplicados, definición de clave principal y definición de
clave foránea (clave ajena o externa, campo que sirve para relacionar dos tablas entre sí).
restricción1: una restricción de tipo 1 es una restricción que aparece dentro de la definición
de la columna después del tipo de dato y afecta a una columna, la que se está definiendo.

La cláusula NOT NULL indica que la columna no podrá contener un valor nulo, es decir que se
deberá rellenar obligatoriamente y con un valor válido (equivale a la propiedad requerido Sí de
las propiedades del campo).
La cláusula CONSTRAINT sirve para definir una restricción que se podrá eliminar cuando
queramos sin tener que borrar la columna. A cada restricción se le asigna un nombre que se
utiliza para identificarla y para poder eliminarla cuando se quiera.
restricción2: una restricción de tipo 2 es una restricción que se define después de definir
todas las columnas de la tabla y afecta a una columna o a una combinación de columnas.

Ing. Segundo José Castillo Zumarán 6


Manual de SQL Server 2000 Tablas

La sintaxis de una restricción de tipo 2 es muy similar a la CONSTRAINT de una restricción 1


la diferencia es que ahora tenemos que indicar sobre qué columnas queremos definir la
restricción. Se utilizan obligatoriamente las restricciones de tipo 2 cuando la restricción afecta
a un grupo de columnas o cuando queremos definir más de una CONSTRAINT para una
columna (sólo se puede definir una restricción1 en cada columna).
En SQL Server 2000, una tabla siempre se crea en una base de datos y es propiedad de un usuario. El
propietario es el usuario que ha creado la tabla, pero cualquiera que tenga la función sys_admin o
bd_owner puede crear tabla propiedad de otro usuario.
Una base de datos puede contener varias tablas con el mismo nombre, siempre que las tablas tengan
distintos propietarios.
El nombre completo de una tabla tiene 3 partes:
BasedeDatos.Propietario.NombredelaTabla
Tenga en cuenta las siguientes limitaciones al momento de crear las tablas:
• 1,024 columnas por tabla.
• 8092 bytes por fila (no se aplica a los tipos de datos image y text)
Especificación de NULL o NOT NULL
Cuando no especifica si una columna es NULL o NOT NULL SQL Server determina esta propiedad de la
columna en base al estado de la opción ANSI NULL default de la base de datos.
Para evitar conflictos debido al cambio de configuración de la base de datos, especifique para cada
columna si será NULL o NOT NULL.
Para crear una tabla en SQL Server utilice una de las tres herramientas siguientes
• El administrador Corporativo de SQL Server
• Desde Diagramas de la base de datos
• La Instrucción CREATE DATABASE

Ing. Segundo José Castillo Zumarán 7


Manual de SQL Server 2000 Tablas

Ejemplo: Implementar la siguiente Base de Datos, cuyo nombre será: DbProyecto

Detallamos el Diseño Físico de la Estructura de la Base de Datos


Tabla EtapaProyecto
Registra las Etapas de Desarrollo consideradas al desarrollar un proyecto
Restriccion
NombreCampo Nulidad TipoDatos Tamaño Descripcion
Clave Principal Clave Foranea
etaCodigo Not Null Char 2 PK
etaNombreEtapa Not Null Varchar 100

Tabla Empleado
Mantiene el registro de los empleados
Restriccion
NombreCampo Nulidad TipoDatos Tamaño Descripcion
Clave Principal Clave Foranea
empCodigo Not Null Char 5 PK
empApellido Not Null Varchar 35
empNombre Not Null Varchar 35
empTelefonoCasa Null Varchar 12
empTelefonoMovil Null Varchar 12
empDireccion Null Varchar 100
A Activo
empEstado Not Null Char 1 I Inactivo

Ing. Segundo José Castillo Zumarán 8


Manual de SQL Server 2000 Tablas

Tabla Proyecto
Mantiene un registro de todos los Proyectos que desarrolla la Empresa
Restriccion
NombreCampo Nulidad TipoDatos Tamaño Descripcion
Clave Principal Clave Foranea
proCodigo Not Null Int PK
proNombreProyecto Not Null Varchar 100
proInicio Null SmallDateTime
proCulminacion Null SmallDateTime
proPresupuesto Null Money Presupuesto del Proyecto
proMontoReal Null Money Monto Real del Proyecto
JefeProyecto Null Char 5 FK(Empleado) Empleado Jefe del Proyecto
A Abandonado
proEstado Not Null Char 1 S Suspendido
C Culminado

Tabla EtapaProyecto
Lleva un regsitro de las etapas consideradas al desarrollar un proyecto y el empleado responsable de
cada una de las etapas
Restriccion
NombreCampo Nulidad TipoDatos Tamaño Descripcion
Clave Principal Clave Foranea
proCodigo Not Null Integer FK(Proyecto)
PK
etaCodigo Not Null Char 2 FK(Etapa)
responsable Not Null Char 5 FK(Empleado) Empleado jefe de la Etapa
fechaInicio Null SmallDateTime
fechaFin Null SmallDateTime

Tabla PersonalAsignado
Lleva un registro de todos los empleados asignados a una Etapa en un Proyeto, asi como la cantidad de horas
asignadas
Restriccion
NombreCampo Nulidad TipoDatos Tamaño Descripcion
Clave Principal Clave Foranea
proCodigo Not Null Integer
FK(EtapaProyecto)
etaCodigo Not Null Char 2 PK
empCodigo Not Null Char 5 FK(Empleado)
totalHoras Not Null Integer
Create DataBase DbProyecto
Go

Use DbProyecto
Go

Create Table EtapaDesarrollo


(
etaCodigo Char(2) Constraint pk_etaDes_etaCodigo Primary Key,
etaNombreEtapa Varchar(100) Not Null
)
Go

Create Table Empleado


(
empCodigo Char(5) Constraint pk_emp_empCodigo Primary Key,
empApellido Varchar(35) Not Null,
empNombre Varchar(35) Not Null,
empTelefonoCasa Varchar(12) Null,
empTelefonoMovil Varchar(12) Null,
empDireccion Varchar(100) Null,
empEstado Char(1) Not Null
)
Go

Ing. Segundo José Castillo Zumarán 9


Manual de SQL Server 2000 Tablas

Create Table Proyecto


(
proCodigo Int Constraint pk_pro_proCodigo Primary Key,
proNombreProyecto Varchar(100) Not Null,
proInicio SmallDateTime Null,
proCulminacion SmallDateTime Null,
proPresupuesto Money Null,
proMontoReal Money Null,
JefeProyecto Char(5) Null Constraint fk_pro_JefeProyecto References Empleado(empCodigo),
proEstado Char(1) Not Null
)
Go

Create Table EtapaProyecto


(
proCodigo Int Constraint fk_EtaPro_proCodigo References Proyecto(proCodigo),
etaCodigo Char(2) Constraint fk_EtaPro_etaCodigo References EtapaDesarrollo(etaCodigo),
responsable Char(5) Not Null Constraint fk_EtaPro_responsable References Empleado(empCodigo),
fechaInicio SmallDateTime Null,
fechaFin SmallDateTime Null,
Constraint pk_EtaPro_principal Primary Key(proCodigo,etaCodigo)
)
Go

Create Table PersonalAsignado


(
proCodigo Integer,
etaCodigo Char(2),
empCodigo Char(5) Constraint fk_PerAsi_empCodigo References Empleado(empCodigo),
totalHoras Integer Not Null,
Constraint fk_PerAsi_foranea Foreign Key(proCodigo,etaCodigo) References EtapaProyecto,
Constraint pk_PerAsi_Principal Primary Key(proCodigo,etaCodigo,empCodigo)
)

Modificando la Estructura de una Tabla

La sintaxis de restriccion1 es idéntica a la restricción1 de la sentencia CREATE TABLE, te la


describimos a continuación, si tienes alguna duda repasa la sentencia CREATE TABLE.

La sintaxis de restriccion2 es idéntica a la restricción2 de la sentencia CREATE TABLE, te la


describimos a continuación, si tienes alguna duda repasa la sentencia CREATE TABLE.

Ing. Segundo José Castillo Zumarán 10


Manual de SQL Server 2000 Tablas

La cláusula ADD COLUMN (la palabra COLUMN es opcional) permite añadir una columna
nueva a la tabla. Como en la creación de tabla, hay que definir la columna indicando su
nombre, tipo de datos que puede contener, y si lo queremos alguna restricción de valor no
nulo, clave primaria, clave foránea, e índice único, restriccion1 es opcional e indica una
restricción de tipo 1 que afecta a la columna que estamos definiendo.
Adición de columnas a una tabla
ALTER TABLE nombre_tabla
ADD nombre_columna propiedades [restricciones]
Modificación de la definición de una columna de una tabla
ALTER TABLE nombre_tabla
ALTER COLUMN nombre_columna nuevas_propiedades
Eliminación de columnas de una tabla
ALTER TABLE nombre_tabla
DROP COLUMN nombre_columna
Deben quitarse todos los índices y restricciones basadas en la columna antes de proceder a su
eliminación.
Eliminación de una tabla

La sentencia DROP TABLE sirve para eliminar una tabla. No se puede eliminar una tabla si
está abierta, tampoco la podemos eliminar si el borrado infringe las reglas de integridad
referencial (si interviene como tabla padre en una relación y tiene registros relacionados).
La sintaxis es la siguiente:

Al eliminar una tabla, elimina la definición y todos los datos de una tabla, así como las especificaciones de
permisos para esa tabla.
Antes de eliminar una tabla, debe eliminar cualquier dependencia entre la tabla y otros objetos.
Para ver las dependencias existentes, ejecute el procedimiento almacenado del sistema sp_depende.
Para eliminar las vistas que dependen de la tabla utilice la sentencia DROP VIEW.

Ing. Segundo José Castillo Zumarán 11


Manual de SQL Server 2000 Tablas

Obtención de la Definición de una Tabla


sp_help nombre_objeto
Este procedimiento permite averiguar como esta definido un objeto de la base de datos.
Ejemplo
sp_help DbProyecto

Ing. Segundo José Castillo Zumarán 12

Das könnte Ihnen auch gefallen