SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición...

45
SQL JULIO CESAR CANO R

Transcript of SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición...

Page 1: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

SQLJULIO CESAR CANO R

Page 2: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Introducción a SQL

¿Qué significa SQL?

¿Qué es el SQL?

Page 3: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Significado de SQL

Ingles

Español

Structured Query Language

Lenguaje Estructurado de Consultas

Page 4: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

¿Qué es SQL?

Es un lenguaje de consulta y programación de bases de datosutilizado para la organización, acceso, consulta y gestión debases de datos relacionales.

Cliente

Aplicación del Cliente

API’s de la BD(OLEDB, ODBC,

Microsoft Jet, etc.)

Librería de Autentificación

del Cliente

SolicitudSQL

DatosServer

Database Management

System(SGBD)

Validación de Permisos

Page 5: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Funciones Principales de SQL en un SGBD

Definición de Datos Estructura de la BD

Organización de Datos

Relaciones

Recuperación de Datos Extracción de Datos

Manipulación de Datos Permite la inserción, eliminación, modificación y actualización de

los datos.

Control de Acceso Control sobre los Permisos en los datos

Compartimiento de Datos Coordina el acceso y la compartición de datos entre varios

usuarios.

Integridad de Datos Protege la BD de deterioros o errores causados por el sistema

Page 6: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Sistemas de SQL Server

Un Sistema SQL puede implementarse como sistemacliente/servidor o como sistema independiente.

El tipo de sistema que se diseñe dependerá del número deusuarios que vaya a acceder a la base de datos de manerasimultanea y de la clase de trabajo que se vaya a realizar.

Page 7: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Transacciones-SQL

Las transacciones son comandos universales SQL que permitenrealizar petición a un servidor de BD por medio de otrasaplicaciones.

Existen 3 tipos de Transacciones:

Data Definition Lenguage (DDL)

El lenguaje de definición de datos es utilizado para definir la estructura de la

BD

Data Control Lenguage (DCL)

Son utilizadas para establecer los permisos sobre los elementos de una BD

Data Manipulation Lenguage (DML)

Son utilizadas para trabajar con los datos de las Bases de Datos como consultar,

insertar, actualizar o la eliminación de datos.

Page 8: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Elementos de Sintaxis en SQL

Al realizar transacciones o instrucciones SQL se llegan a utilizarciertos elementos que forman parte del uso del SQL como lo son:

Los Nombres y Alias

Batches

Comentarios

Tipos de Datos

Variables

Operadores

Funciones

Page 9: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Nombres y Alias

Cuando se escriben declaraciones de SQL, se utilizan nombrespara referirse a bases de datos, tablas, columnas o sentenciasreservadas de SQL. Pero también es posible crear alias loscuales funcionan como sinónimos para llamar a las tabla ocampos.

Pueden contener caracteres alfanuméricos, guión bajo y el $.

No puede estar formado solamente de dígitos.

Se deben incluir entre caracteres de comillas o apostrofes.

No incluir signos especiales como diagonales, puntos y comas.

El nombre no debe corresponder a una palabra reservada de SQL

Cuando se utilice el nombre de una tabla o campo compuestopor espacios en blanco se deberá colocar el nombre entre [ ] oentre ‘’.

Ejemplo:

SELECT Nombre,[Fecha de Nacimiento]

FROM Empleados

Page 10: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Comentarios

Los comentarios son cadenas de texto que no son tomados encuenta durante la ejecución de sentencias.

Existen 2 formas de colocar comentarios en SQL:

Comentarios por Línea

Para colocar un comentario en una línea, se deben colocar 2 (--) guiones antes

del comentario, ya que SQL ignora todo el texto que se encuentre a la derecha

de los guiones.

Comentarios de Bloque

Para generar un bloque de varias líneas de comentarios se utiliza los caracteres

(/*) para marcar el inicio del comentario y los caracteres (*/) para finalizar el

comentario

Ejemplo:

Use Ventas - - utiliza la BD Ventas

SELECT * - - Selecciona todos los registros

FROM Pedidos - - de la tabla pedidos

Go

Ejemplo:

/* Este es un bloque

de varias líneas

que termina precisamente aquí */

Page 11: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Tipos de Datos

Clasificación Tipos de Datos Descripción

Números

SMALLINT Números enteros pequeños

INTEGER Números enteros

BIT (Longitud) Cadena de Bits de longitud fija

REAL Números con coma flotante de baja Precisión

DOUBLE PRECICIÓN Números con coma flotante de doble Precisión

FLOAT (Precisión) Números en coma flotante

DECIMAL Números decimales y $

Cadenas de Texto

CHAR (Longitud) Cadena de longitud fija

CHARACTER

VARCHAR (Longitud) Cadenas de longitud variable

Fechas y Horas

DATE Fechas

TIME (Precisión) Horas

INTERVAL Intervalo de Tiempo

DATETIME Fecha y Hora

Page 12: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Variables

Dentro de SQL se pueden definir variables para almacenar valorestemporales.

Todas las variables deben iniciar con el símbolo @

Declaración de variables

Asignar valores en lasvariables

Devolver el valor delas variables

Sintaxis:

DECLARE @variable Tipo de Dato

Ejemplo:

DECLARE @nombre varchar(15)

Sintaxis:

SET @variable = valor

Ejemplo:

SET @nombre = ‘Juan Pérez’

Sintaxis:

SELECT @variable

Ejemplo:

SELECT @nombre

Page 13: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Operadores

Tipos de Operadores

Aritméticos

+ - * / ^

Comparación

> < <> = >= <= Concatenación

+ Lógicos

And Or Not

Page 14: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Funciones

COUNT Número de registros seleccionados POSITION (Caracter IN Cadena)

SUM Suma de un campo SUM (Campo)

AVG Promedio de un campo AVG (Campo)

MAX Máximo de un campo MAX (Campo)

MIN Mínimo de un campo MIN (Campo)

Page 15: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Transacciones DDL

Son instrucciones que controlan la estructura de una BD con lascuales se pueden realizar las siguientes acciones:

Crear Tablas

Eliminar Tablas

Modificar la estructura de la tabla

Definir Vistas (Tablas Virtuales)

Establecer parámetros de seguridad a la BD

Creación de Índices para la aceleración el acceso a losdatos.

Control del almacenamiento de los datos

Las transacciones DDL que se utilizan son:

CREATE Nombre del Objeto

ALTER Nombre del Objeto

DROP Nombre del Objeto

Page 16: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Crear una Base de Datos (CREATE)

Comando T-SQL:

CREATE DATABASE

Sintaxis:

CREATE DATABASE [Nombre de BD]

Ejemplo:

create database cursosql

on

(name = MiDB,

filename = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL$SQLCEDEC1\Data\cursosql.mdf',

size=8MB, Maxsize=9MB,filegrowth=100Kb)

LOG ON

(name = cursosql_reg,

filename = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL$SQLCEDEC1\Data\cursosql.ndf',

size=1000MB, Maxsize=1500MB,filegrowth=100Mb)

use cursosql

go

sp_helpdb [base de datos]

Permite mostrar la información de los archivos de la base de datos y muestra el espacio asignado.

Page 17: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Utilizar una BD

Para realizar una acción dentro de una Base de Datos, primerohay que decirle a MySQL que queremos trabajar con esa Base deDatos, para esto se utiliza el siguiente comando

Sentencia SQL:

USE

Sintaxis:

USE Nombre de la BD

Ejemplo:

USE Animales

Page 18: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Creación de una Tabla

Comando T-SQL:

CREATE TABLE

Sintaxis:

CREATE TABLE Nombre_Tabla (Nombre_Campo1 Tipo_Dato[(Tamaño)] [NULL | NOT NULL][DEFAULT Valor],Nombre_Campo2 Tipo_Dato[(Tamaño)] [NULL | NOT NULL][DEFAULT Valor], etc… )

* Solo es necesario definir el tamaño cuando se utilizan losTipos de Datos Char y Varchar.

Ejemplo 1:

CREATE TABLE MiTabla (

Matricula INT,Nombre VARCHAR(15),Edad INT )

Page 19: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Creación de una Tabla

Valores Ausentes y Valores Predeterminados

Al momento de definir cada una de las columnas es posibledeterminar si el campo va a permitir valores nulos o no.

Es posible definir para cada columna en caso de sernecesario, una valor que funcione como predeterminado almomento de ingresar registros a la tabla.

CREATE TABLE oficinas(oficina integer NOT NULL,ciudad varchar(15) NOT NULL,region varchar(15) NOT NULL DEFAULT 'Este',jef integer DEFAULT 106,objetivo money DEFAULT NULL,ventas money NOT NULL)

Page 20: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Eliminación de una Tabla

Es posible eliminar una tabla de la base de datos, es importanteconsiderar que al momento de que la tabla es eliminada todoslos registros almacenados en dicha tabla, también seráneliminados.

Al eliminar una tabla debe considerar si esta no se encuentrarelacionada con alguna otra tabla, en caso de que así sea, laintegridad en las relaciones se vera afectada.

DROP TABLE nombre_tabla

Page 21: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Modificación de una Tabla

En ocasiones será necesario alterar la definición de la estructuralas tablas, por lo que será posible modificar la tabla en lossiguientes aspectos:

Cambiar el tipo de datos para las columnas

Establecer valores nulos o no para las columnas

Especificar valores predeterminados

Agregar columnas

Eliminar columnas

ALTER TABLE nombre_tabla

ADD nueva_columna tipo_datos

ALTER TABLE nombre_tabla

DROP COLUMN nombre_columna

ALTER TABLE MITABLAalter column matricula varchar(15)

sp_rename 'MiTabla.Matricula','Credencial'go

Page 22: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Asignar Alias a los Campos

Es posible que al momento de que muestre el resultado de laconsulta, los nombres de los campos sean distintos.

Lo anterior es útil cuando los nombres de los campos no sonmuy representativos para los usuarios finales.

La asignación del Alias se hace a través de la cláusula AS seguidodel nombre del alias o sobrenombre que se quiera asignar.

SELECT idproducto AS [Código Producto],nombreproducto AS Producto from productos

Page 23: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Modificación de una Tabla

También es posible modificar la estructura de una tabla haciendouso del Administrador Corporativo (Enterprise Manager), es massencillo y proporciona más funcionalidad y flexibilidad que el usode las instrucciones T-SQL.

Expandir la carpeta de la base de dato y dar clic en Tablas, paraposteriormente con clic derecho sobre la tabla a modificar,seleccionar la opción Diseñar Tabla.

Page 24: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Tablas con Columnas Incrementales

Las tablas pueden contener una sola columna que tenga comovalor un valor inicial y que en cada registro que se agregue sepueda ver incrementado dependiendo del valor que se definió enla sintaxis de la creación de la tabla

CREATE TABLE nombre_tabla

(nombre_columna tipo_dato

[IDENTITY [(valor_inicial,incremento)]]NOT NULL)

CREATE TABLE clases

(Id_Estudiante integer IDENTITY(100, 5) NOT NULL,

Nombre varchar(15))

Page 25: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Tablas con Columnas Incrementales

Al momento de insertar registros a la tabla, la primer columna seincrementará de manera automática tomando como valor iniciale incremento los establecidos en la sentencia del T-SQL.

Para ver el funcionamiento debe utilizar el Enterprise Manager ydar clic derecho sobre la tabla para posteriormente utilizar Abrirtabla / Mostrar todos los registros.

Ingrese los datos faltantes al registro y observe elcomportamiento que se tiene al querer ingresar datos al primercampo.

insert into clases (nombre) values ('David') select * from clases

Page 26: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Consultas Simples – SELECT

La instrucción Select permite recuperar información de una base dedatos y los devuelve en forma de resultados de la consulta.

En la instrucción Select se especifican los elementos de datos querecupera la consulta.

Los elementos se especifican a través de una lista de elementosseparados por comas.

Cada elemento de selección en la lista genera una única columna deresultados de la consulta, de izquierda a derecha.

Un elemento de selección puede ser: Un nombre de columna

Identifica una columna de la tabla o tablas que aparecen en la cláusula FROM

SQL toma el valor de esa columna de cada fila de la tabla y lo muestra como resultado dela consulta

Una constante Especifica que ese mismo valor de constante aparecerá en cada fila de los resultados de la

consulta

Una expresión Indica a SQL que debe calcular el valor a poner e los resultados, según se especifica en la

expresión

Page 27: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Instrucción SELECT

SELECT Lista las columnas que se van a

recuperar de la BD.

FROM Se indica el nombre de la tabla que

contiene la información a recuperar.

WHERE Se especifica una condición para los

registros que debe recuperar SQL.

GROUP BY Genera una columna donde agrupa

los registros que tengan la mismainformación, generando unresumen.

HAVING Indica a SQL que incluya en el

resultado sólo determinados gruposproducidos por la cláusula GROUPBY.

ORDER BY Ordena los resultados tomando

como base los datos de una o máscolumnas.

Page 28: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Instrucción SELECT

En ocasiones es conveniente mostrar la información de todas lascolumnas que existen en la tabla, por lo que no será necesariocolocar la lista de todos los nombres de la columna. Para loanterior será necesario utilizar el (*), el cual le indica a SQL quedebe tomar todas las columnas de la tabla para posteriormenteser mostradas sobre la consulta.

Ejemplo 1:

SELECT * FROM CLIENTES

Page 29: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Selección de Filas (WHERE)

Normalmente no se desea seleccionar sólo algunos registros deuna tabla e incluir sólo estos en los resultados de la consulta.

La cláusula WHERE se usa para especificar los registros que sedesea recuperar.

SELECT idpedido,idproducto,preciounidadFROM [detalles de pedidos]WHERE preciounidad >=100

SELECT idcliente,nombrecompañía,nombrecontactoFROM clientesWHERE nombrecontacto = 'Antonio Moreno'

Page 30: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Condiciones de Búsqueda

SQL ofrece una gran variedad de condiciones de búsqueda quepermiten especificar muchos tipos diferentes de consulta deforma eficiente y natural.

Existen cinco condiciones básicas de consulta:

Comparación. Compara el valor de una expresión con elvalor de otra expresión.

Rango. comprueba si el valor de una expresión seencuentra en un rango especificado de valores

Pertenencia a conjuntos. Comprueba si el valor de unaexpresión con uno de un conjunto de valores.

Encaje de patrones. Comprueba si el valor de una columnaque contiene datos de cadena coincide con un patrónespecificado.

Valores nulos. Comprueba si una columna tiene una valorNULL.

Page 31: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Condiciones de Búsqueda (Comparación)

La condición de comparación es la más usual en una consulta deSQL, en dicha comparación SQL calcula y compara los valores dedos expresiones para cada fila de datos.

Las expresiones pueden tan sencillas o complejas, dependiendode lo el usuario desea obtener en la consulta.

SELECT * FROM productos WHERE unidadesenexistencia>=50 AND unidadesenexistencia<=100

SELECT * FROM clientesWHERE cargocontacto<>'propietario'

Page 32: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Condiciones de Búsqueda (Rango)

SQL proporciona una forma diferente de condición de búsquedacon el rango (BETWEEN), el cual comprueba si un valor seencuentra entre dos especificaciones.

Implica tres expresiones SQL:

La primera define el valor a comprobar

La segunda el límite inferior del rango a comprobar

La tercera el límite superior del rango a comprobar

SELECT idpedido,idcliente,fechapedido,fechaentregaFROM pedidosWHERE idpedido BETWEEN 10300 AND 10400

SELECT idpedido,idcliente,fechapedido,fechaentregaFROM pedidosWHERE fechapedido BETWEEN '09-01-96' AND '09-30-96'

mm/dd/aa

Page 33: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Condiciones de Búsqueda (Pertenencia a Conjuntos)

La búsqueda de pertenencia a conjuntos (IN), comprueba si unvalor de datos coincide con uno de una lista de posibles valores.

SELECT idproducto, nombreproducto, preciounidad, unidadesenexistenciaFROM productosWHERE unidadesenexistencia IN (0,5,10)

SELECT idpedido,idcliente,fechapedido,fechaentregaFROM pedidosWHERE fechapedido IN ('05-01-97','06-01-97','07-01-97','08-01-97')

Page 34: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Condiciones de Búsqueda (Encaje de Patrones)

La búsqueda de encaje de patrones, permite recuperar losregistros que coincidan con un texto en concreto.

SELECT idcliente,nombrecompañía,nombrecontactoFROM clientesWHERE nombrecompañía like 'S%'

SELECT idcliente,nombrecompañía,nombrecontactoFROM clientesWHERE nombrecompañía like 'S%' or nombrecompañía like 'A%'

SELECT * FROM mitablaWHERE nombre LIKE '_egador'

SELECT * FROM mitablaWHERE nombre LIKE '_egador%'

SELECT * FROM mitablaWHERE nombre LIKE '_egador_'

Page 35: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Condiciones de Búsqueda(Valores Nulos)

Para una fila dada, el resultado de una condición de búsquedapuede ser TRUE o FALSE, o puede ser NULL por que una de lascolumnas usadas en la evaluación de la condición de búsquedacontenga un valor NULL

SELECT nombrecompañía,cargocontacto,dirección, región, faxFROM clientesWHERE región IS NULL

SELECT idcliente,fechapedido,regióndestinatarioFROM pedidosWHERE idcliente='TOMSP' AND regióndestinatario IS NULL

Page 36: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Agrupación de Registros (Group By)

Una consulta que contiene GROUP BY se denomina consulta deagrupación por que agrupa los datos de las tablas fuente en unaúnica fila de resumen por cada registro.

SELECT idproveedor,sum(unidadesenexistencia)FROM productosgroup by idproveedor

SELECT idproveedor,unidadesenexistenciaFROM productosORDER BY idproveedorCOMPUTE sum(unidadesenexistencia)

SELECT idproveedor,unidadesenexistenciaFROM productosORDER BY idproveedorCOMPUTE sum(unidadesenexistencia) by idproveedorCOMPUTE sum(unidadesenexistencia)

Page 37: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Uso de la Cláusula HAVING en GROUP BY

La cláusula HAVING permite establecer una condición en losregistros agrupados de una consulta, para que SQL muestre sólolos registros que hayan cumplido con la condición.

HAVING debe utilizarse en combinación con la cláusula GROUPBY.

SELECT idproducto,idorden,cantidadFROM pedidos

idproducto Idorden cantidad

1 1 5

1 1 10

2 1 10

2 2 25

3 1 15

3 2 30

SELECT idproducto,sum(cantidad) as TotalFROM pedidosGROUP BY idproductoHAVING sum(cantidad)>=30

idproducto Total

2 35

3 45

Page 38: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Uso de la Cláusula HAVING en GROUP BY

SELECT idproveedor,sum(unidadesenexistencia)FROM productosgroup by idproveedorhaving sum(unidadesenexistencia)>200

SELECT idproveedor,sum(unidadesenexistencia)FROM productosgroup by idproveedorhaving idproveedor<=5

Ejercicios:

Page 39: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Uso del GROUP BY con la cláusula COMPUTE

La cláusula COMPUTE permite colocar al final de la consulta unafila con un resultado de alguna función matemática aplicada.

Puede utilizarse también la cláusula COMPUTE BY para crear unaespecie de subtotales con su respectivo total general.

SELECT idproveedor,unidadesenexistenciaFROM productosORDER BY idproveedorCOMPUTE sum(unidadesenexistencia)

SELECT idproveedor,unidadesenexistenciaFROM productosORDER BY idproveedorCOMPUTE sum(unidadesenexistencia) by idproveedorCOMPUTE sum(unidadesenexistencia)

IdProveedor Unidadesenexistencia

1 39

1 17

2 53

2 9

2 76

Sum 194

IdProveedor Unidadesenexistencia

1 39

1 17

Sum 56

2 53

2 9

2 76

Sum 138

Sum 194

Page 40: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Registros Duplicados (DISTINCT)

En caso de que en la tabla se tenga especificado un campo comoclave principal, todos los registros de la tabla en ese campotendrá información diferente, ya que la clave principal pornaturaleza impide tener registros duplicados en el campo declave principal.

Si la clave principal no se incluye, la tabla podrá tener registroscon información duplicada.

Para no mostrar los registros con información duplicada seránecesario insertar la palabra DISTINCT en la instrucción SELECTates de la lista de selección.

SELECT DISTINCT fechapedido FROM pedidos

SELECT DISTINCT cargo FROM empleados

SELECT DISTINCT cargo, región FROM empleados

Page 41: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Ordenación de Registros (ORDER BY)

Una consulta generada por la cláusula SELECT puede presentarlos resultados de manera organizada tanto numéricamente yalfabéticamente.

Cláusula T-SQL:

ORDER BY

Sintaxis:

SELECT [Campos] FROM [Tabla] ORDER BY [Campos] [Tipo de Ordenación]

Los tipos de ordenación puedes ser:

ASC - Ordenación Ascendente

DESC - Ordenación Descendente

SELECT * FROM empleados ORDER BY idempleado desc

SELECT * FROM empleados ORDER BY cargo asc

Page 42: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Mostrar los Valores Superiores/Inferiores

A través de la cláusula TOP, SQL permite mostrar los registrosque contengan los valores mas superiores o inferiores de laconsulta.

Para especificar que sean los primeros o últimos se agrega lacláusula WITH TIES después de la cláusula TOP.

SELECT TOP 3 *FROM productosorder by unidadesenexistencia desc

SELECT TOP 3 *FROM productosOrder BY unidadesenexistencia asc

SELECT TOP 3 with ties *FROM productosORDER BY unidadesenexistencia asc

Page 43: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Consultas con Columnas Calculadas

Los resultados de una consulta vienen directamente de la bas dedatos, una consulta de SQL puede incluir columnas calculadas,cuyos valores se obtiene a partir de los valores almacenados.

Para solicitar una columna calculada se hace a través de unaexpresión

Las expresiones de SQL pueden incluir la suma, resta,multiplicación y la división.

Las columnas referenciadas en una expresión aritmética debentener un tipo numérico.

select idpedido, idproducto, (preciounidad*cantidad) as 'Total de Venta' from [detalles de pedidos]

Page 44: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Consultas de Varias Tablas

A través de la cláusula INNER JOIN será posible realizarconsultas entre dos o más tablas.

Para realizar consultas entre varias tablas, es recomendableasignar Alias haciendo uso de la cláusula AS para nombrar lastablas.

Select idpedido, idproducto,producto,cantidad

FROM pedidos INNER JOIN productos

ON pedidos.idproducto=productos.idproducto

GO

Select idpedido, idproducto,producto,cantidad

FROM pedidos AS pe INNER JOIN productos AS pr

ON pe.idproducto=pr.idproducto

GO

Page 45: SQL - juliocanoramirez.files.wordpress.com · Funciones Principales de SQL en un SGBD Definición de Datos Estructura de la BD Organización de Datos ... Sistemas de SQL Server Un

Consultas de Varias Tablas

A través de la cláusula INNER JOIN será posible realizarconsultas entre dos o más tablas.

Para realizar consultas entre varias tablas, es recomendableasignar Alias haciendo uso de la cláusula AS para nombrar lastablas.

Select idpedido, idproducto,producto,cantidad

FROM pedidos INNER JOIN productos

ON pedidos.idproducto=productos.idproducto

GO

Select idpedido, idproducto,producto,cantidad

FROM pedidos AS pe INNER JOIN productos AS pr

ON pe.idproducto=pr.idproducto

GO