17
Sistema de Gestión de la Calidad Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la Información FORMACIÓN POR COMPETENCIAS LABORALES PROGRAMACIÓN DE SOFTWARE EJE DE FORMACIÓN: BASE DE DATOS Fecha: Mayo de 2010 Código: Página 1 de 17 Regional Distrito Capital Sistema de Gestión de la Calidad EJE DE FORMACIÓN: BASE DE DATOS SU NOMBRE Y APELLIDO FORMACIÓN POR COMPETENCIAS LABORALES Centro Gestión De Mercados, Logística y Tecnologías de la Información SERVICIO NACIONAL DE APRENDIZAJE - SENA Bogotá D. C., Fecha

Guia N°5 Transact-Sql

Embed Size (px)

Citation preview

Page 1: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 1 de 17

Regional Distrito Capital

Sistema de Gestión de la Calidad

EJE DE FORMACIÓN: BASE DE DATOS

SU NOMBRE Y APELLIDO

FORMACIÓN POR COMPETENCIAS LABORALES Centro Gestión De Mercados, Logística y Tecnologías de la Información

SERVICIO NACIONAL DE APRENDIZAJE - SENA

Bogotá D. C., Fecha

Page 2: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 2 de 17

Resultados de Aprendizaje:

220501032 04 Interpretar el diagrama relacional para identificar el modelo de datos. Interpretar un Modelo Relacional de acuerdo con un diseño definido según el proyecto de formación De Desempeño:

Se interesa por el tema participando activamente y a consciencia.

Investiga y apropia el lenguaje Transact Sql.

Permite el trabajo colaborativo contribuyendo, en lo pertinente, si sus compañeros lo requieren.

De Producto:

Entrega la evidencia resultante de la investigación, siguiendo los parámetros establecidos por el instructor.

De Conocimiento:

Responde claramente y sin confusiones, a preguntas sobre los conceptos de la terminología propia para bases de datos.

Analiza y representa correctamente la fase Física del diseño de base de datos.

Evidencia de aprendizaje a entregar:

1. Realice la lectura del presente documento acerca de los comandos DDL y DML de Transact-Sql y apóyese de los documentos de consultas que acompañan esta guía de aprendizaje.

2. Instale la base de datos AdventureWorksDB y agréguela a SQL server por medio del Administrador de MS SQL server Express.

3. Realice los siguientes ejercicios propuestos utilizando el Editor de Consultas del motor Sql

server y pegue cada sentencia debajo de cada enunciado junto con el pantallazo de la consulta.

/* Funciones de agrupamiento de Registros*/

Calcular el promedio de horas de vacaciones listardo en una columna que se llame promedio vacaciones y la suma de horas de baja por enfermedad listadas en una columna llamada Total horas incapacidad que han utilizado los vicepresidentes de la tabla HumanResources.Employee.

SELECT AVG(VacationHours)as 'promedio de vacaciones',

SUM(SickLeaveHours) as 'Total horas incapacidad'

FROM HumanResources.Employee

WHERE Title LIKE 'Vice President%'

Page 3: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 3 de 17

Listar el precio de venta promedio de los productos que estan en la tabla Production.Product.

Seleccionar la cantidad de cargos (title) diferentes que puede tener un empleado que trabaja en Adventure Works de la tabla HumanResources.Employee.

Seleccione el número total de empleados que trabajan en Adventure Works Cycles.

Seleccione la cantidad de Vendedores y el promedio de prima(bonus) de todas los vendedores cuya cuota de venta sea superior de 25000

seleccione el color, el cálculo de la suma de la lista de precios y el calculo de precio estándar de los productos que estan en la tabla Production.Product y agrupelos y ordenelos por color.

seleccione la tasa de impuestos más baja (mínima) que esta en la tabla Sales.SalesTaxRate.

seleccione la lista de precios mas alta (maxima ) que esta en la tabla Production.Product

/* Operadores de Comparacion*/

seleccione el numero de contacto, nombre y apellidos de todos los contactos que están entre el numero de contacto 1 y 4

select ContactID,FirstName,LastName

from Person.Contact

where ContactID between 1 and 4

seleccione todos los contactos cuyo nombre comienza por la letra C

Page 4: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 4 de 17

select ContactID,FirstName,LastName

from Person.Contact

where FirstName Like 'C%'

seleccione el codigo del producto, nombre de producto y costo estandar de todos los productos que comiencen por A ó F

seleccione el codigo del producto, nombre de producto y costo estandar de todos los productos que comiencen por cualquier letra comprendida entre la M y la S

seleccione el codigo del producto, nombre de producto y costo estandar de todos los productos que comiencen por A y la segunda letra no sea una B

Seleccione todos los números de teléfono de la tabla Contact cuyo código de área comience por 415 y ordenelos por Apellido.

seleccione todos los números de teléfono de la tabla Contact cuyos códigos de área no sean 415 y su nombre sea igual a Gail y orden de forma ascendente por apellido.

buscar todos los contactos en la tabla Contacts cuyo nombre comience por sea Cheryl o Sheryl.

seleccione el codigo y nombre de los productos que se encuentran en la tabla Productos donde ProductID menor o igual 12

seleccione el codigo y nombre de los productos que se encuentran en la tabla Productos donde ProductID igual 2 o a 4 o su tenga por nombre de producto Spokes

seleccione el codigo, color y nombre de los productos que se encuentran en la tabla Productos donde su nombre contenga la palabra Frame y comience por HL y su color sea rojo.

SELECT ProductID, Name, Color

FROM Production.Product

WHERE Name LIKE ('%Frame%')

AND Name LIKE ('HL%')

seleccione el codigo , color y nombre de los productos que se encuentran en la tabla Productos donde el nombre sea Blade, Crown y Spokes

seleccione el codigo, color y nombre de los productos que se encuentran en la tabla Productos donde el codigo del producto este entre 725 y 734

/* Manipulacion de Datos*/

Como en estos ejercicios vamos a modificar los valores almacenados en la base de datos, es conveniente guardar antes una copia de las tablas, en los cuatro primeros ejercicios crearemos una copia de los datos almacenados para luego poder recuperar los valores originales.

Page 5: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 5 de 17

Crear una tabla (llamarla NuevaEmpleados) que contenga las filas de la tabla HumanResources.Employee.

select *

into nuevaempleados

from HumanResources.Employee

Crear una tabla (llamarla NuevaDepartamentos) que contenga las filas de la tabla oficinas.

select *

into NuevaDepartamentos

from Department

Crear una tabla (llamarla nuevaproductos) que contenga las filas de la tabla productos.

Crear una tabla (llamarla nuevaVentas) que contenga las filas de la tabla Sales.SalesOrderDetail.

Actualice el costo estandar de todos los productos que sus codigos esten entre 1 y 4

Realice primero una selección de los datos y luego cree la sentencia de actualización para que observe los cambios.

Select ProductID , Name ,StandardCost

from Production.Product

where ProductID between 1 and 4

update Production.Product

set StandardCost = 1200

where ProductID between 1 and 4

Select ProductID , Name ,StandardCost

from Production.Product

where ProductID between 1 and 4

Obtener una lista de todos los productos indicando para cada uno su código, nombre descripción, precio y precio con I.V.A. incluido (es el precio anterior aumentado en un 16%).

Select ProductID as 'Numero del producto' , Name as 'Nombre

Producto',StandardCost as 'Costo Estandar',(StandardCost*0.16)+StandardCost

as 'Valor Iva'

from Production.Product

Elimine todos los empleados cuyo titulo es Production Technician - WC50 de la tabla NuevaEmpleados

Page 6: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 6 de 17

delete from nuevaempleados

where Title

Elimine los productos cuyo color sea blanco de la tabla NuevaProductos

Actualice la cantidad ordenada a 10 de los productos vendidos en la tabla NuevaVentas cuyo cantidad Ordenada sea igual a 1 y el numero de Orden de ventas sea 43659

Actualice el tamaño de los productos a XS cuyo ReorderPoint este entre 273 y 280

4. Utilizando el enunciado del miniproyecto correspondiente y su proyecto de Grado que ya

deben estar en la fase de diseño físico en MS SQL SERVER 2005 Realice los ejercicios correspondientes utilizando los comandos de DML aprendidos.

Inserte valores coherentes en cada uno de las tablas de ambos proyectos

Actualice, Seleccione y Borre datos de cada tabla.

Prerrequisitos

Utiliza adecuadamente los recursos del aula.

Organiza el tiempo para establecer los puntos de investigación.

Entiende los parámetros requeridos para la entrega de la evidencia.

Forma de entrega El desarrollo de esta guía tiene un tiempo máximo de 6 horas clase, elabore un nuevo documento con cada uno de los puntos que están en la parte de Evidencia de aprendizaje a entregar. Recuerden que el documento debe contener la portada del Sena con su nombre completo y el grupo y jornada que pertenece y demás datos. Tenga en cuenta las normas Icontec. Envié la evidencia al correo del instructor, según las indicaciones del mismo.

Fecha Limite de envió: Domingo 16 de Mayo de 2010

Orientación de las estrategias para desarrollar las actividades de enseñanza aprendizaje evaluación : (acompañamiento al aprendiz/ trabajo autónomo) Investigue Organice su tiempo para lograr la investigación y la estructuración del informe requerido.

Evaluación del aprendizaje: El instructor induce el aprendizaje mediante la socialización y análisis del tema. El aprendiz atiende, consulta según su análisis y participa activamente en el transcurso del

Page 7: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 7 de 17

desarrollo de la actividad de Enseñanza Aprendizaje Evaluación. Se evalúa la presentación, la pertinencia en el desarrollo del tema, la eficacia en la entrega y la adecuada utilización de los recursos del aula. El aprendiz presenta evaluación escrita según la fecha y hora acordada.

El lenguaje Transact-SQL

El principal objetivo de una base de datos de Microsoft® SQL Server™ 2005 es almacenar datos y, posteriormente, poner esos datos a disposición de las aplicaciones y usuarios autorizados. Mientras que los administradores de base de datos crean y mantienen las bases de datos, los usuarios trabajan con el contenido de las mismas al:

Tener acceso o recuperar los datos existentes.

Cambiar o actualizar los datos existentes.

Agregar o insertar nuevos datos.

Eliminar los datos existentes.

El acceso y modificación de datos en Microsoft SQL Server se realiza mediante la utilización de una aplicación o herramienta para enviar peticiones de recuperación y modificación de datos a SQL Server. Por ejemplo, puede conectarse a SQL Server con el Administrador corporativo de SQL Server, el Analizador de consultas SQL o la herramienta osql para empezar a trabajar con los datos de SQL Server. Se necesita entonces de un lenguaje que permita, además de crear objetos de datos, realizar consultas a la información almacenada. En los gestores relacionales el lenguaje más comúnmente empleado es el SQL, estandarizado por ANSI (American Nacional Standard Institute). SQL Server 2005 utiliza un dialecto de SQL denominado Transact-SQL. Consultas El término que se utiliza con más frecuencia es la palabra consulta (Query). Esta palabra hace referencia a cualquier expresión en los dialectos SQL que defina una operación a realizar con los datos del SMBD. Una consulta está compuesta por los siguientes elementos:

Una acción o verbo: determina la operación a realizar. Ej: SELECT, INSERT o UPDATE Un objeto: Usualmente será una combinación de campos de las tablas de la base de datos Una cláusula: determina sobre qué objetos actúa el verbo, como por ejemplo FROM

nombretabla, WHERE criterio de campo Las peticiones de datos se expresan en SQL mediante sentencias. Estas sentencias podrán ser escritas por usuarios finales directamente en la pantalla en un terminal interactivo o incluidas en programas escritos en otros lenguajes de programación. Las tareas que pueden efectuarse con este lenguaje se pueden clasificar en las siguientes, al tiempo subconjuntos del propio lenguaje:

Definición de Datos (Data Definition Lenguaje, DDL) Manipulación de Datos (Data Manipulation Lenguaje, DML)

Page 8: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 8 de 17

Control de Datos (Data Control Lenguaje, DCL) Procesado de Transacciones (Transaction Processing Lenguaje, TPL) Control de cursores (Cursor Control Lenguaje, CCL)

DDL(Data Definition Language), es el encargado de la definición de Bases de Datos, tablas, vistas

e índices entre otros.

El lenguaje de definición de datos le va a permitir llevar a cabo las siguientes acciones:

Creación de tablas, índices y vistas.

Modificación de las estructura de tablas, índices y vistas.

Supresión de tablas, índices y vistas.

Son comandos propios de este lenguaje:

COMANDOS DESCRIPCIÓN

CREATE DATABASE Crea una nueva base de datos y el archivo usado para almacenarla.

CREATE TABLE Crea una nueva tabla.

ALTER TABLE Modifica la definición de una tabla alterando, agregando o eliminando columnas y restricciones.

CREATE INDEX Crea un índice en una tabla determinada.

DROP INDEX Quita uno o varios índices de la base de datos actual.

DROP TABLE Quita la definición de una tabla y todos sus datos, índices y restricciones.

CREATE VIEW Crea una vista de una instrucción archivada de SQL no contiene datos. Se puede formar a partir de tablas, pero también de otras vistas.

Palabras Clave

Las palabras clave son identificadoras con un significado especial para SQL, por lo que no pueden ser

utilizadas para otro propósito distinto al que han sido pensadas.

SQL dispone de muy pocas órdenes, pero de multiples pálabras clave, lo que le convierten en un

lenguaje sencillo pero tremendamente potente para llevar a cabo su función.

Palabras Clave

ALL AND ANY ASC

AVG BEGIN BY CHAR

CHECK CLOSE COUNT COMMIT

CREATE CURSOR DECIMAL DECLARE

DELETE DESC DISTINCT DEFAULT

EXISTS FETCH FLOAT FOR

FROM GRANT GROUP HAVING

IN INDEX INSERT INTEGER

INTO LIKE MAX MIN

NOT NUMERIC ON OPEN

Page 9: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 9 de 17

OR ORDER REVOKE ROLLBACK

SELECT SET SUM TABLE

UNION UNIQUE UPDATE USER

VALUES VIEW WHERE WITH

Creación de Base de Datos y sus respectivas tablas

En el modelo relacional la información de una base de datos se almacena en tablas.

La sintaxis de la sentencia es la siguiente:

create database <nombre_BD>

Sintaxis para la creación de tablas :

create table <nombre_tabla1>

(

<nombre_campo1> <tipo_dato(tamaño)> [restriccion],

<nombre_campo2> <tipo_dato(tamaño)> [restriccion],

<nombre_campo3> <tipo_dato(tamaño)> [restriccion],

<nombre_campo4> <tipo_dato(tamaño)> [restriccion]

)

Las Restricciones: Las restricciones de los datos se imponen para asegurarnos que los datos cumplen con una serie de condiciones predefinidas para cada tabla. Estas restricciones ayudan a conseguir la integridad de referencia: todas las referencias dentro de una BD son válidas y todas las restricciones se han cumplido. Las restricciones se van a definir acompañadas por un nombre, lo que permitirá activarlas o desactivarlas según sea el caso; o también mezcladas en la definiciones de las columnas de la tabla. A continuación vamos a describir cada una de las restricciones mencionadas.

NOT NULL Establece la obligatoriedad de que esta columna tenga un valor no nulo. Se debe especificar junto a la columna a la que afecta. Los valores nulos no ocupan espacio, y son distintos a 0 y al espacio en blanco. Hay que tener cuidado con los valores nulos en las operaciones, ya que 1 * NULL es igual a NULL.

UNIQUE Evita valores repetidos en una columna, admitiendo valores nulos. Oracle crea un índice automáticamente cuando se habilita esta restricción y lo borra al deshabilitarse.

DEFAULT Establece un valor por defecto para esa columna, si no se le asigna ninguno.

Page 10: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 10 de 17

CHECK Comprueba que se cumpla una condición determinada al rellenar esa columna. Esta condición sólo debe estar construida con columnas de esta misma tabla.

PRIMARY KEY Establece el conjunto de columnas que forman la clave primaria de esa tabla. Se comporta como única y obligatoria sin necesidad de explicitarlo. Sólo puede existir una clave primaria por tabla. Puede ser referenciada como clave ajena por otras tablas. Crea un índice automáticamente cuando se habilita o se crea esta restricción.

FOREIGN KEY Establece que el contenido de esta columna será uno de los valores contenidos en una columna de otra tabla maestra. Esta columna marcada como clave ajena puede ser NULL. No hay límite en el número de claves ajenas. La clave ajena puede ser otra columna de la misma tabla. Se puede forzar que cuando una fila de la tabla maestra sea borrada, todas las filas de la tabla detalle cuya clave ajena coincida con la clave borrada se borren también. Esto se consigue añadiendo la coletilla ON DELETE CASCADE en la definición de la clave ajena.

create table Plaza_Toros

(

Nombre_PlazaT varchar(37) primary key,

Localidad_PlazaT varchar(30) not null,

Dir_Nomen_PlazaT varchar(30) not null,

barrio_PlazaT varchar(20) not null,

Ciudad_PlazaT varchar(20) not null,

Aforo_PlzaT varchar(20) not null

)

Modificación de tablas Sentencia para definir la llave foránea en una tabla

Sintaxis: alter table <nombre_tabla>

add

constraint fk<nombre_campo>foreign key (<nombre_campo>)

references <nombre_tabla_relacionada> (<nombre_campo> tabla relacionada)

Ejemplo:

alter table Corrida

add

constraint fkNombre_PlazaT foreign key (Nombre_PlazaT )

references Plaza_Toros(Nombre_PlazaT )

Eliminación de tablas.

La instrucción DROP TABLE elimina de forma permanente la tabla y los datos en ella contenida.

Page 11: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 11 de 17

Si intentamos eliminar una tabla que tenga registros relacionados a través de una clave externa la

instrucción DROP TABLE fallará por integridad referencial.

Cuando eliminamos una tabla eliminamos también sus índices.

Sintaxis: drop table <nombre_tabla>

Cada gestor de bases de datos implementa distintas opciones para la instrucción CREATE TABLE, pudiendo especificarse gran cantidad de parámetros y pudiendo variar el nombre que damos a los

tipos de datos, pero la sintaxis standart es la que hemos mostrado aquí. Si queremos conocer más acerca de las opciones de CREATE TABLE lo mejor es recurrir a la documentación de nuestro gestor

de base de datos.

DML(Data Manipulation Language), cuya misión es la manipulación de datos. A través de él

podemos seleccionar, insertar, eliminar y actualizar datos. Es la parte que más frecuentemente

utilizaremos, y que con ella se construyen las consultas.

COMANDOS DESCRIPCIÓN

SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.

INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación

UPDATE Utilizado para modificar los valores de los campos y registros Especificados.

DELETE Utilizado para eliminar registros de una tabla de una base de datos.

SELECT.

La sentencia SELECT se utiliza fundamentalmente para realizar consultas sobre un determinado subconjunto de datos de los presentes en una o varias tablas de nuestras bases.

SELECT sobre una sola tabla

SELECT lista de columnas | * FROM tabla [WHERE condición]

Page 12: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 12 de 17

[ORDER BY columna ] lista de columnas es un conjunto de nombres de columnas de tabla, separadas por comas. En caso de especificar * se seleccionan todas las columnas de la tabla.

use AmigosDeLaFiesta

select *

from Torero

where Dni_Torero ='12312'

select *

from Torero

Condición Cuando se comparan dos valores se realizan según las siguientes reglas:

Solo se pueden comparar dos valores cuando son del mismo tipo. Todos los datos de tipo numérico pueden ser comparados unos con otros )por ejemplo un

decimal con un entero) Para comparar dos valores alfanuméricos deben ser de igual longitud. Es permisible la comparación entre un dato temporal y uno alfanumérico. Siempre y

cuando este último este escrito en uno de los formatos de tiempo.

Cláusulas:

Las cláusulas son condiciones de modificación utilizadas para definir los datos que

desea seleccionar o manipular.

Cláusula Descripción

FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros

WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar

GROUP BY

Utilizada para separar los registros seleccionados en grupos específico.

HAVING

Utilizada para expresar la condición que debe satisfacer cada grupo

ORDER BY

Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico

La Cláusula WHERE. Condiciones de Selección. La selección de filas se especifica en la cláusula WHERE mediante predicados. Un predicado expresa una condición y su resultado puede ser verdadero, falso o desconocido. Predicados Simples

Operadores de Comparación: predicados simples que expresan condiciones de comparación entre valores. Se especifican con los signos que se detallan en la siguiente tabla:

Page 13: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 13 de 17

Operadores SQL

Aritméticos + Suma

- Resta

* Producto

/ División

** ^ Exponenciación

Relacionales < Menor que

<= Menor o igual que

> Mayor que

>= Mayor o igual que

<> != Distinto

!< No menor que

!> No mayor que

Lógicos AND Los operadores lógicos permiten comparar expresiones lógicas devolviendo siempre un valor verdadero o falso.

Los operadores lógicos se evalúan de izquierda a derecha.

OR

NOT

Concatenación + Se emplea para unir datos de tipo alfanumérico.

Predicados

Los predicados son condiciones que se indican en cláusula WHERE de una consulta SQL.

La siguiente tabla ilustra los predicados de SQL.

Predicados SQL

BETWEEN...AND Comprueba que al valor esta dentro de un intervalo

LIKE Compara un campo con una cadena alfanumérica. LIKE admite el uso de

caracteres comodines

ALL Señala a todos los elementos de la selección de la consulta

ANY Indica que la condición se cumplirá si la comparación es cierta para al menos

un elemento del conjunto.

EXISTS Devuelve un valor verdadero si el resultado de una subconsulta devuelve

resultados.

IN Comprueba si un campo se encuentra dentro de un determinado rango. El

rango puede ser una sentencia SELECT.

Comparación de caracteres. Predicado LIKE :Cuando se requiere precisar buscar campos

que contengan combinaciones de caracteres que cumplan ciertas condiciones. Para ello se utiliza el predicado LIKE, según el siguiente formato: Columna [NOT] LIKE constante_alfanumerica

Page 14: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 14 de 17

Donde columna (campo) debe ser de tipo alfanumerico.

La constante alfanumerica puede ser caracteres normales, caracteres con significado espacial, caracteres comodines o wildcards. La siguiente tabla presenta los comodines:

% Cadena de longitud Aleatoria

_ Carácter no nulo ( 1 carácter)

[x-y] Carácter en el rango x hasta y

[^x-y] Carácter fuera del rango x hasta y

Ejemplos: Las ciudades que empiecen por S WHERE ciudad LIKE ‘S%’ Las referencias que no tengan un 4 WHERE ciudad LIKE ‘%[^4]%’ Las referencias que no tengan un 4, 5 o 6 WHERE ciudad LIKE ‘%[4-6]%’

Detección de valores nulos: En ocasiones es necesario discriminar las filas en función de si en una de sus celdas existe un valor o no, esto es si dicha celda contiene un valor nulo.

Nombre_campo IS [NOT] NULL

Predicado BETWEEN: Sirve para determinar si un valor está comprendido o no entre otros dos valores, ambos inclusive.

Nombre_campo [NOT] BETWEEN expr1 AND expr2 Predicado IN: Sirve para averiguar si el resultado de una expresión está incluido en la lista de

valores especificados. Nombre_campo [NOT] IN ( Constante1, constante2, ....) Nombre_campo [NOT] IN ( Sunconsulta )

Predicados compuestos Son combinaciones de otros predicados, con los operadores lógicos And, OR y NOT.

Funciones Agregadas

Las funciones agregadas proporcionan a SQL utilidades de cálculo sobre los datos de las tablas.

Estas funciones se incorporan en las consultas SELECT y retornan un único valor al operar sobre un

grupo de registros.

Las funciones agregadas son.

Funciones Agregadas

MAX() Devuelve el valor máximo.

MIN() Devuelve el valor mínimo.

SUM() Devuelve el valor de la suma de los valores del campo.

COUNT() Devuelve el número de filas que cumplen la condición

AVG() Devuelve el promedia de los valores del campo

INSERT INTO

Page 15: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 15 de 17

Agrega un registro en una tabla. Se la conoce como una consulta de datos añadidos. Esta consulta puede ser de dos tipo: Insertar un único registro ó Insertar en una tabla los registros contenidos en otra tabla. Sintaxis: INSERT INTO Tabla (campo1, campo2, .., campoN) VALUES (valor1, valor2, ..., valorN) Esta consulta graba en el campo1 el valor1, en el campo2 y valor2 y así sucesivamente. Hay que prestar especial atención a acotar entre comillas simples (') los valores literales (cadenas de caracteres) y las fechas indicarlas en formato mm-dd-aa y entre caracteres de almohadillas (#). insert into torero (dni_torero, nombre_torero, apellido_torero,

fecha_alternativa_tor, dni_padrino, apodo_torero)

values (1567, 'Juanito', 'Torres', 23-09-21-998,

13221987,'juancho' )

insert into torero (dni_torero, nombre_torero, apellido_torero,

fecha_alternativa_tor, dni_padrino, apodo_torero)

values (1567, 'Juanito', '', 23-09-21-998, 13221987,'null' )

Sólo especificaremos las columnas donde insertar y su orden cuando no insertemos datos en todas

ellas o no lo hagamos en el mismo orden en que definimos la tabla. La asociación columna-valor es posicional. Los valores deben cumplir con los tipos de datos definidos. Los valores de tipo carácter y

fecha deben ir encerrados entre comillas simples, ('').

UPDATE

Crea una consulta de actualización que cambia los valores de los campos de una tabla especificada basándose en un criterio específico. Su sintaxis es:

UPDATE Nombre_Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN

WHERE Criterio update torero

set nombre_torero = 'andres', apellido_torero = 'mancilla'

where dni_torero = 1553

Se especificará en la cláusula SET las columnas que se actualizarán y con qué valores.

UPDATE no genera ningún resultado. Para saber qué registros se van a cambiar, hay que

examinar primero el resultado de una consulta de selección que utilice el mismo criterio y después ejecutar la consulta de actualización.

Si en una consulta de actualización suprimimos la cláusula WHERE todos los registros de la

tabla señalada serán actualizados.

Page 16: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 16 de 17

DELETE

Crea una consulta de eliminación que elimina los registros de una o más de las tablas listadas

en la cláusula FROM que satisfagan la cláusula WHERE.

Esta consulta elimina los registros completos, no es posible eliminar el contenido de algún

campo en concreto.

Su sintaxis es:

DELETE Tabla.* FROM Tabla WHERE criterio

Borrará todas las filas que cumplan la condición especificada en la cláusula WHERE. Si esta

cláusula no se fija, se borrarán todas las filas de la tabla.

DELETE es especialmente útil cuando se desea eliminar varios registros.

En una instrucción DELETE con múltiples tablas, debe incluir el nombre de tabla (Tabla.*). Si

especifica más de una tabla desde la que eliminar registros, todas deben ser tablas de

muchos a uno.

Si desea eliminar todos los registros de una tabla, eliminar la propia tabla es más eficiente que

ejecutar una consulta de borrado. Se puede utilizar DELETE para eliminar registros de una única tabla o desde varios lados de

una relación uno a muchos.

Las operaciones de eliminación en cascada en una consulta únicamente eliminan desde varios

lados de una relación. Por ejemplo, en la relación entre las tablas Clientes y Pedidos, la tabla Pedidos es la parte de muchos por lo que las operaciones en cascada solo afectaran a la tabla

Pedidos. Una consulta de borrado elimina los registros completos, no únicamente los datos en campos

específicos.

Si desea eliminar valores en un campo especificado, crear una consulta de actualización que

cambie los valores a Null.

Una vez que se han eliminado los registros utilizando una consulta de borrado, no puede

deshacer la operación. Si desea saber qué registros se eliminarán, primero examine los resultados de una consulta de

selección que utilice el mismo criterio y después ejecute la consulta de borrado.

Mantenga copias de seguridad de sus datos en todo momento. Si elimina los registros

equivocados podrá recuperarlos desde las copias de seguridad.

DELETE * FROM Empleados WHERE Cargo = 'Vendedor'

delete

from torero

where nombre_torero = 'andres'

Page 17: Guia N°5 Transact-Sql

Sistema de

Gestión de la Calidad

Regional Distrito Capital Centro De Gestión de Mercados, Logística y Tecnologías de la

Información FORMACIÓN POR COMPETENCIAS LABORALES

PROGRAMACIÓN DE SOFTWARE

EJE DE FORMACIÓN: BASE DE DATOS

Fecha: Mayo de 2010 Código: Página 17 de 17

DCL (Data Control Laguage), encargado de la seguridad de la base de datos, en todo lo referente

al control de accesos y privilegios entre los usuarios.

Son comandos propios de este lenguaje: GRANT

REVOKE

COMMIT : Guarda los trabajos realizados en las transacciones

ROLLBACK : Restaura la base de datos al estado original desde el comando COMMIT pasado en las transacciones

SAVEPOINT : Establecer un punto en que es posible un ROLLBACK.

SAVE TRANSACTION : Establece un punto de almacenamiento dentro de una transacción