Вы находитесь на странице: 1из 13

Curso: Implementacin de base de datos SQL Server 2008

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

Curso: Implementacin de base de datos SQL Server 2008

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.

Tipos de datos 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

Cadenas de caracteres char varchar

19

Curso: Implementacin de base de datos SQL Server 2008

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

Creacin de tipos de datos


El comando CREATE TYPE

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.

Sintaxis CREATE TYPE [ schema_name. ] type_name { FROM base_type [ ( precision [ , scale ] ) ]


20

Curso: Implementacin de base de datos SQL Server 2008

[ 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

Curso: Implementacin de base de datos SQL Server 2008

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.

Ejemplo: Creacin de la base de datos ExtPro

USE Master go CREATE DATABASE ExtPro go La instruccin CREATE TABLE

Sintaxis

CREATE TABLE nombre_tabla( nombre_columna1 tipo_dato1 [ NULL | NOT NULL ] ,


22

Curso: Implementacin de base de datos SQL Server 2008

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

Ejemplo: Verificacin de la definicin de la tabla Curso

sp_help Curso go

23

Curso: Implementacin de base de datos SQL Server 2008

Ejercicio: Creacin de las tablas Alumno, Matricula y Pago

Como ejercicio, en su query escriba las instrucciones para crear las tablas Alumno, Matricula y Pago

-- Creacin de la tabla Alumno

-- Creacin de la tabla Matricula

-- Creacin de la tabla Pago

Modificacin de la definicin de una tabla.


En una tabla podemos aadir nuevas columnas, eliminar columnas, cambiar las propiedades de una columna, aadir eliminar restricciones.

La instruccin ALTER TABLE

Permite modificar la definicin de una tabla.

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

Curso: Implementacin de base de datos SQL Server 2008

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.

Ejemplo: Adicin de una columna a una tabla

USE ExtPro GO

CREATE TABLE TablaPrueba( columna1 INT NOT NULL , columna2 CHAR(10) NOT NULL , columna3 DATETIME NULL ) GO

Ahora, le aadiremos una columna de tipo MONEY con la propiedad NULL.

ALTER TABLE TablaPrueba ADD columna4 MONEY NULL GO

sp_help TablaPrueba GO

Ejemplo: Creacin de la tabla Producto -- TABLA PRODUCTO USE BdEjemplo_01 GO

IF EXISTS (SELECT * FROM SysObjects WHERE Type='U' and Name='Producto') DROP TABLE Producto GO
25

Curso: Implementacin de base de datos SQL Server 2008

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

Comprobar la existencia de la tabla Producto

USE BDEjemplo_01 GO SELECT table_name FROM information_schema.tables WHERE table_name = 'Producto' GO

Ejemplo: Creacin de la tabla Cliente utilizando los tipos de datos definidos por el usuario: direccin y telfono

-- TABLA CLIENTE USE BdEjemplo_01 GO

IF EXISTS (SELECT * FROM SysObjects WHERE Type='U' and Name='Cliente') DROP TABLE Cliente GO
26

Curso: Implementacin de base de datos SQL Server 2008

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

--TABLA EMPLEADO USE BdEjemplo_01 GO

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

Curso: Implementacin de base de datos SQL Server 2008

Verificar la existencia de las tablas Cliente y Empleado.

SELECT table_name FROM information_schema.tables WHERE table_name = 'Cliente' OR table_name = 'Empleado' GO

Creacin de tablas utilizando Microsoft SQL Server Management Studio (SSMS)

En el

explorador de objetos seleccionar la base de datos

BDEjemplo_01, luego seleccionar la carpeta Tablas con el botn derecho del mouse seleccionar Nueva Tabla para mostrar la ventana siguiente ventana:

28

Curso: Implementacin de base de datos SQL Server 2008

Ingresar: IDDistrito

CHAR(3)

y Nombre

VARCHAR(30)

Cerrar el editor para ingresar el nombre de la tabla: Distrito

29

Curso: Implementacin de base de datos SQL Server 2008

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

Вам также может понравиться