SQL Database Exercise: Clients, Carriers and Orders Queries

Computer science2.63 KB

SQL Database Exercise: Clients, Carriers and Orders

CREATE DATABASE EX4_1;

USE EX4_1;

Creating the clients table

CREATE TABLE clientes
(codcli INT,
nome VARCHAR(30),
endereço VARCHAR(40),
cidade VARCHAR(30),
fone CHAR(9),
CONSTRAINT pk_clientes PRIMARY KEY(codcli));

INSERT INTO clientes VALUES
(1,'Elevanir','Rua do Parque','Mauá','945653285'),
(2,'Lucas','Rua do Iorgute','Mauá','954658545'),
(3,'Ludirbe','Rua da Vadiagem','Santo André','954785452'),
(4,'Lairdison','Rua do Fermento','São Bernardo do Campo','954658532'),
(5,'Leandro','Rua do Bolo','Norte','954658545');

Creating the carriers table

CREATE TABLE transportadora
(codigo INT,
nome VARCHAR(20),
CONSTRAINT pk_transportadora PRIMARY KEY(codigo));

INSERT INTO transportadora VALUES
(1,'Fedex'),
(2,'Polar Express'),
(3,'TNT'),
(4,'PAC'),
(5,'Sedex');

INSERT INTO transportadora VALUES
(6,'Farra');

Creating the orders table

CREATE TABLE pedidos
(numped INT,
cliente INT,
data_entrega DATETIME,
transport INT,
CONSTRAINT pk_pedidos PRIMARY KEY(numped),
CONSTRAINT fk_pedidos FOREIGN KEY (cliente) REFERENCES clientes(codcli),
CONSTRAINT fk_pedidos1 FOREIGN KEY (transport) REFERENCES transportadora(codigo));

INSERT INTO pedidos VALUES
(1,2,'20160809',3),
(2,3,'20160809',2),
(3,1,'20160809',1),
(4,5,'20160809',4),
(5,4,'20160809',5);

INSERT INTO pedidos VALUES
(6,4,'20160910',5);

INSERT INTO clientes VALUES
(6,'Elevanilson','Rua do Paraiba','Mauá','945685485');

Queries

-- c)

SELECT clientes.nome, pedidos.cliente FROM clientes INNER JOIN pedidos ON clientes.codcli = pedidos.numped;

-- d)

SELECT clientes.nome, pedidos.numped FROM clientes LEFT OUTER JOIN pedidos ON clientes.codcli = pedidos.numped WHERE pedidos.numped IS NULL;

-- e)

SELECT transportadora.nome, pedidos.numped FROM transportadora LEFT OUTER JOIN pedidos ON transportadora.codigo = pedidos.numped WHERE pedidos.numped IS NULL;

-- f)

SELECT transportadora.nome, pedidos.numped FROM transportadora LEFT OUTER JOIN pedidos ON transportadora.codigo = pedidos.numped WHERE transportadora.nome = 'Sedex';

-- g)

SELECT COUNT(cliente) AS 'Numeros de pedidos para o cliente 2' FROM pedidos WHERE cliente LIKE 2;

-- h)

SELECT MAX(data_entrega) AS 'Entrega mais recente' FROM pedidos;

-- i)

SELECT COUNT(transport) AS 'Numero de pedidos para a transportadora Fedex' FROM pedidos WHERE transport LIKE 1;

Download

PDF Word HTML