SQL e JDBC: Consultas, Funções e Conexão com Banco de Dados
Consultas SQL e JDBC: Funções, Exemplos e Conceitos
Mostrar funcionários com nome, data de admissão, salário e nome do departamento cujo nome comece com a letra A:
SELECT e.ename, e.hiredate, e.sal, d.dname FROM emp e JOIN dept d ON e.deptno = d.deptno WHERE e.ename LIKE 'A%';
Crie uma consulta que exiba o nome do funcionário com a primeira letra maiúscula e as demais minúsculas (INITCAP):
SELECT INITCAP(ename) AS nome, INSTR(ename, 'A') FROM emp;
Exiba o nome e o ano de admissão de cada funcionário admitido em 1982 (TO_CHAR):
SELECT ename, TO_CHAR(hiredate, 'YYYY') AS ano_admissao FROM emp WHERE TO_CHAR(hiredate, 'YYYY') = '1982';
TO_DATE: INSERT INTO empregados (codigo, nome, dt_nasc, funcao, cod_depto, salario, codchefe) VALUES (9, 'Rivaldo da Silva', TO_DATE('14/04/1983', 'DD/MM/YYYY'), 'analista', 10, 5000, 4);
SELECT * FROM empregados WHERE codigo = 9;
TO_NUMBER: SELECT * FROM table1 WHERE TO_NUMBER(testcol) = 1234;
Crie uma consulta para exibir o cargo e a quantidade de pessoas em cada função (COUNT):
SELECT job, COUNT(deptno) FROM emp GROUP BY job;
Liste o menor e o maior salário de cada cargo (MAX, MIN e GROUP BY):
SELECT job, MAX(sal), MIN(sal) FROM emp GROUP BY job;
Subqueries: SELECT lista_de_selecao FROM tabela WHERE operador expr (SELECT lista_de_selecao FROM tabela);
UPPER: SELECT codigo_cliente, nome_cliente, sobrenome_cliente FROM tabela_clientes WHERE UPPER(sobrenome_cliente) = 'SILVA';
LOWER: SELECT codigo_cliente, nome_cliente, sobrenome_cliente FROM tabela_clientes WHERE LOWER(sobrenome_cliente) = 'silva';
Crie uma consulta que apresente o maior, o menor e a média do salário por departamento:
SELECT MAX(sal), MIN(sal), TRUNC(AVG(sal)) FROM emp GROUP BY deptno;
JDBC
JDBC consiste em uma biblioteca implementada em Java que disponibiliza classes e interfaces para o acesso ao banco de dados.
Arquitetura JDBC
1º o código Java chama a biblioteca JDBC; 2º o JDBC carrega um driver; 3º o driver conversa com um BD; 4º podemos ter mais de um driver, ou mais de um BD; 5º podemos trocar o BD sem precisar alterar o código da aplicação.
Tipos de JDBC
Driver nativo: converte as chamadas JDBC diretamente no protocolo do BD e é implementado na linguagem Java.
Try/catch
Try/catch é um tratamento de erro: o bloco try recebe o valor, processa e verifica se está errado; o bloco catch apresenta ao usuário uma mensagem mais amigável.
Classes e Interfaces
DriverManager: responsável por criar uma conexão com o BD a partir de um driver específico. Ex.: MySQL, Oracle, DB2, Sybase.
Connection: classe responsável por manter uma conexão aberta com o banco. Ex.: commit, rollback, close.
Statement: gerencia e executa instruções SQL. Ex.: executeUpdate.
PreparedStatement: gerencia e executa instruções SQL, permitindo também a passagem de parâmetros em uma instrução. Ex.: execute, setDate, setInt, setString.