Sunteți pe pagina 1din 8

SQL Lenguaje de consultas estructurado

Es un lenguaje interpretado e interactivo. No es un lenguaje propietario, es


decir, no es propiedad de ninguna marca, es una norma internacional con su
consecuente ventaja. No es muy crptico y por la estructura que tiene es un
lenguaje sencillo y muy potente.
SQL lo vamos a manejar en MARIAdb, que es lo mismo que MySQL
Utilizan la arquitectura Cliente-servidor. Por tanto el software puede dividirse
en dos partes: por un lado nos encontramos el sistema de gestin de
datos(SGBD)., el software gestiona la base de datos en el cliente(escuchar
audio min17)
Programa cliente ser cualquier programa de cualquier tipo que se conecte
con la base de datos y haga peticiones de la base de datos. Puede ser un
intrprete de comandos, un programa con interfaz grfica (workbrenchz),
una aplicacin que creemos en java
Para hacer una conexcion con una base de datos hay que dar una serie de
datoslo ms tpico son el host(la maquina donde est fsicamente el
servidor de la base de datos), el puerto que es el puerto de esa maquina
donde se escucha las peticiones de entrada y de salida, el usuario y la
contrasea. Estos comandos si se omiten se toman algunos por defectos
salvo usuario y contrasea.(existen mas parmetros).
En modo local nuestro host ser el LocalHost. El puerto por defecto ser el
33.06(se puede variar el 6 en adelante por si no funciona)
Forma general para llamar al cliente mysql:
Mysql u user p password
Casi todas las entradas SQL termina en punto y coma ;
La base de datos en uso recibir todas las acciones por defecto.
Un esquema es la creacin fsica de un conjunto de tablas vistas,
procedimientos y cualquier otro tipo de objetos relativos a un conjunto de
datos definidos. Informalmente, basa de datos.
MySQL no distingue en principio de maysculas y minsculas
En la lista de ejecucin evalua cualquier expresin incluyendo operaciones
matematicas y llamadas a funciones.
Cuando ponemos parntesis se indica a funciones predefinidas del sistema
Todo lo que este entre corchetes es opcional y las barras verticales |
significa que son opcionales entre ellas.

<lista de seleccin> se refiere a expresiones basadas en columnas,


funciones que laman al sistema
EJERCICIO. Tenemos una lista de los nombres de los clientes junto con su
ciudad y su pas, y lo queremos ordenado por pases.
Select contactFirstName,city,conuntry form customers order by country asc;
EJERCICIO Nombre de los clientes espaoles odenado por ciudad
alfabticamente
Select contactFirstName,city,conuntry form customers where
country=spain order by city asc;
EJERCICIO: Queremos una lista ordenada de todos los clients que no sean
espaoles ordenados por paises y dentro de paises ordenados por ciudad y
dentro de ciudad ordenado alfabticamente
Select contactFirstName,city,conuntry form customers where country!
=spain order by country,city asc;
La opcion por defecto en una ordenacion es ascendente

EJERCICIO Queremos los diez pagos mal altos que se hayan hecho con el
numero de cliente y la cuantia ordenado en cuantia de mayor a menor
Select contactFirstName,city,conuntry form customers where
country=spain order by city asc;
Alias de columna. Es un nombre diferente que nosotros asignamos a algo.
En particular, alias columna, es un nombre que pongo detrs del nombre de
la columna
EJERCICIO dar la suma de todos los pagos que se han hecho en total
Todos los ifentificadores SQL pueden ponerse entre y se reconocen
EJERCICIO queremos una lista de todos los nombres de los productos
ordenados por familia y dentro de cada familia por precio descendente
MariaDB [classicmodels]> select productName,productLine,buyPrice from
products o
rder by productLine,buyPrice desc;
EJERCICIO Una lista de todos los pedidios con sus lneas ordenados por
orden del pedido y luego por su lnea
Select
orderNumber,productCode,quantityOrdered,priceEach,orderLineNumber
from orderdetails order by orderNumber,orderLineNumber;

EJERCICIO eso mismo pero para los pedidos que lleguen hasta el 10105
Select orderNumber,productCode,quantityOrdered,Price
priceEach,orderLineNumber from orderdetails where orderNumber<=10105
order by orderNumber,orderLineNumber;
EJERCICIO QUEREMOS SACAR todos los pedidos distintos que se hayan
pedido en los pedido menores o igual que 10110
1 productos junto con su pedido hasta el 10110
priceEach,orderLineNumber from orderdetails order by
orderNumber,orderLineNumber;
EJERCICIO Crear una lista de los productos con su nombre y familia que
tengan un precio mayor de 100 o menor de 10
Select productName,productLine,buyPrice from products where buyPrice >
100 or buyPrice < 10;
EJERCICIO Queremos una lista de los clientes que sean espaoles y francs
pero que no sean de Madrid o pars
MariaDB [classicmodels]> select customerName,city,country from
customers where (
country="france" or country = "spain") and not city="madrid" and not
city="paris
";
EJERCICIO Una lista de los pases de nuestros clientes ordenado
alfabticamente
Select country from customers order by country;
EJERCICIO Lista de los pagos efectuados entre el 15 y el 30 de diciembre de
2003 de mas de 50.000
Select checkNumber,paymentDate,amount from payments where
(paymentDate>2003-12-15 and paymentDate<2003-12-30) and
amount>=50000;
EJERCICIO Numero de empleado mas apellido y el numero del jefe. Para los
jefes numero 1102 y 1143. Ordenado por numero de jefe y alfabticamente
Select employeeNumber,lastName,reportsTo from employees where
reportsTo=1102 or reportsTo=1143 order by reportsTo,lastName;
EJERCICIO Todos los productos cuyo precio este comprendido entre 50-60
Select productName,buyPrice from products where buyPrice between 50 and
60;

EJERCICIO Lista de los pagos efectuados entre el 15 y el 30 de diciembre de


2003 de mas de 50.000. Con between
Select checkNumber,paymentDate,amount from payments where
(paymentDate between2003-12-15 and 2003-12-30) and
amount>=50000;
EJERCICIO una lista de los clientes de Espaa, Francia, Alemania, Italia y
Suecia
Select customersName,country from customers where country in
(spain,france,germany,italy,sweden);
EJERCICIO queremos un listado con el numero del pedido, fecha de la
ordenacion del pedido y fecha de envoi de los pedidos que no han sido
enviados aun(quellos en los que la fecha de envoi es Null)
Select orderNumber,orderDate,shippedDate from orders where shippedDate
is null;
EJERCICIO haced una lista de todos los clients que no sean de estados
unidos, Canad y Japn
Select customersName,country from customers where country not in
(USA,Canada,Japan);
EJERCICIO decir el nombre del o los jefazos de la empresa
Select jobtTile,firsName,lastName from employees;
EJERCICIO cuantos productos hay
MariaDB [classicmodels]> select count(productCode) from products;
EJERCICIO cuantos pedidos hay en total. Cuantos pedidos enviados. La
diferencia entre ellos 2
MariaDB [classicmodels]> select count(*)"TotalPedidos",
count(shippedDate)"Envia
dos", count(*)-count(shippedDate)"No enviados" from orders;
EJERCICIO sacar el valor medio de los productos de la familia de aviones
MariaDB [classicmodels]> select avg(buyPrice) PrecioMedioAviones from
products w
here productLine="Planes";
EJERCICIO queremos una consulta que nos diga el producto mas caro, el
mas barato, y el valor medio de todos los productos. Buscar los productos
que tienen ese precio

MariaDB [classicmodels]> select min(buyPrice)"El mas barato",


max(buyPrice)"El m
as caro", avg(buyPrice)"La media" from products;
MariaDB [classicmodels]> select productName,buyPrice from products
where buyPrice=15.91 or buyPrice=103.42;
EJERCICIO cuantas veces se ha pedido el producto S72_3212
select count(quantityOrdered) from orderdetails where
productcode="S72_3212";
EJERCICIO Crear una lista de los clientes que no sean americanos y en el
primer campo queremos que aparezca su nombre y queremos la direccin
donde aparezca la direccin completa en un solo campo
calculado(contendr: la ciudad y el pas
select contactFirstName"Nombre",concat(city," ",country,"
",addressLine1)"direccion" from customers where country!="USA";
EJERCICIO Nombre Apellido cdigo de oficina y cargo ordenador por numero
de oficina y dentro de cada numero de oficina ordenador por orden
alfabetico por apellido
select concat(firstName," ",lastName," ",officeCode," ",jobTitle) from
employees order by officeCode, LastName;
EJERICICIO Encontradme todos los productos modelos Ford. Lo queremos
con su cdigo nombre y familia
select productCode,productLine,productname from products where
productName like "%Ford%" and productLine Like "%Cars%";
Listado de todos los coches clsico de 1960 decada ordenador de mayor a
menos
select productLine,productName,buyprice from products where
productName Like"196_%" and productLine Like"%Classic%" order by
buyprice desc;
EJERCICIO
select productLine,productName,buyprice from products where
substring(productName,1,4)<1950 and productLine Like"%Classic%" order
by buyprice desc;
Buscar CurDate() y curtime()
EJERCICIO
Decid cuantos das han transcurrido desde la fecha del pedido 10103

select datediff(curdate(),orderdate) from orders where


orderNumber=10103;
EJERCICIO
Numero aleatorio entre 1 y 6
select truncate(rand()*6+1,0);
EJERCICIO
Sacar 20 productos al azar con su cdigo y nombre
select productName,productCode from products order by rand() limit 20;
EJERCICIO
Sacar 20 clientes al azar
select truncate(rand()*6+1,0);
EJERCICIO
Cuantos productos existen de cada familia
select productLine,count(*) from products group by productLine;
EJERCICIO
Hacer una consulta donde aparezca la familia el precio del producto ms
caro de cada familia y el precio del producto ms barato y el precio medio y
cuantos productos tiene. Que aparezcan cabezeras que pongan precio
mximo, minimo y numero de producto.
MariaDB [classicmodels]> select productLine Familia,max(buyPrice)"Precio
Maximo",min(buyPrice)"Precio Minimo",avg(buyPrice)"Precio
medio",count(productLine)"Cantidad Exis
tente" from products group by productLine;
EJERCICIO
Cuantos pedidos hay en cada estado
select count(orderNumber),status from orders group by status;
EJERCICIOS
Cuantos pedidos han sido enviados cada dia
select count(*),shippeddate from orders group by shippedDate;
EJERCICIO

Queremos calcular el total de cada pedidio, donde tiene que aparecer el


numero de pedido y el total de cantidad econmica
select orderNumber,sum(priceEach) from orderdetails group by
orderNumber;
EJERCICIO
Lista de los nmeros de pedidos mas altos con sus cuantias
select orderNumber,sum(priceEach) from orderdetails group by
orderNumber order by sum(priceEach) desc limit 10;
EJERCICIO
Suma de los pagos realizados por cada cliente en los 6 primeros meses del
ao 2003. Ordenado de mayor a menor en el total de pagos.
MariaDB [classicmodels]> select sum(amount),customerNumber from
payments where paymentDate>="2003-01-01" and paymentDate<"200307-01" group by customerNumber order by sum
(amount) desc;
EJERCICIO
Cuantos empleados tiene cada jefe
select reportsTo,count(employeeNumber) from employees group by
reportsTo;
EJERCICIO
Queremos un listado del precio medio de la familia de productos, pero solo
para aquellas familias de productos cuyo precio medio sea superior a 50
select avg(buyPrice),productLine from products group by productLine having
avg(buyprice)>50;
EJERCICIO
Queremos un listado con la suma de los pagos realizados por los clientes en
el ao 2005 pero solo para los lcientes que superen los 50000
MariaDB [classicmodels]> select
round(sum(amount),2),customerNumber,paymentDate from payments
where year(paymentDate)=2005 group by customerNumber having
sum(amount)>5000
0 order by sum(amount) desc;
EJERCICIO
Lista de los pedidos cuyo total supere los 60000

select orderNumber,sum(priceEach*quantityOrdered)total from orderdetails


group by orderNumber having total>60000;
EJERCICIO
Listado de los pedidos que tengan solo dos lineas

S-ar putea să vă placă și