Documente Academic
Documente Profesional
Documente Cultură
SQL
Curso:
Consulta de datos
SELECT
Esta sentencia nos permite seleccionar los campos de un o varias
tablas, si queremos toda la información colocaremos (*) de lo contrario
mencionaremos los campos.
FROM
Con esta sentencia indicaremos en que tabla buscaremos
información.
Ejemplo:
Select * from employees
Select * from products
SQL
WHERE
Esta sentencia filtra registros que cumplan la condición dada, obteniendo
un valor de verdadera o falsa.
Se utiliza cuando no se desea que devuelva todas las filas de una tabla,
sino que cumplan ciertas condiciones.
Condiciones
Son expresiones lógicas a comprobar la condición de filtro, que tras su
resolución devuelve para cada fila TRUE o FALSE, en función de que cumpla
o no. Se puede utilizar cualquier expresión lógica y en ella utilizar diversos
operadores como:
>(mayor)
>= (mayor o igual)
<(menor)
<=(menor igual)
= (igual)
<> o != (distinto)
is [ not ] NULL (para comprobar si el valor de una columna es o no nula,
es decir, si contiene algún valor).
Se dice que una columna de una fila es NULL si esta completamente vacía.
Hay que tener en cuenta que si ha introducido cualquier dato, incluso en un
campo alfanumérico si se introduce una cadena en blanco o un cero en un
campo numérico, deja de ser NULL.
SQL
a) Una condición
select * from Products where CategoryId=2
BETWEEN
Es utilizado para especificar un rango de valores.
Su sintaxis: campo [not ] between valor1 and valor2
IN
Devuelve aquellos registros cuyo campo indicado coincide con alguno de los indicados en
la lista.
Su sintaxis: campo [not ] in (valor1,valor2,valor3,…)
LIKE
Se utiliza para búsqueda de patrones de texto.
‘%’ indica una secuencia de cero o mas caracteres
‘-’ indica un único carácter.
[ ] cualquier carácter único, dentro del rango especificado por ejemplo [ a-f] o del conjunto
especificado [ abcdef]
[ ˄] cualquier carácter que no esta dentro del rango especificado. Por ejemplo [ ˄a-f ] o del
conjunto especificado [˄ abcdef]
Por ejemplo:
El nombre empieza por A: nombre like ‘A%’
El nombre acaba con A: nombre like ‘%A’
El nombre contiene una A: nombre like ‘%A%’
El nombre empieza por A y después contiene un solo carácter cualquiera: nombre like ‘A-’
El nombre empieza por A, después cualquier carácter, luego una E y al final cualquier
cadena de caracteres: nombre like ‘A-E%’.
.
SQL
Si queremos buscar por una palabra, letra o frase entra a tallar un comodin que es el signo
de porcentaje(%).
En este caso todos los nombres que empiec%en con la letra c.
Select ProductId, ProductName from Products
where productName like ‘c%’
’
SQL
ORDER BY
Ordena uno o mas campos, ya sea en forma ascendente como descendente
(en orden ascendente por omisión), los valores nulos son listados primero.
ASC/DESC
ASC es el valor predeterminado, especifica que la columna indicada en la
clausula order by se ordena en forma ascendente, o sea de menor a mayor. Si
por el contrario se especifica DESC se ordena de forma descendente (de mayor
a menor).
SQL
Sintaxis:
Forma descendente.
TOP
Devuelve un numero determinado de registros. Esta sentencia se guía por la
ordenación.
Sintaxis: Select top n * from tabla
Donde: “n” es la cantidad de registros que se quiere.
Ejemplo 1:
Select top 3 *
from Products
Ejemplo 2:
Ordenar los 10 primeros registros de detalle de orden que tenga la mayor
cantidad vendida.
Select top 10 orderId, productId, quantity
from order detalle
order by quantity desc
SQL
orderdate
Permite seleccionar una parte de la fecha de un registro y establecer un valor
de comparación a este, estableciendo verdadero o falso.
Ejemplo 1:
Select *
from orders
where year(orderdate)= ‘1996’
Datepart
Permite establecer argumento de comparación de un determinado campo,
siendo este (dd), mes(mm), año(yyyy).
Select *
from orders
where employeeID in (2,3,4,5) and
customerID like ¨’[a-g]%’ and
datepart(mm orderdate)= ‘07’ and
datepart(dd orderdate)= ‘31’
SQL
Select *
from customers
order by contactName
2.- Seleccionar todos los campos de la tabla ordenes, ordenados por fecha de
orden, descendentemente.
Select *
from orders
order by orderdate desc
SQL
3.- Seleccionar todos los campos de la tabla ordenes de compra, ordenados por
cantidad pedida, ascendentemente.
Select *
from orders.details
order by quantity
4.- Seleccionar todos los productos, cuyos nombres empiecen con la letra p y
tienen un precio unitario comprendido entre 10 y 20.
Select *
from product
where (productName like ‘p%’) and unitPrice between 10 and 20
5.- Seleccionar todos los clientes de los países usa, france, spain.
Select *
from customers
where count in (‘usa’,’france’,’spain’)
SQL
6.- obtener todos los productos discontinuados y sin stock, que pertenezcan a
las categorías 1,3,4 y 7.
Select *
from products
where (discontinued =1) and (unitSinStock=0)
7.- Seleccionar todos las ordenas hechas por el empleado con código 2,5 y 7 en
el año 1996
Select *
from orders
where employeeID in (2,5,7) and
year (orderdate)=1996
-- otra forma
Select *
from orders
where employeeID in (2,5,7) and
datepart (yyyy orderdate)=1996
SQL
8.- Seleccionar todos los campos de la tabla clientes que cuenten con un fax
select *
from customers
where fax <> ‘is null’
-- otra forma
select *
from customers
where fax is not null
9.- Seleccionar todos los clientes que no cuenten con un fax del país de usa
select *
from customers
where (fax is null ) and country =‘usa’
SQL
8.- Seleccionar todos los campos de la tabla clientes que cuenten con un fax
select *
from customers
where fax <> ‘is null’
-- otra forma
select *
from customers
where fax is not null
9.- Seleccionar todos los clientes que no cuenten con un fax del país de usa
select *
from customers
where (fax is null ) and country =‘usa’
SQL
11.- Seleccionar todos los campos del cliente cuya compañía empiece con la
letra de A hasta la D y que pertenezca al país de Francia.
select *
from customers
where companyName like ‘[a-d]%’ and country =‘france’
order by address
SQL
12.- Seleccionar todos los campos del proveedor, cuya compañía no comience
con las letras de la B a la G y que pertenezca al país UK, ordenados por
nombre de la compañía.
select *
from supppliry
where companyName like ‘[˄B-G]%’ and country =‘uk’
order by address
-- otra forma
select *
from supppliry
where companyName not like ‘[B-G]%’ and country =‘uk’
order by address
SQL
13.- Seleccionar los productos vigentes cuyos precios unitarios estén entre 35 y
250, sin stock en almacén. Pertenecientes a las categorías 1,3,4,7 y 8 que son
distribuidas por los proveedores 2,4,6,7 y 9.
Solución: nota: discontinued=0 es producto vigente
discontinued=1 es producto discontinuado
Select * from products aquí ejecutar para ver los nombres de los
Where (discontinued=0) and campos
(UnitPrice between 35 and 250) and
(UnitsinStock = 0) and
(categoryID in (1,3,4,7,8) and
supplierID in (2,4,6,7,9)
SQL
Seleccionar los 7 productos con precio mas caros, que cuenten con stock en el
almacén.
Solución:
Select top 7 from products
(where UnitsinStock <>0)
Order by unitPrice desc
Seleccionar los 9 productos con menos stock en almacén, que pertenezcan a la
categoría 3,5 y 8.
Solución:
Select top 9 from products
(where categoryId in (3,5,8)
Order by unitsinStock
SQL
LA SETENCIA UPDATE
Para la actualización de datos SQL dispone de la sentencia UPDATE. La
sentencia UPDATE Devuelve un numero determinado de registros. Esta
sentencia se guía por la ordenación.
Sintaxis: Select top n * from tabla
Donde: “n” es la cantidad de registros que se quiere.
Ejemplo 1:
Select top 3 *
from Products
Ejemplo 2:
Obtener los 10 primeros registros de detalle de orden q que tenga la mayor
cantidad vendida.
Select top 10 orderId, productId, quantity
from order detalle
order by quantity desc
SE
ACABO!!!!!