quinta-feira, 23 de fevereiro de 2012

Comandos Básicos em SQL

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:

Comando CREATE DATABASE (P/ criar um banco de dados):
Ex.:
create database nome_da_base;

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)
);

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’);

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
Like = com padrão de caracteres.

Ex.:
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’

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;
DistinctA cláusula Distinct elimina duplicidades, não mostrando portanto dados duplicados como resultado de uma pesquisa.
select distinct cli_cidade from clientes;

Primary KeyCriando 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;

AlterEste 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);

DescribeEste comando permite visualizar a estrutura das tabelas
Ex: describe clientes;

UpdateEste 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;

DeleteEste 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%’;

TruncateEste comando elimina de forma irreversível todos os dados da tabela
Ex: truncate table clientes;

Funções de Agregação
avgEste comando calcula o valor médio de uma determinada coluna
Ex: select avg(cli_salarial) as media_salarial from clientes;

countEste comando conta as linhas de uma tabela
Ex: select count(cli_codigo) from clientes;
Select count(*) as quantidade_registros from clientes;

sumEste 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’;

minEste 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);

maxEste 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
upperEste 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;

lowerEste 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 dadosEx: 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.