08-SQL Select Unidad04

También podría gustarte

Está en la página 1de 50

¿?

SQL

SELECT
Objetivos
SELECT
Select list SELECT nombre_cliente, id_banco FROM
cliente WHERE id_banco='BANN'

nombre_cliente id_banco
Ana BANN
Eva Isabel BANN
Alba BANN
Rosa Berenice BANN
Result Set Héctor BANN
Sintáxis SELECT
lista de
columnas SELECT nombre_cliente, id_banco
nombre
de la tabla
FROM cliente

filtro WHERE nombre_cliente LIKE ‘Ro%'


columnas
a agrupar GROUP BY id_banco
condición de
agrupación HAVING id_cliente > 5;

ordenamiento ORDER BY nombre_cliente;


Selección de Todas las
Columnas

*
Selección de Columnas
Selecciona el id_cliente y el nombre del mismo de la
tabla cliente

SELECT id_cliente, nombre_cliente FROM cliente ;


WHERE
Permite especificar un criterio de búsqueda

SELECT * FROM cliente WHERE id_cliente=1;


Operadores
DISTINCT: Obtiene valores únicos.

[ NOT ]BETWEEN : Definir rangos.

[ NOT ]IN : Definir conjunto de valores.

= != <> > >= < <= : Operadores relacionales.

AND y OR : Operadores de conexión.

[ NOT ]LIKE : Comparación de cadenas de caracteres.

[!] ~[*] : Comparación de expresiones regulares.

IS [NOT] NULL : Verifica valores nulos.


DISTINCT
Permite seleccionar sólo los valores distintos

SELECT DISTINCT id_banco FROM cliente;


BETWEEN
Permite seleccionar valores dentro de un rango

SELECT id_cliente,nombre_cliente, id_entidad_federativa


FROM cursos WHERE id_cliente BETWEEN 2 AND 5;
IN
Permite seleccionar valores de un conjunto
SELECT id_cliente, nombre_cliente, id_banco FROM
cliente WHERE id_cliente IN (1, 2);

SELECT id_cliente, nombre_cliente, id_banco FROM


cliente WHERE id_cliente NOT IN (1, 2);
Operadores Relacionales

= : Igual

!= , <> : Diferente

> : Mayor

>= : Mayor o igual

< : Menor

<= : Menor o igual


Ejemplo
Este ejemplo es equivalente al del BETWEEN

SELECT id_cliente,nombre_cliente, id_entidad_federativa


FROM cursos WHERE id_cliente >= 2 AND id_cliente <= 5;
OR
Este ejemplo es equivalente al del IN

SELECT id_cliente, nombre_cliente, id_banco FROM cliente


WHERE id_cliente =1 OR id_cliente = 2;
LIKE

% : Cero o mas caracteres

_ : Un carácter del conjunto

\\ : Elimina el significado especial del carácter especificado


LIKE
Permite manejar expresiones regulares
Nombre_cliente Apellido_paterno_cliente Compañia_cliente
Hector Guerrero Telcel
Raul Mateos Cel_Cel
Enrique Carmona Hitachi Cel
Juan Carlos Pedral Computo Cel
Adriana Flores Consultores Cel
Jaime Grabinsky CBI Cel

SELECT nombre_cliente,apellido_paterno_cliente,compania_cliente from


cliente WHERE compania_cliente LIKE 'Co__u%' ;

SELECT nombre_cliente,apellido_paterno_cliente,compania_cliente from


cliente WHERE compania_cliente LIKE ‘T%' ;
LIKE
Si se busca algún metacaracter este debe de
escaparse con \\
Nombre_cliente Apellido_paterno_cliente Compañia_cliente
Hector Guerrero Telcel
Raul Mateos Cel_Cel
Enrique Carmona Hitachi Cel
Juan Carlos Pedral Computo Cel
Adriana Flores Consultores Cel
Jaime Grabinsky CBI Cel

SELECT nombre_cliente,apellido_paterno_cliente,compania_cliente from


cliente WHERE compania_cliente LIKE '%\\_%' ;
~

* : Cero o mas veces carácter anterior.

. : Un carácter del conjunto.

[...] : Una familia de caracteres.

^ : Carácteres al inicio de la cadena.

$ :Caracteres al final de la cadena.


~
Permite manejar expresiones regulares
Nombre_cliente Apellido_paterno_cliente Compañia_cliente
Hector Guerrero Telcel
Raul Mateos Cel_Cel
Enrique Carmona Hitachi Cel
Juan Carlos Pedral Computo Cel
Adriana Flores Consultores Cel
Jaime Grabinsky CBI Cel

SELECT nombre_cliente,apellido_paterno_cliente,compania_cliente from


cliente WHERE compania_cliente ~ '^Co..u.*' ;

SELECT nombre_cliente,apellido_paterno_cliente,compania_cliente from


cliente WHERE compania_cliente ~ '^T.*' ;
~
Permite buscar por rangos de caracteres
Nombre_cliente Apellido_paterno_cliente Compañia_cliente
Hector Guerrero Telcel
Raul Mateos Cel_Cel
Enrique Carmona Hitachi Cel
Juan Carlos Pedral Computo Cel
Adriana Flores Consultores Cel
Jaime Grabinsky CBI Cel

select nombre_cliente,apellido_paterno_cliente,compania_cliente from


cliente WHERE compania_cliente ~ '^[A-H].*' ;
IS NULL
SELECT * FROM cliente WHERE id_banco IS NOT NULL;

SELECT * FROM cliente WHERE id_banco IS NULL;


ORDER BY
Permite ordenar el resultado en orden ascendente o descendente

SELECT id_cliente, nombre_cliente, apellido_paterno_cliente,


apellido_materno_cliente,id_banco FROM cliente ORDER BY
id_banco NULLS FIRST
LIMIT, OFFSET
SELECT id_cliente, nombre_cliente, apellido_paterno_cliente,
apellido_materno_cliente, id_banco FROM cliente WHERE id_banco
IN ('BANN','BANX','BWOW','BAZC') OR id_banco IS NULL ORDER
BY id_banco NULLS FIRST LIMIT 5 OFFSET 4

OFFSET

LIMIT
Funciones numéricas

COUNT(*) , COUNT( columna ) : Conteo

SUM( columna / expresión ) : Suma

AVG( columna / expresión ) : Promedio

MAX( columna / expresión ) : Máximo

MIN( columna / expresión ) : Mínimo


COUNT()
SELECT COUNT(*) FROM cliente; 11

SELECT COUNT(id_banco) FROM cliente; 10


SUM()

SELECT SUM(id_cliente) FROM cliente; 66


AVG()

SELECT AVG(id_cliente) FROM cliente; 6


MAX() y MIN()
SELECT MIN(id_cliente) FROM cliente;

SELECT MAX(id_cliente) FROM cliente;


Funciones de Cadenas

UPPER( columna ) : Mayúsculas

LOWER( columna ) : Minúsculas

TRIM( columna ) : Elimina espacios no utilizados

SUBSTR( columna,inicio,fin ) : Subcadenas

cadena || cadena : Operador de concatenación


UPPER(),LOWER() (1 de 2)
Primero convierte a minúsculas todos los valores
de la columna sexo_cliente...

SELECT * FROM cliente WHERE


LOWER(sexo_cliente)=‘m';
UPPER(),LOWER() (2 de 2)
... una vez convertidos hace la búsqueda de
acuerdo al criterio definido.

los
cambios
SELECT * FROM cliente WHERE no se
LOWER(sexo_cliente)=‘m'; almacenan
en la BD
LTRIM(),TRIM(),RTRIM()
SELECT TRIM(‘ José Ángel ‘) FROM cliente; ‘José Ángel’

SELECT LTRIM(‘ José Ángel ‘) FROM cliente; ‘José Ángel ’

SELECT RTRIM(‘ José Ángel ‘) FROM cliente; ‘ José Ángel’


SUBSTR()
SELECT SUBSTR(‘Eva Isabel‘,1,3) FROM cliente;

Eva
||
SELECT 'El nombre del cliente es ‘ || nombre_cliente || ' '||
apellido_paterno_cliente || ' ‘ || apellido_materno_cliente FROM
cliente WHERE id_cliente=3;

El nombre del cliente es Eva Isabel Cervantes Palacios


Asignación de Etiquetas
SELECT MAX(id_cliente) AS "Id más alto", MIN (id_cliente) AS
"Is más bajo" FROM cliente

Id más alto Id más bajo


11 1
GROUP BY
SELECT id_banco,SUM(id_cliente) AS "Total de Id de clientes"
FROM cliente GROUP BY id_banco;

id_banco Total de Id de clientes


BWOW 14
NULL 17
BAZC 75
BANN 89
BANX 5
Regla de agrupación
SELECT id_banco,sexo_cliente,COUNT(id_cliente) AS "Total
de clientes" FROM cliente GROUP BY id_banco,sexo_cliente;
HAVING
SELECT id_banco,sexo_cliente,COUNT(id_cliente) AS "Total
de clientes" FROM cliente GROUP BY id_banco,sexo_cliente
HAVING sexo_cliente='F';
UNION
SELECT 1 SELECT 2

Result Set Result Set


SELECT 1 SELECT 2

la cantidad de columnas y tipos de datos que


regresan ambos select deben de ser iguales así
como los tipos de dato
Ejemplo UNION
SELECT nombre_empleado ||’ ‘ ||apellido_paterno_empleado||’ ‘
||apellido_materno_empleado AS “Nombre Invitado” FROM empleado
UNION SELECT nombre_cliente ||’ ‘ ||apellido_paterno_cliente ||’ ‘
||apellido_materno_cliente AS “Nombre Invitado” FROM cliente;

Los valores repetidos aparecerán una sola vez


Ejemplo UNION
nombre invitado
Ana María Rueda
Katia Hernández Valladarez
Eva Isabel Cervantes Palacios
Silvia Bartriz Gonzalez Brambila
Genesis Colins Molina
Ricardo Martinez Rosales
Adriana Flores Flores
Raúl Mateos Palacios
Iddalys Iris Gurrola Méndez
Patricia Silva López
Ana Laura Silva López
José Ángel Hernández Rodríguez
Jaime Grabinsky Straiker
Edith García Molina
Alba Segura Zamora
Carlos Cadena Méndez
Raúl Mateos Palacios
Rosalía Elena Cruces Méndez
Rosa Berenice Silvana López
Héctor Guerrero Hernández
UNION DISTINCT
SELECT 1 SELECT 2

Result Set Result Set


SELECT 1 SELECT 2

Sólo mostrará los valores que no están repetidos


Ejemplo UNION DISTINCT
SELECT nombre_empleado ||’ ‘ ||apellido_paterno_empleado||’ ‘
||apellido_materno_empleado AS “Nombre Invitado” FROM empleado
UNION DISTINCTSELECT nombre_cliente ||’ ‘
||apellido_paterno_cliente ||’ ‘ ||apellido_materno_cliente AS “Nombre
Invitado” FROM cliente;

Sólo se mostrarán los valores que no están repetidos


UNION DISTINCT
nombre invitado
Katia Hernández Valladarez
Silvia Bartriz Gonzalez Brambila
Genesis Colins Molina
Ricardo Martinez Rosales
Adriana Flores Flores
Raúl Mateos Palacios
Iddalys Iris Gurrola Méndez
Patricia Silva López
Ana Laura Silva López
José Ángel Hernández Rodríguez
Jaime Grabinsky Straiker
Edith García Molina
Alba Segura Zamora
Carlos Cadena Méndez
Raúl Mateos Palacios
Rosalía Elena Cruces Méndez
Rosa Berenice Silvana López
Héctor Guerrero Hernández
UNION ALL
SELECT 1 SELECT 2

Result Set Result Set


SELECT 1 SELECT 2

Muestra todos los valores, incluso los repetidos


UNION ALL Ejemplo
SELECT nombre_empleado ||’ ‘ ||apellido_paterno_empleado||’ ‘
||apellido_materno_empleado AS “Nombre Invitado” FROM empleado
UNION ALL SELECT nombre_cliente ||’ ‘ ||apellido_paterno_cliente ||’ ‘
||apellido_materno_cliente AS “Nombre Invitado” FROM cliente;

Muestra todos los valores de ambos selects


UNION ALL
nombre invitado
Ana María Rueda
Katia Hernández Valladarez
Eva Isabel Cervantes Palacios
Silvia Bartriz Gonzalez Brambila
Genesis Colins Molina
Ricardo Martinez Rosales
Adriana Flores Flores
Raúl Mateos Palacios
Iddalys Iris Gurrola Méndez
Patricia Silva López
Ana Laura Silva López
Ana María Rueda
José Ángel Hernández Rodríguez
Eva Isabel Cervantes Palacios
Jaime Grabinsky Straiker
Edith García Molina
Alba Segura Zamora
Carlos Cadena Méndez
Raúl Mateos Palacios
Rosalía Elena Cruces Méndez
Rosa Berenice Silvana López
Héctor Guerrero Hernández
REALIZALA!

ACTIVIDAD
•Ejecutar sentencias SQL para obtener la
información de reportes comúnes.
Preguntas
Resumen

También podría gustarte