Capítulo: JPA, consultas SQL e JPQL
Aula: URI 2602 - Elaborando a consulta
Exercício de SQL da plataforma do BEE: 2605
https://judge.beecrowd.com/pt/problems/view/2602
Select Básico
Sua empresa está fazendo um levantamento de quantos clientes estão cadastrados nos estados, porém, faltou levantar os dados do estado do Rio Grande do Sul.Então você deve Exibir o nome de todos os clientes cujo estado seja ‘RS’.
customers | customers |
---|---|
Coluna | Tipo |
id (PK) | numeric |
name | varchar |
street | varchar |
city | varchar |
state | char |
credit_limit | number |
id | name | street | city | state | credit_limit |
---|---|---|---|---|---|
1 | Pedro Augusto da Rocha | Rua Pedro Carlos Hoffman | Porto Alegre | RS | 700,00 |
2 | Antonio Carlos Mamel | Av. Pinheiros | Belo Horizonte | MG | 3500,50 |
3 | Luiza Augusta Mhor | Rua Salto Grande | Niteroi | RJ | 4000,00 |
4 | Jane Ester | Av 7 de setembro | Erechim | RS | 800,00 |
5 | Marcos Antônio dos Santos | Av Farrapos | Porto Alegre | RS | 4250,25 |
name |
---|
Pedro Augusto da Rocha |
Jane Ester |
Marcos Antônio dos Santos |
- Java 21 : Utilizaremos a versão LTS mais recente do Java para tirar vantagem das últimas inovações que essa linguagem robusta e amplamente utilizada oferece;
- Spring Boot 3 : Trabalharemos com a mais nova versão do Spring Boot, que maximiza a produtividade do desenvolvedor por meio de sua poderosa premissa de autoconfiguração;
- Spring Data JPA: Exploraremos como essa ferramenta pode simplificar nossa camada de acesso aos dados, facilitando a integração com bancos de dados SQL;
- PostgreSQL: Banco de dados SQL .
--- URI Online Judge SQL
--- Copyright URI Online Judge
--- www.urionlinejudge.com.br
--- Problem 2602
CREATE TABLE customers (
id NUMERIC PRIMARY KEY,
name CHARACTER VARYING (255),
street CHARACTER VARYING (255),
city CHARACTER VARYING (255),
state CHAR (2),
credit_limit NUMERIC
);
INSERT INTO customers (id, name, street, city, state, credit_limit)
VALUES
(1, 'Pedro Augusto da Rocha', 'Rua Pedro Carlos Hoffman', 'Porto Alegre', 'RS', 700.00),
(2, 'Antonio Carlos Mamel', 'Av. Pinheiros', 'Belo Horizonte', 'MG', 3500.50),
(3, 'Luiza Augusta Mhor', 'Rua Salto Grande', 'Niteroi', 'RJ', 4000.00),
(4, 'Jane Ester', 'Av 7 de setembro', 'Erechim', 'RS', 800.00),
(5, 'Marcos Antônio dos Santos', 'Av Farrapos', 'Porto Alegre', 'RS', 4250.25);
/* Execute this query to drop the tables */
-- DROP TABLE customers; --
SELECT name FROM customers WHERE state = 'RS';
@Query(nativeQuery = true,value = "SELECT name FROM customers WHERE UPPER(state) = UPPER(:state)")
List<CustomerMinProjection> search1(String state);
@Query("SELECT new com.devsuperior.uri2602.dto.CustomerMinDTO(obj.name) FROM Customer obj WHERE UPPER(obj.state) = UPPER(:state)")
List<CustomerMinDTO> search2(String state);