GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

SQL – Básico!

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,

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado.