Guia Básico de SQL
Boa tarde pessoal,
Conforme o post anterior (Por onde começar em Oracle?), eu irei focar o post de hoje nos iniciantes em oracle. Então nada mais coerente do que começar falando de SQL. É importante frisar que existem inúmeros comandos e conceitos no SQL, logo, irei abordar apenas os que acho de maior importância, no sentindo de tentar passar o básico de SQL. Vamos lá!
*SQL: É uma Linguagem de Consulta Estruturada criada nos anos 70 pela IBM, que é adotada como linguagem padrão pela maioria dos bancos de dados relacionais atuais. O SQL permite comunicar-se com o servidor Oracle e tem as seguintes vantagens:
• Eficiência
• Facilidade de aprendizagem e uso
•Funcionalidade completa (O SQL permite definir, recuperar e manipular dados das tabelas.)
*Executando Comandos em SQL:
1º Comando CREATE DATABASE (P/ criar um banco de dados):
Ex.:
create database nome_da_base;
2º Comando CREATE TABLE (P/ criar uma tabela):
Ex.:
create table clientes
(
cli_Codigo integer,
cli_Nome varchar(30),
cli_Cidade varchar(20),
cli_Sexo char(1)
);
create table filmes
(
fil_Codigo integer,
fil_Nome varchar(30),
fil_Genero varchar(15),
fil_Preco numeric(4,2)
);
3º Comando INSERT INTO (P/ inserir dados na tabela):
Ex.:
insert into clientes (cli_codigo, cli_nome, cli_cidade, cli_sexo)
values (1, ‘Antonio’, ’Belem’, ‘M’);
insert into clientes (cli_codigo, cli_nome, cli_cidade, cli_sexo)
Values (2, ‘Marilia’, ’Macapa’, ‘M’);
4º Comando [SELECT] (P/ Visualizar, consultar, pesquisar e selecionar registros dados do BD):
Select cli_codigo, cli_nome, cli_cidade, cli_sexo from clientes;
Ou
Select * from clientes;
5º Cláusula Order By:
A cláusula Order By muda a ordem de apresentação do resultado da pesquisa e possibilita colocar também em ordem ascendente ou descendente.
Ex:
select * from clientes order by cli_nome;
6º Restrição where:
Com where é possível restringir os dados (tuplas) que serão listados, ou seja, efetuar uma condição para que o mesmo apareça na listagem.
*Operadores Lógicos:
=> igual maior que
= maior que ou igual a
= 2;
Select * from clientes where cli_codigo >= 2 and cli_codigo = 2 and cli_codigo = 2 and cli_codigo <= 5
And cli_cidade = ‘Belem’ and cli_sexo = ‘F’
Like = com padrão de caracteres
A linha abaixo indica que é para mostrar todas tuplas (registros) em que o número de clientes comece com a letra G.
Ex:
Select * from clientes where cli_nome like ‘G%’;
A linha abaixo indica que é para mostrar todas tuplas (registros) em que o número de clientes Termine com a palavra Campos.
Ex:
Select * from clientes where cli_nome like ‘%Campos’;
A linha abaixo indica que é para mostrar todas tuplas (registros) em que o número de clientes possua a palavra ‘Campos’ no meio (em qualquer lugar).
Ex: Select * from clientes where cli_nome like ‘%Campos%’;
Between …. and …. = lista entre 2 valores.
Select * from clientes where cli_codigo between 2 and 5;
É a mesma coisa que:
Select * from clientes where cli_codigo>=2 and cli_codigo <=5;
Nas duas linhas acima, irá mostrar todas as tuplas em que o código seja maior ou igual a 2 e menor ou igual a 5, ou seja, entre 2 e 5.
select * from clientes where cli_codigo not between 2 and 5;
É a mesma coisa que:
select * from clientes where cli_codigo 5;
Nas duas linhas acima, irá mostrar todas as tuplas em que o código seja menor que 2 e maior que 5.
In (…). = lista valores pré-definidos
select * from clientes where cli_codigo in(2,4,6);
É a mesma coisa que:
select * from clientes where cli_codigo = 2 or cli_codigo = 4 or cli_codigo = 6;
Nas duas linhas acima, irá listar todas as tuplas em que o código seja 2 ou 4 ou 6.
select * from clientes where cli_codigo not in (2,4,6);
É a mesma coisa que:
Select * from clientes where cli_codigo 2 and cli_codigo 4 and cli_codigo 6.
Nas duas linhas acima irá listar todas as tuplas em que o código seja diferente 2 ou 4 ou 6.
*Manipulando Colunas das tabelas:
select cli_codigo ‘Codigo do cliente’, cli_nome ‘Nome do Cliente’, cli_cidade ‘Cidade do cliente’, cli_sexo ‘Sexo’ from clientes;
Distinct
A cláusula Distinct elimina duplicidades, não mostrando portanto dados duplicados como resultado de uma pesquisa.
select distinct cli_cidade from clientes;
Primary Key
Criando a chave principal, faz com que um determinado campo não possa ser repetido.
Ex.:
create table clientes
(
cli_Codigo integer not null,
cli_Nome varchar(30) not null,
cli_cidade varchar(20),
cli_sexo char(1),
primary key (clig_codigo)
);
Drop
Elimina uma tabela, seus dados, atributos e referências.
Ex.:
drop table clientes;
Alter
Este comando permite inserir/eliminar e modificar atributos nas tabelas já existentes.
Ex:
alter table clientes add cli_email varchar (30);
alter table clientes drop cli_email; //apaga este atributo
alter table clientes modify cli_email varchar (40);
Describe
Este comando permite visualizar a estrutura das tabelas
Ex:
describe clientes;
Update
Este comando permite alterar os dados da tabela
Ex:
update clientes set cli_sexo = ‘M’;
update clientes set cli_sexo = ‘F’ where cli_codigo = 2;
update clientes set cli_cidade = ‘Belem’ where cli_nome = 2 where cli_codigo = 3;
Delete
Este comando permite excluir registros das tabelas
Ex:
delete from clientes; // exclui todos os registros da tabela
delete from clientes where cli_sexo = ‘F’;
delete from clientes where cli_cidade like ‘C%’;
Truncate
Este comando elimina de forma irreversível todos os dados da tabela
Ex:
truncate table clientes;
*Funções de Agregação
avg
Este comando calcula o valor médio de uma determinada coluna
Ex:
select avg(cli_salarial) as media_salarial from clientes;
count
Este comando conta as linhas de uma tabela
Ex:
select count(cli_codigo) from clientes;
Select count(*) as quantidade_registros from clientes;
sum
Este comando calcula a somatória de todos os valores de uma coluna.
Ex:
select sum(cli_salario) as valor_total from clientes;
Select sum(cli_salario) as valor_total from clientes where cli_sexo = ‘F’;
min
Este função SQL retorna o valor mínimo encontrado em uma coluna.
Ex:
select min(cli_salario) as valor_minimo from clientes;
Select min(cli_salario) as valor_minimo from clientes where cli_codigo in(1,3);
max
Este função SQL retorna o valor máximo encontrado em uma coluna.
Ex:
select max(cli_salario) as valor_maximo from clientes;
Select max(cli_salario) as valor_maximo from clientes where cli_codigo in(1,3);
*Funções escalares de texto
upper
Este função SQL converte para maiúsculo todos os caracteres.
Ex:
select cli_codigo, upper(cli_nome) as Nome, cli_cidade, cli_sexo, cli_email, cli_salario from clientes;
lower
Este função SQL converte para minúsculo todos os caracteres.
Ex:
select cli_codigo, lower(cli_nome) as Nome, cli_cidade, cli_sexo, lower(cli_email), cli_salario from clientes;
Índices
Índice é usado para agilizar pesquisas de seleção de dados nas tabelas. O key é sinônimo de índice.
Ex:
show index from clientes; // mostra os índices da tabela
create index ind_nome_cliente on clientes(cli_nome);
ou
alter table clientes add index ind_cliente_nome (cli_nome);
drop index ind_nome_cliente on cliente; //exclui o índice
group by (agrupar por..)
Agrupar dados
Ex:
select cli_sexo as Sexo,
count(cli_sexo) as quantos
from clientes group by cli_sexo;
ou
select concat(‘Do sexo’, cli_sexo, ‘tem’, count(cli_sexo))
as ‘Estatisticas sexuais’
from clientes group by cli_sexo;
Resultado: Retorna quantos clientes são do sexo masculino e quantos são do sexo feminino.
select AVG(cli_salario) from clientes group by cli_sexo;
Neste exemplo acima irá retornar a media salarial agrupando por sexo.
No próximo post, irei falar sobre PL/SQL. Espero ter ajudado.
Abraços,