Professional Documents
Culture Documents
GUIA DE LABORATORIO N 3 Nombre de la practica: Introduccin a Transact SQL en SQL Server 2008 Lugar de ejecucin: Laboratorio de Informtica Tiempo estimado: 3 horas Materia: Base de datos I Docentes: Ing. Ren Tejada , Inga. Blanca Iris Caas , Inga. Evelyn Hernndez
CICLO 01-2012
I. Objetivos Qu el estudiante: Clasifique los tipos de datos utilizados en los campos/fields de una tabla Seleccione los campos adecuados para los diferentes datos contenidos en una tabla/table. Se familiarice con las sentencias bsicas de comandos dentro del entorno de Transact SQL II. Introduccin Terica
Sentencias LCD: GRANT DENY REVOKE Lenguaje de Manipulacin de Datos (LMD) Las sentencias LMD trabajan con los datos en la base de datos. Estas sentencias se utilizan para insertar, modificar, eliminar y recuperar los datos. Sentencias LMD: INSERT 2
UPDATE DELETE SELECT Creacin de la Base de Datos. El comando CREATE DATABASE ejecuta la creacin de una base de datos. Sintaxis: CREATE DATABASE database_name [ON [PRIMARY] [<filespec> [,...n] [ , <filegroup> [ ,...n ] ] [LOG ON {<filespec> [ ,...n ] } ] ] [COLLATE collation_name] [WITH <external_access_option> ] ] [;]
Ejemplo: CREATE DATABASE bd_prueba; Eliminar una base de datos. Este comando quita una o ms bases de datos de Microsoft SQL SERVER. Al quitar una base de datos, se elimina la base de datos y los archivos de disco que utiliza. Sintaxis: DROP DATABASE {database_name | database_snapshot_name } [ ,...n ] [;] DROP DATABASE bd_prueba; Base de datos en uso. El comando para poner en uso una base de datos es: USE {database}
Creacin de una Tabla. El comando CREATE TABLE tiene por finalidad crear una nueva tabla en la base de datos. La Sintaxis general: Create table table_name (definicin de columnas); Ejemplo: CREATE TABLE demo ( cod_sucursal INT, nombre VARCHAR (20), estado VARCHAR (2) ); Modificando tablas. El comando ALTER TABLE, permite modificar una definicin de tabla al alterar, agregar o quitar columnas y restricciones, o deshabilitar o habilitar restricciones y desencadenadores. Sintaxis. 3
ALTER TABLE nombre_de_la_tabla ADD nombre_de_columna_a_agregar TIPO DE DATO Ejemplo: El ejemplo siguiente agrega una columna que permite valores NULL y a la que no se han proporcionado valores mediante una definicin DEFAULT. Cada fila tendr un valor NULL en la nueva columna. ALTER TABLE alumno ADD telefono VARCHAR(8) NULL
Insertando datos en una Tabla El comando INSERT inserta una nueva fila en la tabla, al llenar las columnas con valores especficos. La sintaxis general de la sentencia INSERT es la siguiente: INSERT [INTO] table_or_view [(column_list)] data_values A continuacin se muestra ejemplos del uso de la sentencia INSERT. Los datos que se agregarn corresponden a la tabla demo. INSERT INTO demo VALUES (01,first record, FL); INSERT INTO demo VALUES (02,second record,WA); Verifique el resultado de las consultas anteriores con una sentencia SELECT sencilla: SELECT * FROM demo Eliminacin de registros. El comando DELETE elimina filas de una tabla o vista, que satisfagan una condicin especfica. Sintaxis Bsica: DELETE FROM table_name WHERE condicin. Ejemplo: Utilice INSERT para insertar una fila a la tabla demo, verifique que ha sido insertada correctamente la nueva fila, despus utilice DELETE para quitarla. Este ejemplo combina lo que visto anteriormente. INSERT INTO demo VALUES (03,secondrecord,MA); Con la siguiente consulta se eliminarn los registros de la tabla demo, que tengan como criterio el campo cdigo de sucursal igual a 03: DELETE FROM demo WHERE cod_sucursal = 03; Si no se incluye la clusula WHERE, se eliminarn todas las filas en la tabla indicada. Modificando registros ya existentes en una tabla: Comando UPDATE Este comando permite la actualizacin de uno o ms campos de una fila o grupo de filas de una tabla o vista. Las sentencias UPDATE se utilizan para modificar datos existentes. Sintaxis general: UPDATE nombre_tabla | nombre_vista SET (nombre_columna = expresion | DEFAULT | NULL) WHERE (condicin) Set: especifica la lista de columnas que se actualizarn. Ejemplo: UPDATE demo SET cod_sucursal = 92 WHERE estado= FL;
Comando DROP TABLE Para eliminar una tabla de la base de datos, debe usarse el comando DROP TABLE. Este comando suprime fsicamente la tabla de la base de datos, eliminando su estructura y sus datos. Sintaxis Bsica: DROP TABLE nombre_de_la_tabla; El siguiente ejemplo elimina la tabla demo de la base de datos actual: DROP TABLE demo La instruccin SELECT La instruccin SELECT y las estructuras utilizadas en ella forman la base de todos los comandos que vamos a ejecutar con SQL Server. Vamos a examinar las reglas bsicas de la sintaxis de una instruccin SELECT: SELECT <lista de columnas> [FROM <tabla(s) de origen >] [WHERE <condicin restrictiva >] [GROUP BY <nombre de columna o expresin que utiliza una columna en la lista de Seleccin>] [HAVING <condicin restrictiva basadas en los resultados de GROUP BY>] [ORDER BY <listas de columna> ] [ [FOR XML {RAW|AUTO|EXPLICIT|PATH [ (<elemento>) ] } [ , XMLDATA] [ , ELEMENTS] [ , BINARY base 64 ] ] *OPTION (<sugerencia de consulta>, *, n) + Esto es mucho para descifrarlo todo a la vez; es mejor que vayamos por partes: La instruccin SELECT y la clusula FROM: El verbo (en este caso la instruccin SELECT) es la parte de la instruccin global que le indica a SQL Server lo que estamos haciendo. SELECT indica que simplemente estamos leyendo informacin, en lugar de estarla modificndola. Lo que estamos seleccionando se identifica mediante una expresin o lista de columnas que sigue inmediatamente a SELECT (podr ver enseguida lo que queremos decir). A continuacin aadimos ms especificaciones, como desde dnde vamos a obtener estos datos. La instruccin FROM especifica el nombre de la tabla o tablas desde donde vamos a obtener nuestros datos. Con todo ello, ya tenemos suficiente para crear una instruccin SELECT. Abra SQL Server Management Studio y vamos a examinar la instruccin SELECT. INSTRUCCION SELECT Ejemplo 1 USE Northwind SELECT * FROM Employees Vamos a examinar lo que hemos pedido aqu: Primero: la instruccin USE Northwind, sirve para habilitar la base de datos que queremos usar. Segundo: Hemos pedido seleccionar informacin (SELECT puede pensar en ello como en pedir que se muestra la informacin). El asterisco * podra parecer algo extrao, pero realmente funciona igual que en cualquier otro sitio: es un comodn. Cuando escribimos SELECT * estamos indicando que deseamos seleccionar todas las columnas de la tabla (En este caso la tabla Employees). A continuacin, FROM indica que hemos terminado de especificar los elementos que deseamos ver y estamos a punto de indicar el origen de la informacin (El origen es la tabla Employees). Ejemplo 2 SELECT * FROM INFORMATION_SCHEMA.TABLES
INFORMATION_SCHEMA.TABLES: es una ruta de acceso especial que se utiliza para mostrar meta-datos sobre las bases de datos de nuestro sistema y su contenido, tambin tiene diversos elementos que se pueden especificar tras un punto, como: INFORMATION_SCHEMA.SCHEMATA o INFORMATION_SCHEMA.VIEWS. Estas rutas de acceso especiales a los meta-datos de nuestro sistema han sido colocados ah para que no tengamos que utilizar las denominadas tablas del sistema. Analicemos como funciona Vamos a examinar algunos elementos especficos de nuestra instruccin SELECT. Observe que hemos escrito en maysculas SELECT y FROM. En realidad no es un requerimiento de SQL Server (podramos haber ejecutado estas instrucciones como sElECt y frOM y hubieran funcionado muy bien). Simplemente las hemos escrito en maysculas por convencin y legibilidad. Descubrir que muchos codificadores de SQL utilizarn la convencin de escribir en maysculas todos los comandos y palabras clave, mientras utilizan una combinacin de maysculas y minsculas para nombres de tablas, columnas y nombres de variables no constantes. Los estndares que elija o est obligado a utilizar pueden variar, pero al menos debe seguir una regla: ser consistente. SELECT le est indicando a la ventana de consultas lo que estamos haciendo y * le est indicando lo que deseamos (recuerde que * es igual a todas las columnas). A continuacin est FROM. Una clusula FROM define el lugar desde donde deben provenir nuestros datos. Inmediatamente a continuacin de FROM, estn los nombres de una o ms tablas. En nuestra consulta en concreto, todos los datos provienen de la tabla denominada EMPLOYEES y en el segundo ejemplo de la tabla INFORMATION_SCHEMA.TABLES. Ejemplo 3 Ahora vamos a probar a obtener alguna informacin ms especfica. Supongamos que deseamos una lista de todos nuestros clientes ordenados por apellido: USE AdventureWorks SELECT Lastname FROM Person.Contact Los resultados de esta consulta sern los apellidos de los clientes: LastName Achong Abel Abercrombie Acevedo . . Hu Ejemplo 4 Hoy vamos a obtener una consulta ms personalizada de los clientes: SELECT FirstName, Lastname, EmailAddress FROM Person.Contact Por favor, escriba los primeros 2 resultados de la consulta: LA CLAUSULA WHERE Esta clusula nos permite colocar condiciones sobre los resultados deseados. Los ejemplos que hemos visto hasta el momento son consultas SELECT sin restricciones en el sentido de que se han incluido en el resultado todas las filas de la tabla especificada. Las consultas sin restricciones son muy tiles para rellenar cuadros de lista y cuadros combinados y en otros escenarios en los que intentamos proporcionar un listado de dominio.
Ejemplo 5 Ahora vamos a buscar informacin ms especfica de la tabla Person.Address de la base de datos AdventureWorks: SELECT City, AddressLine1, PostalCode FROM Person.Address WHERE StateProvinceID = 74
IV. Procedimiento
Parte 1: Iniciando sesin desde SQL Server Managment Studio 1. Hacer clic en el botn Inicio 2. Hacer clic en la opcin Todos los programas y hacer clic en Microsoft SQL Server 2008 R2 3. Cargue SQL Server 2008 R2. Para conectarse con el servidor de base de datos elija los siguientes parmetros de autenticacin: Tipo de servidor: Database Engine Nombre del servidor: SALA02-PCNumMaquina Nota: NumMaquina es el numero de maquina local Autenticacin: SQL Server Authentication Login: sa Password: 123456 4. Luego de clic en el botn conectar y as ingresar a la ventana del SQL Server Managment Studio. 5. Luego seleccionara del men estndar la opcin (Nueva Consulta/New Query) para empezar a trabajar con las sentencia de T-SQL. 6. Localice el icono de guardar, con el fin de guardar el nuevo archivo de sentencias T-SQL (SQLQuery1.sql). En el asistente para guardar archivo, cree una carpeta llamada Practica3_BDD en el escritorio (ah se ira guardando todos los scripts del procedimiento restante).
Parte 2: Creacin de BDD y tablas con T-SQL 7. A continuacin creara una Base de datos con el siguiente nombre: SUCARNET_PRACTICA3, gracias a la sentencia create database, as: create database SUCARNET_PRACTICA3 Nota: reemplace SUCARNET por su carnet de la UDB.
8. Si el motor a logrado ejecutar la creacin de la BDD, recibir un mensaje de : command(s) completed successfully
9. Para continuar, apyese en la documentacin de la introduccin terica de esta practica para redactar as, los comandos T-SQL que permitan realizar las acciones (de los pasos restantes del procedimiento) sobre la Base de datos. 10. Indique al servidor que har uso de su Base de datos. 11. Con el cursor, seleccione el comando redactado en el paso anterior, luego localice y presione el botn Execute>. Se vera sombreado color verde a la izquierda de esta lnea, confirmando que el comando seleccionado se ejecuto correctamente y los resultados en la parte inferior. 12. Redacte el comando para crear una Tabla llamada ESTUDIANTES (dentro de la BDD en uso), cuyo diccionario de datos se muestra a continuacin. Diccionario de Datos. Nombre de la Tabla: ESTUDIANTES
13. Para confirmar si la tabla existe, ejecute el comando: Sp_help estudiantes; EJERCICIO 1 14. De manera similar, ahora redacte y ejecute los comandos para crear las tablas siguientes: * Dado los siguientes diccionarios de datos, crear las tablas con lenguaje SQL en la misma base de datos:
Parte 3: Insercin de datos (registros) en tablas 15. Ahora se agregarn registros a las tablas anteriores. A continuacin se muestran los datos que adicionara a la tabla ESTUDIANTES. Tabla: estudiantes
16. Ejecute una instruccin select * from ESTUDIANTES; para verificar que la informacin (registros) fueron insertados correctamente en la tabla estudiantes. 17. De igual forma, inserte los registros de las tablas restantes, descritos a continuacin. Confirme que los datos se agregaron apropiadamente a los objetos. Tabla: materias
Tabla: notas
Parte 4: Modificacin y Eliminacin de registros de las tablas 19. Redacte el comando delete a continuacin, el cual permitir eliminar los registros de la tabla NOTAS, cuyo campo IdMateria sea igual a 103: DELETE FROM NOTAS WHERE IdMateria = 103 20. Ahora redacte el comando update con estos parmetros, para as modificar los registros de la tabla NOTAS para el IdEstudiante = 1 y IdMateria = 101. La nota ser modificada de 5.6 a 9.0 UPDATE NOTAS SET Nota=9.0 WHERE IdEstudiante =1 AND IdMateria=101
PROBLEMAS COMPLEMENTARIOS 1. Cree un nuevo archivo de registros de comandos (.sql), el (consultasdeSUCARNET.sql) 2. Redacte la secuencia de comandos que resuelva las siguientes solicitudes: cual se llamara
A.
Tabla Materias:
B. Escriba una consulta para verificar la informacin insertada C. Eliminar los registros 106 y 107 de la tabla materia D. Actualizar Notas de Estudiantes; el IdMateria = 102 a 9.0 E. Escriba una consulta que devuelva el ID de producto, nombre, el nmero de producto de un producto, donde el ID de producto sea igual a 356, de la tabla Production.Product de la base de datos AdventureWorks.
V. Anlisis de resultados Indicaciones: Lea y conteste correctamente a los siguientes interrogantes: Nota: Se le pide que verifique en el explorador de objetos del Management Studio, si se encuentran las siguientes bases: AdventureWorks, Northwind, Pubs, Library y Join. 10
1. Las siguientes sentencias SQL devuelven el mismo resultado si /no. Cualquiera que fuera su respuesta explique!! a. USE Adventure Works; GO SELECT * FROM Production. Product ORDER BY Name ASC; b. USE AdventureWorks; GO SELECT p.* FROM Production.Product p ORDER BY Name ASC ; GO
2. Explique con sus palabras que es lo que hace el siguiente script USE AdventureWorks; GO SELECT Name, ProductNumber, ListPrice AS Price FROM Production.Product ORDER BY Name ASC; GO 3. Explique con sus palabras que es lo que hace el siguiente script USE AdventureWorks; GO SELECT Name, ProductNumber, ListPrice AS Price FROM Production.Product WHERE ProductLine = 'R' AND DaysToManufacture < 4 ORDER BY Name ASC; GO
VI. Referencia Bibliogrfica Microsoft SQL Server 2008, Gua Prctica, Francisco Charte Ojeda; Anaya Multimedia.
11