Professional Documents
Culture Documents
Caracteres
char[(n)]: Cadena de caracteres de longitud fija, de n caracteres como mximo. Por defecto, 1; mximo, 8000. varchar (n | max): Cadena de caracteres de longitud variable, con n caracteres como mximo. Su valor predeterminado es 1 y el mximo 8000 caracteres. Si se precisa max, la 31 variable puede contener hasta 2 caracteres de texto. nchar [(n)]: Cadena de un mximo de 4000 caracteres unicode. Si se precisa max, la 31 variable puede contener hasta 2 bytes da datos de tipo texto. Los tipos de datos sinnimos para respetar la norma SQL-2003 son: Tipo SQL Server Char Nchar Varchar Sinnimos character nacional char nacional carcter char varying character varying nacional char varying nacional character varying
Nvarchar
Numricos
decimal [(p [, d])]: Numrico exacto de precisin p (nmero de cifras total), con d cifras a la derecha de la coma. p est comprendido entre 1 y 38, 18 por defecto. d est comprendido entre 1 y p, 0 por defecto. Ejemplo: para decimal (8,3) el intervalo admitido ser de -99999,999 a +99999,999. Los 38 38 valores son gestionado de -10 a 10 -1.
Pgina 1
Fecha
Datetime: Fecha y hora almacenada en 8 bytes; 4 para un nmero de das respecto al 1 de enero de 1900, 4 para un nmero de milisegundos despus de medianoche. Las fechas se gestionan del 1 de enero de 1753 al 31 de diciembre de 9999. Las horas se gestionan con una precisin de 333 milisegundos. Smalldatetime: Fecha y hora almacenados en 4 bytes. Las fechas se gestionan del 1 de enero de 1900 al 6 de junio de 2079, con una precisin de un minuto. Datetime2: Ms preciso que el tipo datetime, permite almacenar un tipo de dato fecha y hora comprendidos entre el 01/01/0001 y el 31/12/9999. Date: Permite almacenar una fecha comprendida entre el 01/01/0001 y el 31/12/9999. Time: Permite almacenar un dato positivo de tipo hora inferior a 24:00 h con una precisin de 100 nanosegundos.
Especiales
bit: Valor binario que puede tomar los valores 0 1. timestamp: Dato cuyo valor se actualiza automticamente cuando la lneas se modifica o inserta. unique identifier: Permite crear un identificador nico basado en la funcin NEWID () sql_variant: El tipo de datos sql_variant permite almacenar cualquier tipo de datos, exceptuando datos de tipo text, ntext, timestamp y sql_variant. Si una columna utiliza este tipo de datos, las distintas filas de la tabla pueden almacenar, en dicha columna, datos de tipos diferentes. Una columna de tipo sql_variant puede poseer una longitud mxima de 8.016 bytes.
Pgina 2
DECLARE @MiTabla Table( codigo Int Primary Key, apellido Varchar(20)) INSERT @MiTabla VALUES (1,'Juan Perez') INSERT @MiTabla VALUES (2,'Miguel Diaz') SELECT * FROM @mitabla GO
Sintaxis
CREATE TABLE [nombreEsquema.] nombre_tabla ( nombre_columna {tipocolumna / AS expresin_calculada } [, nombre_columna] [, restricciones] ) [ON NombreGrupoArchivo] [TEXTIMAGE_ON NombreGrupoArchivo] nombreEsquema: Nombre del esquema en el que se va a definir la tabla. nombre_tabla: Puede ser de la forma base.propietario.tabla. nombre_columna: Nombre de la columna, que debe ser nico en la tabla. Puede haber 250 columnas por tabla. Tipocolumna: Tipo de sistema o tipo definido por el usuario. Restricciones: Reglas de integridad de tipo DEFAULT, CHECK, PRIMARY KEY, etc. Grupoarchivo: Grupo de archivos sobre el cual se crear la tabla. AS expresin_calculada Es posible definir una regla de clculo para las columnas que contienen datos calculados. Por supuesto, nicamente podr accederse a estas columnas en modo slo lectura, y no es posible insertar datos o actualizar los datos de una columna de este tipo.
Pgina 3
Sintaxis
ALTER TABLE [nombreEsquema.] nombretabla {[ ALTER COLUMN nombre_columna {nuevo_tipo_datos [(longitud [, precisin])] [ COLLATE intercalacin] [NULL | NO NULL]}] | ADD nueva_column |[WITH CHECK | WITH NOCHECK] ADD restriccin_tabla |DROP {[CONSTRAINT] nombre_restriccin | COLUMN nombre_columna} | {CHECK | NOCHECK} CONSTRAINT {ALL | nombre_restriccin} | {ENABLE | DISABLE} TRIGGER {ALL | nombre_desencadenador}} nombreEsquema: Nombre del esquema en el que va a estar definida la tabla. WITH NOCHECK: Permite establecer si se deben verificar (comprobar) la informacin del campo o los campos que se utilizan en el Constraint antes de la creacin del mismo. NULL, NOT NULL: Permiten definir una restriccin de nulidad o de no nulidad en una columna existente en la tabla. CHECK, NOCHECK: Permite activar y desactivar restricciones de integridad. ENABLE, DISABLE: Permiten activar y desactivar la ejecucin de desencadenadores la tabla. asociados a
Pgina 4
Pgina 5
Sintaxis (creacin)
CREATE TYPE nombreTipo {FROM tipoDeBase [(longitud [, precisin])] [NULL | NOT NULL] | EXTERNAL NAME nombreAssembly [.nombreClase] }[ ; ] Se puede definir un tipo de datos a partir de la definicin de una clase. Esta opcin est ligada a la integracin de CLR en SQL Server. Veremos esta integracin ms adelante en este libro.
Sintaxis (eliminacin)
DROP TYPE [schema_name.] type_name [ ; ] Ser imposible suprimir un tipo si ste se utiliza en una tabla de la base de datos en la que ha sido creado. Ejemplo: Creacin de un tipo para columnas como nombre cliente, nombre proveedor, etc.: CREATE TYPE TipoNombre FROM VARCHAR(30) NULL GO Ejemplo: Creacin de un tipo para valores entre -999 y +999: CREATE TYPE TipoEntero FROM NUMERIC(3) NOT NULL GO
Pgina 6
Definicin de un nuevo tipo de datos Importe mediante el SQL Server Management Studio:
Pgina 7
Los CONSTRAINTS son un mtodo estndar de forzar la integridad de datos, aseguran que los datos ingresados a las columnas sean vlidos y que las relaciones entre las tablas se mantendr. Los constraints pueden definirse al momento de crear la tabla, aunque tambin es posible hacerlo despus de que las tablas se han creado. Los CONSTRAINTS se ejecutan antes que la informacin se registre en el log.
Pgina 8
Integridad en relaciones
Este tipo de integridad, denominada integridad referencial declarativa (DRI - Declarative Referential Integrity), es el proceso por el cual SQL Server fuerza de manera automtica las relaciones entre tablas. Antes de aparecer este tipo de integridad para servidores SQL Server, era necesario desarrollar cdigos para aplicaciones denominadas desencadenadores para cada tabla, y estos se encargaban de ejecutar una serie de acciones que asegurasen esta integridad, y siempre bajo la supervisin del administrador. A este tipo de integridad llegamos ahora de manera automtica, de un modo muy sencillo y con un rendimiento considerable, de modo que el administrador puede dedicarse a otras tareas. Para conseguir esta integridad tenemos dos tipos de restricciones: PRIMARY KEY y FOREIGN KEY. 1. PRIMARY KEY La clave principal (PRIMARY KEY) nos permite asegurar la integridad de entidad (puesto que es nica en cada registro) y por otro lado nos garantiza la estabilidad de las relaciones con otras tablas. 2. FOREIGN KEY La restriccin FOREIGN KEY, se conoce como la clave externa o fornea que ya hemos explicado. Y como ya sabes es la pareja de la restriccin PRIMARY KEY, y juntas cumplen con la integridad referencial. Una clave externa es una copia de la clave principal de la tabla principal, se inserta en la tabla que se pretende enlazar y con esto creamos la relacin entre un par de tablas. Las claves externas pueden ser varias en una misma tabla, mientras que las principales deben ser nicas.
Pgina 9
10
Pgina 10