---
# System prepended metadata

title: SQL

---

# SQL



---
selecionar a base de dados
**use NORTHWND**

selecionar todos os registos da tabela
**select * from categories(tabela)**

selecionar uma coluna e dar-lhe o nome de x
**select categoryName as 'categoria' from categories**

mostrar os q comecem pela letra c
**where CategoryName like 'C%'** 

---
selecionar todos os registos da tabela

**select * from Orders**

selecionar uma coluna e dizer mostrar os maior ou igual a 3 e que tenha na coluna y o nome indicado
**where EmployeeID >=9 AND ShipCity='LYON'**

---
selecionar todos os registos da tabela
**select * from Customers**

ordenar descendente a coluna x e ordenar por ascendente na coluna y
**Order by CompanyName DESC, ContactTitle ASC**

---
selecionar todos os registos da tabela

**select * from Customers**

mostrar os registo que na coluna x contenham a palavra

**where ContactTitle IN ('Owner')**


---

select * From Products

Mostrar o valor mais alto do selecionado 

**select max(UnitPrice) from Products**

Mostrar o valor mais baixo do selecionado 
**select min(UnitPrice) from Products**

Mostrar a media do  selecionado 
**select avg(UnitPrice) from Products**

mostrar a soma do selecionado
**select sum(UnitPrice) from Products**


----
selecionar coluna sem mostrar registos repetições de uma tabela.

**select distinct (shipcity) from Orders**


## Operadores relacionais
* igual 
* maior
* menor
* maior e igual
* menor e igual 


## Operadores Lógicos

* And True and false
* OR true or false
* NOT not true/not false


---
---
Use NORTHWND

-- Exercicio 1
-- List of first 5 employees 
select * from Employees
where EmployeeID <= 5

--Exercicio 2
-- Select Just the name of employees 
select FirstName,LastName from Employees

--Exercicio 3
--Get Name of employees whose employees id is either 1 or 2 or 4
select FirstName,LastName from Employees
where EmployeeID IN (1,2,4)

--Exercicio 4
--Select list of all orders where Employee id is more than 5 but less than 10
select * from Orders
where EmployeeID between 5 and 10

--Exercicio 5
--Get list of all Territories which are ordered by territoryid in descending order
select * from Territories
Order by TerritoryID DESC

--Exercicio 6
--Get list of all products whose ProductName contains either oo or ee anywhere in ProductName

select * from Products
where ProductName IN ('oo','ee')  

--Exercicio 7
--Get list of all products whose ProductName does not contain either oo or ee anywhere in ProductName

select * from Products
where ProductName NOT IN ('oo','ee')

--Exercicio 8
-- Get list ProductName , UnitsinStock on products where unitPrice is 18 but the ProductName column name should be fetched as 'Produtos'
select ProductName as 'Produtos',UnitsInStock  from Products 
where UnitPrice = 18

--Exercicio 9
--Get name of Country on Costumers but "delete" to duplicates
select distinct Country from Customers 

--Exercicio 10
--Select all records of employees where the value of the city starts with the letter "a"
select * from Employees
where City not like '%a' 

--Exercicio 11
--Select all records of employees where the first letter of the city starts with anything from an "a" to and "f"
select * from Employees
where City between '%a' and '%f'

--Exercicio 12
--USe the BETWEEN operator to select all the records where the value of the ProductName column is alphabetically between 'Geiost' and 'Pavlova'
select * from Products
where ProductName between 'Geitost' and 'Pavlova'

--Exercicio 13
--List the number of customers in each country, ordered by country with the most customers first
select Count(CustomerID),Country from Customers
Group by Country
order by Country desc