Anda di halaman 1dari 12

LABORATORIO 1 MODELAMIENTO DE BASES DE DATOS Y USO DE SENTENCIAS CLAVES 1. Manejo de la Consola SQL 7.

0 (Enterprise Manager):
Creacin de Bases de Datos Ingrese a la consola Enterprise Manager de Microsoft Server SQL 7.0 Aparecer la siguiente ventana:

Haga click derecho en SQL Server Group y elija New SQL Server Registration , aparecer un wizard que lo guiar en el registro del servidor en su consola. De Next a la siguiente ventana y ponga el nombre del servidor .. en la opcin Available Servers, agregue el nombre del servidor y de Next. En la siguiente ventana elija la segunda opcin, coloque su nombres de usuario y su contrasea y de de Next en todas las opciones siguientes (se utilizaran las opciones por default), finalmente presione el botn que diga Finish. En el lado izquierdo ver varias carpetas debajo del servidor al que se conect, de clic derecho en la carpeta databases y elija New database. En la opcin File growth elija In Megabytes y ponga 7, luego presione Next. Su base de datos ya ha sido creada.

Como crear tablas en la base de datos: Haga doble clic en la base de datos que cre, luego en la opcin Tables de clic derecho y elija New Table, coloque el nombre y de OK. Aparecer la siguiente ventana:

Coloque las columnas que desea y el tipo de dato deseado. Con el botn de la llave podr convertir una columna en una llave primaria (Primary Key). Si desea que la base de datos asigne una llave primaria a cada registro automticamente, cree una columna con tipo de dato int y marque la opcin Identity. Si desea que una columna pueda contener datos nulos, seleccione la opcin Allow Nulls en el registro deseado. Finalmente grave sus datos y salga de esa ventana. Para visualizar el diseo de la tabla, de clic derecho en la tabla y elija Design Table. Para visualizar todos los datos contenidos haga lo mismo pero elija Open Table/Return All Rows.

Se habr dado cuenta que junto con la tabla que cre existen varias tablas con el prefijo sys, estas son tablas del sistema y Ud. no debe modificar ni su diseo ni sus datos amenos que sea DBA (Administrador de Bases de Datos) experimentado.

Como modificar el diseo de la base de datos incluyendo llaves foraneas. Haga clic derecho en la opcin Diagrams y elija New DataBase Diagram, agregue todas las tablas con las que desea trabajar y de Finish. Arrastre las columna de una tabla a otra tabla para crear una llave foranea (deber arrastrar de la tabla donde se encontrar la llave foranea, a la tabla donde se encuentra la llave primaria), las dos columnas que se relacionan debern ser del mismo tipo de datos. Aparecer la siguiente ventana:

Coloque el nombre de la relacin que ha creado, verifique los datos y de OK. Haga las modificaciones que desee, guarde los datos y salga de la ventana.

2. Seguridad
1. Ubicar la base de datos sobre la cual se desea establecer la seguridad, en la opcin Users hacer clic derecho y elegir New Database User , aparecer la siguiente ventana:

Elija la opcin <new>, aparecer la ventana de abajo. Llene los datos correspondientes.

En el tab Server Roles elija el rol del usuario:

Elija el tab Database Access y configure los permisos que el usuario tendr para cada base de datos:

3. Como realizar instrucciones sobre la base de datos


Valla Inicio/Programas y elija la opcin Query Analizer de Microsoft Server SQL 7.0, aparecer la siguiente ventana:

Seleccione el servidor al que se desea conectar, elija la autentificacin por SQL, ingrese sus datos y presione OK. En la siguiente ventana elija la base de datos sobre la cual trabajar.

Instrucciones bsicas
Nota: Las comillas dobles estn puestas solo para resaltar, no deben ponerse en las instrucciones. Seleccin de datos: SELECT Campo1, Campo2 FROM Tabla WHERE Condicion Eliminacin de datos DELETE Tabla WHERE Condicion Insercin de datos INSERT INTO Tabla (Campos a ingresar) VALUES (Valores) Actualizacin de datos UPDATE Tabla SET Campo1=Valor, Campo2 = Valor WHERE Condicion Realizar bsquedas SELECT Campo1, Campo2 FROM Tabla WHERE Campo1 LIKE Valor Condiciones: Puede utilizar cualquier tipo de comparacin (<,>,=,<>). (AND, OR, etc) para obtener condiciones ms especficas.

Utilice operadores

Cuando la equivalencia que desea establecer se refiere a un valor caracter, debe encerrar el valor entre comillas simples. Trabajaremos con la siguiente tabla: Columna Tipo CodProducto Int Descripcion Precio Tipo VARCHAR FLOAT CHAR 1 Longitud 4 255 Significado Cdigo nico del producto Descripcin del producto Precio del producto Indicara de que tipo de producto se trata: V: Verduras L: Lacteos F: Frutas

Ejm3.1 Seleccin de todos los productos que sean Frutas:

SELECT CodProducto, Descripcin, Precio WHERE Tipo = F Ejm3.2 Seleccin de todos los productos que tengan un precio menor a 75 SELECT CodProducto, Descripcin, Precio, Tipo WHERE Precio < 75 Ejm3.3 Seleccin de todos los productos que sean Frutas y cuyo precio sea menor a 75 SELECT CodProducto, Descripcin, Precio WHERE Tipo = F AND Precio <75 Ejm 3.4 Seleccin de todos los productos cuya descripcin empiece con Man SELECT * FROM producto WHERE Descripcion LIKE 'Man%' Notemos que para utilizar la instruccin LIKE, ponemos un % a modo de comodn. Si deseamos buscar todas los productos donde la descripcin no solo empiece con Man sino tambin aquellos que contengan la slaba man, la instruccin sera: SELECT * FROM producto WHERE Descripcion LIKE '%Man%'

Para manejar varias tablas en las instrucciones SELECT Si desea utilizar varias tablas y los nombres de los campos se repiten entre ellas, debera nombrar los campos de la siguiente manera: Tabla1.Campo1, Tabla2, Campo1, etc TIP: Para ahorrar escribir todo el nombre de las tablas puede utilizar un alias, observe la siguiente instruccin: SELECT C.IdeCliente, PC.IdeProducto FROM Cliente C, ProductoCliente PC, Producto MP WHERE C.IdeCliente = PC.IdeCliente AND MP.IdeProducto = PC.IdeProducto AND MP.Precio > 1000 Puede darse cuenta que se ha utilizado C como alias de la tabla Cliente, PC como alias de la tabla ProductoCliente y MP como alias de la tabla Producto.

Ejm 3.5 Insertar datos en la tabla Producto: INSERT INTO Producto (CodProducto,Descripcin,Precio,Tipo) VALUES (1,Manzana,0.54,F) Ejm 3.5 Eliminar todos los productos cuyo Cdigo de Producto sea mayor a 1000 DELETE Producto WHERE CodProducto > 1000 Ejm 3.6 Actualizacin de precio del producto con cdigo 3 UPDATE Producto SET Precio = 1.01 WHERE CodProducto = 3 Ejemplos para realizar clculos matemticos: Trabajaremos con las siguientes tablas: Tabla: Factura Columna NroFactura NroSerie RUC Tipo Int Int Char Longitud 4 4 11 Significado Nmero de la factura Nmero de serie de la factura RUC

Tabla: DetalleFactura Columna Tipo NroFactura Int NroSerie Item CodProducto Cantidad Descripcion Int Int Int Int VARCHAR

Longitud 4 4 4 4 4 255

Significado Nmero de la factura Nmero de serie de la factura Nmero del registro del detalle de la factura Cdigo del producto comprado Cantidad Precio unitario del producto Descripcin

PrecioUnitario FLOAT

Ejm 3.7 Seleccin de todos los detalles de una factura junto con el RUC SELECT F.RUC, D.NroFactura, D.NroSerie, D.Item, D.CodProducto, D.Cantidad, D.PrecioUnitario FROM Factura F, DetalleFactura D WHERE F.NroSerie = D.NroSerie AND F.NroFactura = D.NroFactura.

Ejm 3.8 Seleccin de todos los detalles de la factura junto con el subtotal: SELECT F.RUC, D.NroFactura, D.NroSerie, D.Item, D.CodProducto, D.Cantidad, D.PrecioUnitario, D.PrecioUnitario*D.Cantidad AS Subtotal FROM Factura F, DetalleFactura D WHERE F.NroSerie = D.NroSerie AND F.NroFactura = D.NroFactura. Note que para obtener el subtotal de un registro del detalle de la factura, podemos multiplicar el campo PrecioUnitario por el campo Cantidad y nombrar a este nuevo valor como Subtotal. Es decir, la palabra Subtotal es un Alias. Ejm 3.9 Seleccin del total de una factura: SELECT F.NroFactura, F.NroSerie, SUM(D.PrecioUnitario*D.Cantidad) AS Total FROM FROM Factura F, DetalleFactura D WHERE F.NroSerie = D.NroSerie AND F.NroFactura = D.NroFactura GROUP BY F.NroFactura, F.NroSerie Para sumar varios registros podemos utilizamos las funcin SUM. Supongamos que la factura tiene 10 registros y nosotros no necesitamos los 10 registros sino el total de la factura. Para ello utilizamos la funcin SUM, y para decirle a la base de datos que sume todos los registros de una misma factura, agrupamos los datos por factura con la instruccin : GROUP BY. Seguido de esta instruccin, deberemos poner los campos por los cuales deseamos agrupar, como mnimo deberemos tener todos los campos que hemos seleccionado (sin considerar las sumas). Conversin de datos Ejm 3.10 Conversin de datos mediante la funcin CAST Supongamos que necesitamos una cadena que contenga el nmero de serie de la factura y el nmero de la factura de alguna bsqueda. Para ello deberamos convertir los datos numricos a caracteres y luego concatenarlos. SELECT RUC, CAST(NroFactura AS VARCHAR(10)) + CAST(NroSerie AS VARCHAR(10)) AS Cadena FROM Factura. Con la funcin CAST podemos realizar conversiones de datos (No todas las conversiones son posibles, existen tipos de datos incompatibles). En el ejemplo estamos convirtiendo los datos de tipo INTEGER a VARCHAR(10). Una vez que los datos son convertidos, pueden ser concatenados simplemente sumndolos. A la cadena le hemos puesto el alias Cadena.

Ejm 3.11 Conversin de datos mediante la funcin CONVERT Tambin podemos utilizar la funcin CONVERT SELECT RUC, CONVERT(VARCHAR(10),NroFactura) CONVERT(VARCHAR(10),NroSerie) AS Cadena FROM Factura. Ejm 3.12 Verificacin de dato nulo Podemos verificar si un dato es nulo con la sentencia ISNULL. Esta funcin verificar un dato, y si este es nulo retornar el valor que deseemos, sino retornar el dato. SELECT ISNULL(Descripcin,No existe descripcin) FROM DetalleFactura Esta sentencia regresar el campo descripcin siempre y cuando no sea nulo, de lo contrario devolver la cadena No existe descripcin. Ejm 3.13 Condiciones en las sentencias Si queremos manejar condiciones como IF THEN ELSE podemos utilizar funciones como las que se encuentran en el ejemplo: SELECT (CASE WHEN Cantidad > 100 THEN Mucho ELSE Poco END) FROM DetalleFactura Esta sentencia verifica si el campo Cantidad es mayor de 100 y devuelve la cadena Mucho, de lo contrario devuelve Poco. Ejm 3.14 Utilizando varias condiciones SELECT (CASE Tipo WHEN 'L' THEN 'Lacteos' WHEN 'V' THEN 'Verduras' WHEN 'F' THEN 'Frutas' ELSE 'No reconocido' END) FROM Producto Esta sentencia devuelve una cadena con el significado del tipo de producto de la tabla Producto. Si no encuentra ninguno de los 3 tipos especificados, devolver la cadena No reconocido. Note la diferencia con la sintaxis del Ejm 3.13, en este caso, luego de la palabra CASE se ha colocado el campo y no luego de la palabra WHEN como en el ejemplo anterior. +

Ejm 3.15 Contar nmero de registros Para contar registros utilizamos la funcin COUNT(*) SELECT NroSerie, DF.NroFactura, COUNT(*) AS Nro_Items, SUM(Cantidad*PrecioUnitario) FROM DetalleFactura DF, Factura F WHERE F.NroSerie = DF.NroSerie AND F.NroFactura = DF.NroFactura GROUP BY F.NroSerie, DF.NroFactura Esta funcin devuelve el total de la factura junto con el nmero de registros encontrados en el DetalleFactura.

Operadores Lgicos Operator ALL AND ANY BETWEEN EXISTS IN LIKE NOT OR SOME Meaning TRUE if all of a set of comparisons are TRUE. TRUE if both Boolean expressions are TRUE. TRUE if any one of a set of comparisons are TRUE. TRUE if the operand is within a range. TRUE if a subquery contains any rows. TRUE if the operand is equal to one of a list of expressions. TRUE if the operand matches a pattern. Reverses the value of any other Boolean operator. TRUE if either Boolean expression is TRUE. TRUE if some of a set of comparisons are TRUE.

Anda mungkin juga menyukai