Академический Документы
Профессиональный Документы
Культура Документы
3 Creacin de tablas
Las tablas son objetos de la base de datos que contiene todos sus datos. En las tablas, los datos se organizan con arreglo a un formato de filas y columnas, similar al de una hoja de clculo. Cada fila representa a un registro nico, y cada columna representa a un campo dentro de un registro. Por ejemplo, en una tabla que contenga los datos de los empleados de una compaa puede haber una fila para cada empleado y distintas columnas en las que figuren detalles de los empleados tales como el nmero de empleado, el nombre, la direccin, el puesto que ocupa y su nmero de telfono particular.
Las tablas de SQL Server tienen dos componentes principales: Columnas: Cada columna representa algn atributo del objeto representado por la tabla, por ejemplo, una tabla de Artculos tendra columnas para el IdArticulo descripcin y precio. Filas: Cada fila representa una ocurrencia individual del objeto representado por la tabla. Por ejemplo, la tabla de Artculos tendra una fila por cada una de los artculos comercializados por la empresa.
Diseo de tablas
Para crear una tabla en SQL-Server previamente se debe planificar lo siguiente: Los tipos de datos que debe contener la tabla. Los tipos de datos definidos por el usuario, y crearlos para poder utilizarlos. Las columnas de la tabla y los tipos de datos para cada columna (as como su longitud, si es preciso). Que columnas aceptan valores NUL. Si deben utilizarse (y cuando) restricciones o valores predeterminados y reglas. Los tipos de ndices necesarios, donde se necesitan y que columnas son claves principales y claves externas. Tambin es posible crear una tabla bsica y luego modificarla segn las necesidades que se pueden establecer posteriormente. Como cada columna representa un atributo de un objeto, los datos de cada ocurrencia de la columna son similares. Una de las propiedades de las columnas es su tipo de
18
datos, que define el tipo de datos que la columna puede almacenar. A continuacin se definen los diferentes tipos de datos que se pueden utilizar en SQL Server.
SQL Server tiene varios tipos de datos bsicos, seleccionar el tipo de dato adecuado consiste en asociar el dominio de valores que necesite almacenar con el tipo de dato correspondiente. Al elegir tipos de datos para asignarlos a las diferentes columnas deber evitar desperdiciar espacio de almacenamiento y a la vez proporcionar espacio suficiente para el rango de valores posibles en las columnas. Los tipos de datos disponibles en SQL Server 2008 se muestra a continuacin: Numricos exactos bigint bit decimal int money Numricos aproximados float Fecha y hora date datetime2 datetime datetimeoffset smalldatetime time real numeric smallint smallmoney tinyint
19
text Cadenas de caracteres Unicode nchar ntext Cadenas binarias binary image Otros tipos de datos cursor hierarchyid sql_variant table timestamp uniqueidentifier xml varbinary nvarchar
Crea un tipo de datos de alias o un tipo definido por el usuario en la base de datos actual. La implementacin de un tipo de datos de alias se basa en un tipo nativo del sistema de SQL Server. Un tipo definido por el usuario se implementa a travs de una clase de un ensamblado de Common Language Runtime (CLR) de Microsoft .NET Framework. Para enlazar un tipo definido por el usuario a su implementacin, el ensamblado CLR que contiene la implementacin del tipo debe registrarse primero en SQL Server mediante CREATE ASSEMBLY.
[ NULL | NOT NULL ] | EXTERNAL NAME assembly_name [ .class_name ] | AS TABLE ( { <column_definition> | <computed_column_definition> } [ <table_constraint> ] [ ,...n ] ) }[;] Argumentos: schema_name Es el nombre del esquema al que pertenece el tipo de datos de alias o el tipo definido por el usuario. type_name Es el nombre del tipo de datos de alias o del tipo definido por el usuario. Los nombres de tipos deben cumplir las reglas de los identificadores. base_type Es el tipo de datos suministrado por SQL Server en el que se basa el tipo de datos de alias Ejemplos: Crear le tipo de dato DNI basado en CHAR(8) USE BdEjemplo_01 GO CREATE TYPE DNI FROM CHAR(8) NOT NULL ; Crear le tipo de dato Iniciales basado en CHAR(3) USE BdEjemplo_01 GO CREATE TYPE Iniciales FROM CHAR(3) NOT NULL ; Crear le tipo de dato Direccion basado en VARCHAR(30) CREATE TYPE Direccion FROM VARCHAR(30) NOT NULL ; GO
Crear le tipo de dato Telefono basado en CHAR(7) y que acepte NULL CREATE TYPE Telefono FROM CHAR(7) NULL ;
21
Creacin de tablas
Para desarrollar este tema, presentaremos un caso ejemplo muy sencillo. Se desea crear la base de datos de una institucin que brinda cursos de extensin profesional. Los interesados en los cursos se pueden matricular sin ninguna restriccin, y adems tienen facilidades para pagar el costo de los cursos.
A continuacin se presenta el modelo fsico SQL Server de la base de datos a crear. El nombre de la base de datos ser ExtPro.
Sintaxis
nombre_columna2 tipo_dato2 [ NULL | NOT NULL ] , nombre_columna3 tipo_dato3 [ NULL | NOT NULL ] , ... ) Ejemplo: Creacin de la tabla Curso
USE ExtPro go
CREATE TABLE Curso( idCurso nombreCurso numVacantes numMatriculados profesor precioCurso go CHAR(4) NOT NULL , VARCHAR(50) NOT NULL , SMALLINT NOT NULL , SMALLINT NOT NULL , VARCHAR(50) NULL , MONEY NOT NULL )
El procedimiento sp_help
Genera un reporte con informacin acerca de la definicin de un objeto de la base de datos activa. Todos los usuarios de la base de datos pueden ejecutar este procedimiento.
Sintaxis
sp_help nombre_objeto_basedatos
sp_help Curso go
23
Como ejercicio, en su query escriba las instrucciones para crear las tablas Alumno, Matricula y Pago
Sintaxis ALTER TABLE nombre_tabla ADD nombre_columna propiedades_columna | DROP COLUMN nombre_columna | ALTER COLUMN nombre_columna nuevas_propiedades_columna | ADD CONSTRAINT nombre_restriccin PRIMARY KEY | UNIQUE | FOREIGN KEY | DEFAULT | CHECK | DROP CONSTRAINT nombre_restriccin
ADD nombre_columna permite aadir una nueva columna a la tabla. DROP COLUMN se usa para eliminar una columna. ALTER COLUMN permite modificar la definicin de una columna.
24
ADD CONSTRAINT permite aadir una restriccin PRIMARY KEY, UNIQUE, FOREIGN KEY, DEFAULT CHECK a la definicin de una tabla. DROP CONSTRAINT se usa para eliminar una restriccin.
USE ExtPro GO
CREATE TABLE TablaPrueba( columna1 INT NOT NULL , columna2 CHAR(10) NOT NULL , columna3 DATETIME NULL ) GO
sp_help TablaPrueba GO
IF EXISTS (SELECT * FROM SysObjects WHERE Type='U' and Name='Producto') DROP TABLE Producto GO
25
CREATE TABLE Producto ( IdProducto Pro_Nombre Pro_PrecioUnitario Pro_CantidadStock Pro_FechaCompra Pro_Discontinuo ) GO CHAR(5) NOT NULL, VARCHAR (40) NOT NULL, DECIMAL (10,2) NULL, INT NOT NULL, DATETIME NOT NULL, BIT NOT NULL
Ejemplo: Creacin de la tabla Cliente utilizando los tipos de datos definidos por el usuario: direccin y telfono
IF EXISTS (SELECT * FROM SysObjects WHERE Type='U' and Name='Cliente') DROP TABLE Cliente GO
26
CREATE TABLE Cliente ( IdCliente Cli_RazonSocial Cli_Direccion Cli_Telefono ) GO CHAR(4) NOT NULL, VARCHAR (50) NOT NULL, Direccion , Telefono
Ejemplo: Creacin de la tabla Empleado utilizando los tipos de datos definidos por el usuario: direccin, telfono y distrito
IF EXISTS (SELECT * FROM SysObjects WHERE Type='U' and Name='Empleado') DROP TABLE Empleado GO
CREATE TABLE Empleado ( IdEmpleado Emp_Nombres Emp_Apellidos Emp_Direccion Emp_Telefono CHAR(4) NOT NULL, VARCHAR (20) NOT NULL, VARCHAR (30) NOT NULL, Direccion, Telefono
) GO
27
En el
BDEjemplo_01, luego seleccionar la carpeta Tablas con el botn derecho del mouse seleccionar Nueva Tabla para mostrar la ventana siguiente ventana:
28
Ingresar: IDDistrito
CHAR(3)
y Nombre
VARCHAR(30)
29
El procedimiento sp_help
Genera un reporte con informacin acerca de la definicin de un objeto de la base de datos activa. Todos los usuarios de la base de datos pueden ejecutar este procedimiento. Sintxis sp_help nombre_objeto_basedatos Ejemplo: Verificacin de la definicin de la tabla Distrito
30