Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Archivomaterial 2020528221349

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

Consultas SQL básicas, consultas

anidadas
UNEMI - FACI
Sentencias: Data Manipulation Language (DML)
 La sentencia SELECT
 Es el comando que más se utiliza y es la forma fundamental de consultar
datos.
 Selecciona Registros y Columnas de las tablas.
 Básicamente se compone de tres palabras reservadas:
 SELECT - Especifica las columnas.
 FROM - Especifica las tablas.
 WHERE - Especifica los registros.
 SELECT * Recupera todas las columnas

Sintaxis básica de SELECT


SELECT [ALL | DISTINCT] <Columnas que van a ser escogidas, operaciones y
variables>
[FROM] <Lista de Tablas que serán evaluadas>
[WHERE] <Criterios que deberán cumplirse para la selección de registros>
[GROUP BY] <columnas para agrupar funciones agregadas>
[HAVING] <criterios que deben cumplirse para las funciones agregadas>
[ORDER BY] <especificación opcional de como debe ordenarse los
resultados>
SELECT
Seleccionando Columnas

Una sencilla consulta que recupera las columnas: pub_id, pub_name, city, state de
la tabla publishers de la base de datos Pubs.

 Los nombres de las columnas son separados por una coma. Ejemplo:
SELECT pub_id, pub_name, city, state
FROM publishers

El resultado es:
SELECT
Utilizando literales
• Resultados del SELECT más descriptivos.
• Delimitados por comillas simples o dobles. Ejemplo:

SELECT pub_id, pub_name, 'Ciudad:', city, state


FROM publishers

El resultado es:
SELECT
MANIPULANDO DATOS
En esta unidad vamos a ver la manipulación de los siguientes datos:
•Manipulando Datos Numéricos.
Operadores Aritméticos
Funciones Matemáticas.
•Manipulando Datos Alfanuméricos.
•Manipulando Datos de Fecha y Tiempo.
•Funciones del Sistema.
SELECT
Datos Numéricos: Operadores Numéricos
Ejecutan cómputos a partir de columnas ó constantes numéricas.
Los operadores numéricos son:

Datos Numéricos: Operadores Comparativos


Los operadores comparativos contrastan una específica diferencia entre
dos expresiones. Estos son los operadores comparativos:
SELECT
Investigar:
•FuncionesfMatemáticas
•FuncionesfAlfanuméricas
•FuncionesfFechayyyHora
SELECT
SeleccionandoRegistros
La cláusula WHERE en la sentencia SELECT determina los registros a
recuperar de acuerdo a las condiciones de búsqueda.

Condiciones de búsqueda:
SELECT
Seleccionando Registros Mediante Comparaciones
La palabra reservada BETWEEN permite realizar búsquedas en un rango
de valores. Delimite los valores con comillas simples ó dobles para tipos
de datos: char, varchar, text, nchar, nvarcahr, ntext, datetime y
smalldatetime.
Sintaxis:
SELECT Select_list
FROM table_list
WHERE expresión [NOT] BETWEEN expresión AND expresión
SELECT
a)Seleccionando datos dentro de un rango
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales BETWEEN 4095 AND 12000
GO
El resultado es:

title_id ytd_sales
-------- -----------
BU1032 4095
BU7832 4095
PC1035 8780
PC8888 4095
TC7777 4095
SELECT
b)Seleccionando datos fuera de un rango
USE pubs
GO
SELECT title_id, ytd_sales
FROM titles
WHERE ytd_sales NOT BETWEEN 4095 AND 12000
GO
El resultado es:
title_id ytd_sales
-------- -----------
BU1111 3876
BU2075 18722
MC2222 2032
MC3021 22246
PS1372 375
PS2091 2045
PS2106 111
PS3333 4072
PS7777 3336
TC3218 375
TC4203 15096
SELECT
Seleccionando Registros Mediante Listas
La palabra reservada IN permite realizar búsqueda que coincida con una
lista de valores.
Sintaxis:
SELECT Select_list
FROM table_list
WHERE expresión [NOT] IN (Lista_Valores)
USE pubs
SELECT au_lname, state
FROM authors
WHERE state IN ('IN', 'MD')

El resultado es:

au_lname state
------------------ -----
DeFrance IN
Panteley MD
SELECT
Seleccionando Registros Mediante Cadenas
La palabra reservada LIKE permite realizar búsqueda con subcadenas.
Sintaxis:

SELECT Select_list
FROM table_list
WHERE expresión [NOT] LIKE “String”
Posee 4 caracteres „Wildcard‟:
SELECT
Ejemplo:
LIKE “AR%” Nombres que comiencen con “AR”.
LIKE “_on%” Nombres de tres letras que terminen en “on”
LIKE “[AP]%” Nombres que comiencen con “A” ó “P”.
LIKE “[^A]%” Nombres que no comiencen con “A”.
SELECT
Seleccionando Registros sobre Valores Desconocidos
Un NULL (Valor Nulo) significa ausencia de valor para una determinada
columna.Para seleccionar registros con valores NULOS utilice la palabra
reservada IS NULL en la cláusula WHERE. En Ordenación Ascendente el
NULL se presenta primero.
Sintaxis:
SELECT * FROM titles
WHERE ytd_sales IS NULL
SELECT
Ejemplo:
USE pubs
SELECT title_id, advance
FROM titles
WHERE advance < $5000 OR advance IS NULL
ORDER BY title_id
El resultado es:
title_id advance
-------- --------------------------
MC2222 0.00
MC3026 (null)
PC9999 (null)
PS2091 2,275.00
PS3333 2,000.00
PS7777 4,000.00
TC3218 (null)
SELECT
Seleccionando Registros sobre varios Argumentos de Búsqueda
Se puede combinar varios argumentos de búsqueda a través de operadores
lógicos como AND, OR y NOT. Orden de evaluación: NOT, AND y OR.
Se pueden cambiar el orden de evaluación mediante el uso de Paréntesis.
Ejemplo:
USE pubs
SELECT au_id, au_lname, au_fname,phone
FROM authors
WHERE (au_lname LIKE 'G%' OR au_lname LIKE 'D%')
AND state = 'CA'
El resultado es:

au_id au_lname au_fname phone


----------- --------------- ----------- ------
427-17-2319 Dull Ann 415 -7128
213-46-8915 Green Marjorie 415 986-7020
472-27-2349 Gringlesby Burt 707 938-644
SELECT
Eliminando Valores Duplicados
La Palabra reservada DISTINCT elimina los valores duplicados de
alguna expresión del Select_list.
Sintaxis:
SELECT [ALL|DISTINCT] Select_List
FROM tabla
WHERE condiciones
SELECT
Ejemplo:
SELECT DISTINCT address
FROM authors
WHERE state NOT IN ('CA')
El resultado es:

address
------------------------
10 Mississippi Dr.
1956 Arlington Pl.
22 Graybar House Rd.
2286 Cram Pl. #86
3 Balding Pl.
55 Hillsdale Bl.
67 Seventh Av.
Sentencias Select (Uso de Join)

Oscar X. Bermeo A.
Las consultas requieren Las tablas contienen
que se unan tablas al datos específicos en cada
momento de mostrar los una, pero al enlazarse
datos presenta información

Para mostrar datos de Al momento de hacer la


diferentes consultas se consulta se relacionan las
deben utilizar las claves tablas por estas claves
primarias y claves que por lo general tienen
secundarias el mismo nombre

Si no se hace la relación
en la consulta,
específicamente en
Where, los datos salen
duplicados
Sintaxis de Select con JOIN
SELECT <campos> FROM <tabla1 JOIN tabla2>
ON (tabla1.campo=tabla2.campo)

Ejemplo:
SELECT nomEmpleado,nomCargo FROM
Empleado JOIN Cargo
ON (Empleado.idCargo=Cargo.idCargo)
La sentencia también puede ir acompañada de la cláusula WHERE

En donde se puede hacer una discriminación para que solo se


muestren ciertos registros

Ejemplo:

Se requiere mostrar solo los registros que el nombre del


empleado empiecen con A

SELECT nomEmpleado,nomCargo FROM


Empleado JOIN Cargo
ON (Empleado.idCargo=Cargo.idCargo)
WHERE nomEmpleado like ‘a%’
Sintaxis de Select sin JOIN
SELECT <campos> FROM <tabla1, tabla2,…tablaN>
WHERE tabla1.campo=tabla2.campo AND …
tablaN.campo=tablaN+1.campo

Ejemplo:
SELECT nomEmpleado,nomCargo FROM
Empleado, Cargo
WHERE Empleado.idCargo=Cargo.idCargo
Para poner más condiciones se recurre al operador lógico AND

En donde se puede hacer una discriminación para que solo se


muestren ciertos registros

Ejemplo:

Se requiere mostrar solo los registros que el nombre del


empleado empiecen con A

SELECT nomEmpleado,nomCargo FROM


Empleado, Cargo WHERE Empleado.idCargo=Cargo.idCargo
AND nomEmpleado like ‘a%’
AMBIGÜEDADES
En ocasiones las tablas tienen un campo con nombres repetidos en
otra tabla

En ese caso cuando se liste los campos después del SELECT se debe
especificar el nombre de la tabla

Seguido de un punto y después el nombre del campo, de esa forma se


especifica de que tabla se requiere mostrar dicho campo

Supongamos que en la consulta anterior la tabla Empleado tiene


un campo fecha que corresponde a su fecha de ingreso y la tabla
Cargo también tiene una campo fecha de ingreso, en ambos caso
se llaman fecha.

SELECT nomEmpleado,nomCargo, Empleado.fecha,Cargo.Fecha


FROM Empleado, Cargo
WHERE Empleado.idCargo=Cargo.idCargo

También podría gustarte