Está en la página 1de 73

SQL

PROFESOR ISAAC GARCA ROS

Introduccin a SQL

Qu significa SQL?
Qu es el SQL?

Significado de SQL
Ingles

Structured Query Language


Espaol

Lenguaje Estructurado de Consultas

Qu es SQL?
Es un lenguaje de consulta y programacin de bases de
datos utilizado para la organizacin, acceso, consulta y
gestin de bases de datos relacionales.

Aplicacin
del Cliente

Validacin de
Permisos

Solicitud
SQL

Cliente

APIs de la BD
(OLEDB, ODBC,
Microsoft Jet, etc.)
Librera de
Autentificacin
del Cliente

Datos

Server

Database
Management
System
(SGBD)

Funciones Principales de SQL en un SGBD

Definicin de Datos

Recuperacin de Datos

Control sobre los Permisos en los datos

Compartimiento de Datos

Permite la insercin, eliminacin, modificacin y actualizacin de


los datos.

Control de Acceso

Extraccin de Datos

Manipulacin de Datos

Estructura de la BD
Organizacin de Datos
Relaciones

Coordina el acceso y la comparticin de datos entre varios


usuarios.

Integridad de Datos

Protege la BD de deterioros o errores causados por el sistema

Sistemas de SQL Server


Un Sistema SQL puede implementarse como sistema
cliente/servidor o como sistema independiente.
El tipo de sistema que se disee depender del nmero
de usuarios que vaya a acceder a la base de datos de
manera simultanea y de la clase de trabajo que se vaya
a realizar.

Sistema cliente/servidor
Este sistema se puede configurar en dos o tres capas,
independientemente de la configuracin, software y
bases de datos de SQL Server.
Los usuarios tienen equipos independientes llamados
clientes. Los usuarios acceden a la base de datos por
medio de aplicaciones en sus equipos cliente.

Sistema cliente/servidor
En los sistemas de dos capas los clientes ejecutan una
aplicacin desde su equipo y que accede al servidor de
base de datos por medio de la red, por lo tanto el cliente
ejecuta el cdigo correspondiente para presentar los
resultados al usuario.
La configuracin de 2 capas es til cuando el nmero de
usuarios es relativamente pequeo, dado que cada
conexin de usuario requiere de recursos del sistema
como memoria y bloqueos.
SBD

Clientes

Sistema cliente/servidor
La configuracin de tres capas involucra a un equipo
llamado servidor de aplicaciones, en este sistema la
nica tarea del cliente es la ejecucin de cdigo para
solicitar las funciones del servidor de aplicaciones y
posteriormente la presentacin de los resultados.
El Servidor de aplicaciones ejecuta un programa que
incluye el cdigo especfico, por lo que muchos usuarios
pueden acceder a este programa de manera simultanea.
El Servidor de aplicaciones se conecta con el servidor de
base de datos para acceder a la aplicacin y devolver los
resultados al cliente.
SA
SBD
Clientes

Sistema Independiente (Local)


SQL Server tambin se puede utilizar como servidor de
base de datos independiente que se ejecuta en una PC o
porttil.
Las aplicaciones cliente se ejecutan en la misma
mquina que almacena el motor de SQL Server y las
bases de datos, por lo tanto no se realiza ninguna
conexin de red del cliente al servidor.
El sistema es til cuando un nico usuario accede a la
base de datos o en los que unos pocos usuarios que
comparten un equipo acceden a la base de datos en
diferentes momentos.

Administracin de Servicios
SQL Server
Un servicio es un programa o proceso que lleva a cabo
una funcin especifica para dar soporte a otros
programas o aplicaciones.
Al iniciar el equipo, el servicio se inicia de manera
automtica.
El servicio gestiona los archivos de bases de datos,
procesa sentencias Transac-SQL, ubica recursos entre
conexiones de usuarios y asegura la consistencia de los
datos.

SQL Server Enterprise Manager


El Administrador Corporativo de SQL es una herramienta
para configurar y administrar la instalacin de SQL
Server.
Permite realizar las siguientes tareas:

Configurar y administrar base de datos (tablas, ndices,


vistas, procedimientos, copias de seguridad y registros de
error)
Registrar el servidor
Configurar servidores locales y remotos
Asignar una contrasea de administrador del sistema
Controlar los usuarios, administradores y operadores del
sistema

SQL Server Enterprise Manager

Estructura de las Bases de Datos


Cada Base de Datos de SQL Server se crea a partir de un
conjunto de archivos del sistema operativo.
Archivos

Un archivo de base de datos puede ser un archivo de datos


o bien un archivo de registro.

Archivos de Datos.- Se usan para almacenar datos y


objetos como tablas, ndices, vistas y procedimientos
almacenados. Existen dos tipos de archivos de datos:

Principales
Secundarios

Estructura de las Bases de Datos

Archivos de datos principal

Archivos de datos secundarios

Contiene toda la informacin de inicio para la base de datos, tablas y objetos


del sistema. Apunta al resto de archivos creados en la base de datos.
Tambin puede almacenar tablas y objetos definidos por el usuario.
Cada base de datos debe tener un archivo principal con la extensin .MDF
Estos archivos son opcionales. Pueden contener datos y objetos que no se
encuentren en el archivo principal.
Una base de datos podra no tener ningn archivo secundario si todos sus
datos se encuentran en el archivo principal.
Se puede tener ms de un archivo secundario.
La extensin de estos archivos son .NDF.

Archivos de Registro de Transacciones

Contiene toda la informacin de registro de transacciones utilizada para


recuperar la base de datos.
Toda base de datos debe tener al menos una archivo de registro
La extensin de este tipo de archivo es .ldf

Nota: el Tamao mximo para una base de datos en SQL Server es de 32 tb


para archivos de datos y 4 tb para archivos de registro.

Bases de Datos del Sistema


Al instalar SQL Server se crean cuatro bases de datos del
sistema: las bases de datos master, temdb, model y
msdb.

Master.- Registra la informacin de inicializacin de SQL


Server y los parmetros de configuracin de SQL Server.
Tambin registra todas las cuentas de inicio de sesin, la
existencia de todas las dems bases de datos y la posicin
del archivo principal de todas las bases de datos de usuario

Tempdb.- Alberga tablas y procedimientos almacenados


temporales. Esta base de datos tambin se utiliza para
otras
necesidades
de
almacenamiento
como
el
ordenamiento de datos.

Bases de Datos del Sistema

Model.- Sirve como plantilla para todas las dems bases de


datos que se creen en el sistema, entre ellas tempdb. Esta
base de datos debe existir en el sistema por que se utiliza
para volver a crear tempdb cada vez que SQL Server se
inicia.

Msdb.- Contiene tablas que agente de SQL Server utiliza


para la planificacin de trabajos y alertas. Esta base de
datos tambin alberga las tablas que se usan para la
duplicacin.

Creacin de una Base de Datos


SQL Server proporciona tres mtodos para la creacin de
una base de datos:

A travs del SQL Server Enterprise Manager

Asistente para la creacin de bases de datos


Mediante el comando Nueva Base de Datos

Comandos de Transac-SQL

Creacin de una Base de Datos

Uso del Asistente para la


Creacin de Bases de Datos.
1.
2.
3.

4.
5.

Iniciar
el
SQL
Server
Enterprise Manager
Seleccionar el servidor en
el que se quiere crear la
base de datos
Ejecutar
el
asistente
(Herramientas / Asistentes
o clic sobre el botn de la
varita)
Seleccionar de la lista el
asistente para la creacin
de base de datos y dar OK.
Dar clic en siguiente para
saltar
la
pantalla
de
bienvenida al asistente.

Creacin de una Base de Datos


Uso del Asistente para la Creacin de Bases de Datos.
5. Escribir el nombre de la base de datos a crear y rutas de
almacenamiento de archivos de datos y de registros.
Posteriormente dar clic en Siguiente.

Creacin de una Base de Datos


Uso del Asistente para la Creacin de Bases de Datos.
6. Especificar el tamao inicial del archivo de la base de datos
o dejar el tamao de manera predeterminada.

Creacin de una Base de Datos


Uso del Asistente para la Creacin de Bases de Datos.
7. Definir el crecimiento del archivo de la base de datos, ya
sea de manera automtica o un tamao segn lo
necesitado.

Creacin de una Base de Datos


Uso del Asistente para la Creacin de Bases de Datos.
8. Asignar el tamao inicial de los archivos de registro de
transacciones.

Creacin de una Base de Datos


Uso del Asistente para la Creacin de Bases de Datos.
7. Definir el crecimiento de los archivos de registro, ya sea de
manera automtica o un tamao segn lo necesitado.

Creacin de una Base de Datos

Comando
Creacin
Bases de Datos.
1.

2.
3.
4.

de

Ejecutar
el
Enterprise
Manager y seleccionar el
servidor correspondiente.
Seleccionar la carpeta Base
de Datos
Seleccionar el men Accin
/ Nueva base de datos
Escribir el nombre de la
base de datos a crear

Creacin de una Base de Datos


Comando Creacin de Bases de Datos.
5. Seleccionar las opciones de crecimiento automtico segn
cada archivo.

Creacin de una Base de Datos


Comando Creacin de Bases de Datos.
6. Configurar los archivos de registros de transacciones.

SQL Query Analyzer

El Query Analyzer es una herramienta grfica utilizada para


realizar consultas SQL.
En el Query Analyzer se pueden escribir, modificar, ejecutar y
guardar cdigos Transact-SQL
Las ventajas mas importantes del Query Analyzer son:

Editor de Scripts

Formateo de Cdigo por colores

Ventanas donde se visualizarn las consultas en una Hoja de Datos (Cuadricula) o en


forma de Texto.

Ejecucin Parcial de Scripts

Como se valla capturando el cdigo, SQL Query Analyzer aplica colores a las palabras
reservadas, cadenas de texto, funciones y a otros elementos.

Mltiples ventanas de consulta en Cuadriculas o Textos

Editor de Textos donde se pueden agregar sangras para mantener una mayor organizacin
de los scripts.

Se puede ejecutar una parte de todo un script mediante la seleccin de las lneas que se
quiera ejecutar.

Plan de Ejecucin

Query Analyzer puede presentar informacin de cmo se ejecutan los scripts, velocidad,
forma y rendimiento del servidor para devolver una consulta.

SQL Query Analyzer


Al ejecutar el Query Analyzer mostrar el cuadro de
dialogo que permitir establecer la conexin con el
Servidor de SQL.

SQL Query Analyzer

Transacciones-SQL
Las transacciones son comandos universales SQL que
permiten realizar peticin a un servidor de BD por medio
de otras aplicaciones.
Existen 3 tipos de Transacciones:

Data Definition Lenguage (DDL)

Data Control Lenguage (DCL)

El lenguaje de definicin de datos es utilizado para definir la estructura de la


BD

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 eliminacin de datos.

Elementos de Sintaxis en SQL


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

Los Nombres y Alias


Batches
Comentarios
Tipos de Datos
Variables
Operadores
Funciones

Nombres y Alias
Cuando se escriben declaraciones de SQL, se utilizan
nombres para referirse a bases de datos, tablas,
columnas o sentencias reservadas de SQL. Pero tambin
es posible crear alias los cuales funcionan como
sinnimos para llamar a las tabla o campos.

Pueden contener caracteres alfanumricos, guin bajo y el $.


No puede estar formado solamente de dgitos.
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


compuesto por espacios en blanco se deber colocar el
nombre entre [ ] o entre .
Ejemplo:
SELECT Nombre,[Fecha de Nacimiento]
FROM Empleados

Batches
Un Batche esta formado por un conjunto de sentencias o
transacciones SQL.
GO

Mediante la palabra GO, SQL marca el final de un batche y


es enviado a procesar al Servidor de SQL.

Ejemplo:
Use Northwind
SELECT * FROM Productname
GO

Comentarios
Los comentarios son cadenas de texto que no son
tomados en cuenta durante la ejecucin de sentencias.
Existen 2 formas de colocar comentarios en SQL:

Comentarios por Lnea

Para colocar un comentario en una lnea, se deben colocar 2 (--) guiones antes
del comentario, ya que SQL ignora todo el texto que se encuentre a la derecha
de los guiones.
Ejemplo:

Use Ventas - - utiliza la BD Ventas


SELECT * - - Selecciona todos los registros
FROM Pedidos - - de la tabla pedidos
Go

Comentarios de Bloque

Para generar un bloque de varias lneas de comentarios se utiliza los caracteres


(/*) para marcar el inicio del comentario y los caracteres (*/) para finalizar el
comentario
Ejemplo:
/* Este es un bloque
de varias lneas
que termina precisamente aqu */

Tipos de Datos
Clasificacin

Tipos de Datos
SMALLINT

Nmeros enteros pequeos

INTEGER

Nmeros enteros

BIT (Longitud)

Cadena de Bits de longitud fija

REAL

Nmeros con
Precisin

DOUBLE PRECICIN

Nmeros con coma flotante de doble


Precisin

FLOAT (Precisin)

Nmeros en coma flotante

DECIMAL

Nmeros decimales y $

CHAR (Longitud)

Cadena de longitud fija

Nmeros

Cadenas de Texto

Fechas y Horas

Descripcin

coma

flotante

CHARACTER
VARCHAR (Longitud)

Cadenas de longitud variable

DATE

Fechas

TIME (Precisin)

Horas

INTERVAL

Intervalo de Tiempo

DATETIME

Fecha y Hora

de

baja

Variables
Dentro de SQL se pueden definir variables para almacenar
valores temporales.
Todas las variables deben iniciar con el smbolo @
Declaracin de

Asignar
variables

Devolver
las variables

Sintaxis:
DECLARE @variable Tipo de Dato
variables
Ejemplo:
DECLARE @nombre varchar(15)
Sintaxis:
SET @variable = valor
valores Ejemplo:
en
las
SET @nombre = Juan Prez

el

Sintaxis:
SELECT @variable
valor
Ejemplo:
SELECT @nombre

de

Operadores
Tipos de Operadores

Aritmticos
+ - * / ^

Comparacin

>

<

<>

Concatenacin

Lgicos
And Or

Not

>=

<=

Funciones

COUNT

Nmero
de
seleccionados

registros

POSITION (Caracter IN Cadena)

SUM

Suma de un campo

SUM (Campo)

AVG

Promedio de un campo

AVG (Campo)

MAX

Mximo de un campo

MAX (Campo)

MIN

Mnimo de un campo

MIN (Campo)

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

Crear Tablas
Eliminar Tablas
Modificar la estructura de la tabla
Definir Vistas (Tablas Virtuales)
Establecer parmetros de seguridad a la BD
Creacin de ndices para la aceleracin el acceso a los
datos.
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

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 informacin de los archivos


de la base de datos y muestra el espacio
asignado.

Utilizar una BD
Para realizar una accin dentro de una Base de Datos,
primero hay que decirle a MySQL que queremos trabajar
con esa Base de Datos, para esto se utiliza el siguiente
comando
Sentencia SQL:

USE

Sintaxis:

USE Nombre de la BD

Ejemplo:
USE Animales

Creacin de una Tabla


Comando T-SQL:

CREATE TABLE

Sintaxis:

CREATE
TABLE
Nombre_Tabla
Nombre_Campo1
Tipo_Dato[(Tamao)] [NULL | NOT
[DEFAULT
Valor],
Nombre_Campo2
Tipo_Dato[(Tamao)] [NULL | NOT
[DEFAULT Valor], etc )

(
NULL]
NULL]

* Solo es necesario definir el tamao cuando se utilizan los


Tipos de Datos Char y Varchar.

Ejemplo 1:
CREATE TABLE MiTabla (
Matricula INT,
Nombre VARCHAR(15),
Edad INT )

Creacin de una Tabla


Valores Ausentes y Valores Predeterminados

Al momento de definir cada una de las columnas es posible


determinar si el campo va a permitir valores nulos o no.
Es posible definir para cada columna en caso de ser
necesario, una valor que funcione como predeterminado al
momento 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)

Eliminacin de una Tabla


Es posible eliminar una tabla de la base de datos, es
importante considerar que al momento de que la tabla
es eliminada todos los registros almacenados en dicha
tabla, tambin sern eliminados.
Al eliminar una tabla debe considerar si esta no se
encuentra relacionada con alguna otra tabla, en caso de
que as sea, la integridad en las relaciones se vera
afectada.
DROP TABLE nombre_tabla

Modificacin de una Tabla


En ocasiones ser necesario alterar la definicin de la
estructura las tablas, por lo que ser posible modificar la
tabla en los siguientes 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 MITABLA


alter column matricula varchar(15)

sp_rename 'MiTabla.Matricula','Credencial'
go

ALTER TABLE nombre_tabla


ADD nueva_columna tipo_datos

ALTER TABLE nombre_tabla


DROP COLUMN nombre_columna

Asignar Alias a los Campos


Es posible que al momento de que muestre el resultado
de la consulta, los nombres de los campos sean distintos.
Lo anterior es til cuando los nombres de los campos no
son muy representativos para los usuarios finales.
La asignacin del Alias se hace a travs de la clusula AS
seguido del nombre del alias o sobrenombre que se
quiera asignar.
SELECT idproducto AS [Cdigo Producto],
nombreproducto AS Producto from productos

Modificacin de una Tabla


Tambin es posible modificar la estructura de una tabla
haciendo uso del Administrador Corporativo (Enterprise
Manager), es mas sencillo y proporciona ms
funcionalidad y flexibilidad que el uso de las
instrucciones T-SQL.
Expandir la carpeta de la base de dato y dar clic en
Tablas, para posteriormente con clic derecho sobre la
tabla a modificar, seleccionar la opcin Disear Tabla.

Tablas con Columnas Incrementales


Las tablas pueden contener una sola columna que tenga
como valor un valor inicial y que en cada registro que se
agregue se pueda ver incrementado dependiendo del
valor que se defini en la sintaxis de la creacin 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))

Tablas con Columnas Incrementales


Al momento de insertar registros a la tabla, la primer
columna se incrementar de manera automtica
tomando como valor inicial e incremento los establecidos
en la sentencia del T-SQL.
Para ver el funcionamiento debe utilizar el Enterprise
Manager y dar clic derecho sobre la tabla para
posteriormente utilizar Abrir tabla / Mostrar todos los
registros.
Ingrese los datos faltantes al registro y observe el
comportamiento que se tiene al querer ingresar datos al
campo.
insertprimer
into clases
(nombre) values ('David')

select * from clases

Importar Tablas
1. Dentro del Enterprise Manager dar clic derecho en la
carpeta de Base de Datos
2. Seleccionar Todas las Tareas / Importar Datos
3. En la Bienvenida dar Siguiente
4. Seleccionar el Origen de Datos "Microsft Access"
5. Seleccionar el Archivo.mdb
6. Siguiente

Importar Tablas
1. Seleccionar el Destino (Microsft OLEDB Provider for SQL
Server)
2. Asegurarse que el Servidor es el correcto
3. Seleccionar de la lista de Base de Datos, la opcin Nuevo
4. Dar el Nombre de la Nueva BD
5. OK
6. Siguiente

Importar Tablas
Seleccionar la opcin Copiar Tabas y Vistas de la BD
Fuente
Siguiente
Seleccionar las tablas a importar
Siguiente
Siguiente
Finalizar

Consultas Simples SELECT

La instruccin Select permite recuperar informacin de una


base de datos y los devuelve en forma de resultados de la
consulta.
En la instruccin Select se especifican los elementos de datos
que recupera la consulta.
Los elementos se especifican a travs de una lista de
elementos separados por comas.
Cada elemento de seleccin en la lista genera una nica
columna de resultados de la consulta, de izquierda a derecha.
Un elemento de seleccin puede ser:

Un nombre de columna

Una constante

Identifica una columna de la tabla o tablas que aparecen en la clusula FROM


SQL toma el valor de esa columna de cada fila de la tabla y lo muestra como resultado de
la consulta
Especifica que ese mismo valor de constante aparecer en cada fila de los resultados de la
consulta

Una expresin

Indica a SQL que debe calcular el valor a poner e los resultados, segn se especifica en la
expresin

Instruccin SELECT

SELECT

FROM

Genera una columna donde agrupa


los registros que tengan la misma
informacin,
generando
un
resumen.

HAVING

Se especifica una condicin para los


registros que debe recuperar SQL.

GROUP BY

Se indica el nombre de la tabla que


contiene la informacin a recuperar.

WHERE

Lista las columnas que se van a


recuperar de la BD.

Indica a SQL que incluya en el


resultado slo determinados grupos
producidos por la clusula GROUP
BY.

ORDER BY

Ordena los resultados tomando


como base los datos de una o ms
columnas.

Instruccin SELECT
En ocasiones es conveniente mostrar la informacin de
todas las columnas que existen en la tabla, por lo que no
ser necesario colocar la lista de todos los nombres de la
columna. Para lo anterior ser necesario utilizar el (*), el
cual le indica a SQL que debe tomar todas las columnas
de la tabla para posteriormente ser mostradas sobre la
consulta.
Ejemplo 1:
SELECT * FROM CLIENTES

Seleccin de Filas (WHERE)


Normalmente no se desea seleccionar slo algunos
registros de una tabla e incluir slo estos en los
resultados de la consulta.
La clusula WHERE se usa para especificar los registros
que se desea recuperar.
SELECT idpedido,idproducto,preciounidad
FROM [detalles de pedidos]
WHERE preciounidad >=100

SELECT idcliente,nombrecompaa,nombrecontacto
FROM clientes
WHERE nombrecontacto = 'Antonio Moreno'

Condiciones de Bsqueda
SQL ofrece una gran variedad de condiciones de
bsqueda que permiten especificar muchos tipos
diferentes de consulta de forma eficiente y natural.
Existen cinco condiciones bsicas de consulta:

Comparacin. Compara el valor de una expresin con el


valor de otra expresin.
Rango. comprueba si el valor de una expresin se
encuentra en un rango especificado de valores
Pertenencia a conjuntos. Comprueba si el valor de una
expresin con uno de un conjunto de valores.
Encaje de patrones. Comprueba si el valor de una columna
que contiene datos de cadena coincide con un patrn
especificado.
Valores nulos. Comprueba si una columna tiene una valor
NULL.

Condiciones de Bsqueda (Comparacin)


La condicin de comparacin es la ms usual en una
consulta de SQL, en dicha comparacin SQL calcula y
compara los valores de dos expresiones para cada fila de
datos.
Las expresiones pueden tan sencillas o complejas,
dependiendo de lo el usuario desea obtener en la
consulta.

SELECT * FROM productos WHERE unidadesenexistencia>=50


AND unidadesenexistencia<=100
SELECT * FROM clientes
WHERE cargocontacto<>'propietario'

Condiciones de Bsqueda (Rango)


SQL proporciona una forma diferente de condicin de
bsqueda con el rango (BETWEEN), el cual comprueba si
un valor se encuentra entre dos especificaciones.
Implica tres expresiones SQL:

La primera define el valor a comprobar


La segunda el lmite inferior del rango a comprobar
La tercera el lmite superior del rango a comprobar

SELECT idpedido,idcliente,fechapedido,fechaentrega
FROM pedidos
WHERE idpedido BETWEEN 10300 AND 10400
SELECT idpedido,idcliente,fechapedido,fechaentrega
FROM pedidos
WHERE fechapedido BETWEEN '09-01-96' AND '09-30-96'
mm/dd/aa

Condiciones de Bsqueda
(Pertenencia a Conjuntos)
La bsqueda de pertenencia a conjuntos (IN), comprueba
si un valor de datos coincide con uno de una lista de
posibles valores.

SELECT idproducto, nombreproducto, preciounidad, unidadesenexistencia


FROM productos
WHERE unidadesenexistencia IN (0,5,10)

SELECT idpedido,idcliente,fechapedido,fechaentrega
FROM pedidos
WHERE fechapedido IN ('05-01-97','06-01-97','07-01-97','08-01-97')

Condiciones de Bsqueda
(Encaje de Patrones)
La bsqueda de encaje de patrones, permite recuperar
los registros que coincidan con un texto en concreto.
SELECT idcliente,nombrecompaa,nombrecontacto
FROM clientes
WHERE nombrecompaa like 'S%'
SELECT idcliente,nombrecompaa,nombrecontacto
FROM clientes
WHERE nombrecompaa like 'S%' or nombrecompaa like 'A%'
SELECT * FROM mitabla
WHERE nombre LIKE '_egador'

SELECT * FROM mitabla


WHERE nombre LIKE '_egador%'

SELECT * FROM mitabla


WHERE nombre LIKE '_egador_'

Condiciones de Bsqueda
(Valores Nulos)
Para una fila dada, el resultado de una condicin de
bsqueda puede ser TRUE o FALSE, o puede ser NULL
por que una de las columnas usadas en la evaluacin de
la condicin de bsqueda contenga un valor NULL
SELECT nombrecompaa,cargocontacto,direccin, regin, fax
FROM clientes
WHERE regin IS NULL
SELECT idcliente,fechapedido,regindestinatario
FROM pedidos
WHERE idcliente='TOMSP' AND regindestinatario IS NULL

Agrupacin de Registros (Group By)


Una consulta que contiene GROUP BY se denomina
consulta de agrupacin por que agrupa los datos de las
tablas fuente en una nica fila de resumen por cada
registro.
SELECT idproveedor,sum(unidadesenexistencia)
FROM productos
group by idproveedor
SELECT idproveedor,unidadesenexistencia
FROM productos
ORDER BY idproveedor
COMPUTE sum(unidadesenexistencia)
SELECT idproveedor,unidadesenexistencia
FROM productos
ORDER BY idproveedor
COMPUTE sum(unidadesenexistencia) by idproveedor
COMPUTE sum(unidadesenexistencia)

Uso de la Clusula HAVING en GROUP BY


La clusula HAVING permite establecer una condicin en
los registros agrupados de una consulta, para que SQL
muestre slo los registros que hayan cumplido con la
condicin.
HAVING debe utilizarse en combinacin con la clusula
GROUP
BY.
SELECT
idproducto,
SELECT idproducto,
idorden,cantidad
FROM pedidos

sum(cantidad) as Total
FROM pedidos
GROUP BY idproducto
HAVING sum(cantidad)>=30

idproducto

Idorden

cantidad

10

10

25

15

30

idproducto

Total

35

45

Uso de la Clusula HAVING en GROUP BY


Ejercicios:

SELECT idproveedor,sum(unidadesenexistencia)
FROM productos
group by idproveedor
having sum(unidadesenexistencia)>200

SELECT idproveedor,sum(unidadesenexistencia)
FROM productos
group by idproveedor
having idproveedor<=5

Uso del GROUP BY


con la clusula COMPUTE
La clusula COMPUTE permite colocar al final de la
consulta una fila con un resultado de alguna funcin
matemtica aplicada.
Puede utilizarse tambin la clusula COMPUTE BY para
crear una especie de subtotales con su respectivo total
SELECT idproveedor,
SELECT idproveedor,
general.
unidadesenexistencia
unidadesenexistencia
FROM productos
ORDER BY idproveedor
COMPUTE sum(unidadesenexistencia)

FROM productos
ORDER BY idproveedor
COMPUTE sum(unidadesenexistencia)
by idproveedor
COMPUTE sum(unidadesenexistencia)

IdProveedor

Unidadesenexistencia

39

IdProveedor

Unidadesenexistencia

17

39

53

17

Sum

56

76

53

Sum

194

76

Sum

138

Sum

194

Registros Duplicados (DISTINCT)


En caso de que en la tabla se tenga especificado un
campo como clave principal, todos los registros de la
tabla en ese campo tendr informacin diferente, ya que
la clave principal por naturaleza impide tener registros
duplicados en el campo de clave principal.
Si la clave principal no se incluye, la tabla podr tener
registros con informacin duplicada.
Para no mostrar los registros con informacin duplicada
ser necesario insertar la palabra DISTINCT en la
instruccin SELECT ates de la lista de seleccin.
SELECT DISTINCT fechapedido FROM pedidos
SELECT DISTINCT cargo FROM empleados
SELECT DISTINCT cargo, regin FROM empleados

Ordenacin de
Registros (ORDER BY)
Una consulta generada por la clusula SELECT puede
presentar los resultados de manera organizada tanto
numricamente y alfabticamente.

Clusula T-SQL:

Sintaxis:

ORDER BY
SELECT [Campos] FROM [Tabla] ORDER BY [Campos] [Tipo de Ordenacin]

Los tipos de ordenacin puedes ser:

ASC - Ordenacin Ascendente


DESC - Ordenacin Descendente

SELECT * FROM empleados ORDER BY idempleado desc

SELECT * FROM empleados ORDER BY cargo asc

Mostrar los Valores Superiores/Inferiores


A travs de la clusula TOP, SQL permite mostrar los
registros que contengan los valores mas superiores o
inferiores de la consulta.
Para especificar que sean los primeros o ltimos se
agrega la clusula WITH TIES despus de la clusula
TOP.
SELECT TOP 3 *
FROM productos
order by unidadesenexistencia desc
SELECT TOP 3 *
FROM productos
Order BY unidadesenexistencia asc

SELECT TOP 3 with ties *


FROM productos
ORDER BY unidadesenexistencia asc

Consultas con Columnas Calculadas


Los resultados de una consulta vienen directamente de
la bas de datos, 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 travs de
una expresin
Las expresiones de SQL pueden incluir la suma, resta,
multiplicacin y la divisin.
Las columnas referenciadas en una expresin aritmtica
deben tener un tipo numrico.
select idpedido, idproducto, (preciounidad*cantidad)
as 'Total de Venta' from [detalles de pedidos]

Consultas de Varias Tablas


A travs de la clusula INNER JOIN ser posible realizar
consultas entre dos o ms tablas.
Para realizar consultas entre varias tablas, es
recomendable asignar Alias haciendo uso de la clusula
AS para nombrar las tablas.
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

Consultas de Varias Tablas


A travs de la clusula INNER JOIN ser posible realizar
consultas entre dos o ms tablas.
Para realizar consultas entre varias tablas, es
recomendable asignar Alias haciendo uso de la clusula
AS para nombrar las tablas.
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