SQL – comando SELECT
Uma das tarefas mais requisitadas em
qualquer banco de dados é obter uma listagem
de registros armazenados. Estas tarefas são
executadas pelo comando SELECT
Sintaxe:
SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ]
Paulo Damico - MDK Informática Ltda.
SQL – comando SELECT
SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ]
●
●
●
●
DISTINCT: é um parâmetro opcional que possibilita determinar o
tipo de registro a ser selecionado, que pode ser um dos valores
distintos ou apresentar todos os registros;
campo: é a lista de campos a serem selecionados, o asterisco *
representa todos os campos
tabela: é a indicação do nome da tabela ou tabelas onde se
deseja retirar os registros
condição: é um parâmetro opcional que determina a condição de
ação da pesquisa
Paulo Damico - MDK Informática Ltda.
●
●
●
●
CONDIÇÕES:
WHERE: determina a ação de trabalho de uma condição baseada
em uma relação lógica
GROUP BY: determina o agrupamento de informações baseado
em valores comuns a partir de uma coluna informada
ORDER BY: indica a forma e ordenação dos registros podendo
ser ASC – ascendente ou DESC - descendente
Paulo Damico - MDK Informática Ltda.
SQL – comando SELECT
SELECT * FROM cadfun ;
Significa selecionar todos os campos com todos os registros da
tabela cadfun
Paulo Damico - MDK Informática Ltda.
SQL – comando SELECT
SELECT NOME FROM cadfun ;
Selecionar o campo nome da tabela cadfun
Paulo Damico - MDK Informática Ltda.
SQL – comando SELECT
SELECT NOME, FUNCAO FROM cadfun ;
SELECT NOME FROM cadfun WHERE DEPTO = '3';
SELECT NOME, SALARIO FROM cadfun ORDER BY NOME ;
SELECT NOME, SALARIO FROM cadfun ORDER BY NOME DESC;
SELECT NOME FROM cadfun WHERE DEPTO = '3' ORDER BY
NOME;
Paulo Damico - MDK Informática Ltda.
SQL comando UPDATE
Para alterar os dados cadastrados numa tabela
usa-se o seguinte comando
UPDATE <tabela> SET <campo> = <expressão> [condição] [ ; ]
<tabela> tabela na qual se deseja alterar os registros
<campo> indicação do campo a ser atualizado
<expressão> indicação do valor do campo a ser atualizado
[condição] parâmetro opcional que determina a condição de
ação de pesquisa baseada no argumento WHERE
Paulo Damico - MDK Informática Ltda.
SQL comando UPDATE
O funcionário 7 da tabela cadfun teve um aumento de salário
de 1200.50 para 2300.56 e essa condição precisa ser
considerada na tabela cadfun. Antes de proceder a alteração
do salário do funcionário de registro 7 escreva a instrução de
pesquisa seguinte para ver como estão os dados atuais. Não
faça uso da tecla de função <F5>
SELECT * FROM cadfun WHERE CODFUN = 7;
Paulo Damico - MDK Informática Ltda.
SQL comando UPDATE
Em seguida escreva a instrução de atualização de dados de um
determinado registro para atualizar o campo SALARIO logo abaixo
da instrução anterior. Não faça uso da tecla de função <F5>
UPDATE cadfun SET SALARIO = 2300.56 WHERE CODFUN =7;
Após a instrução anterior peça novamente a listagem dos dados
desse funcionário como comando a seguir e somente depois disto
acione a tecla <F5>
SELECT * FROM cadfun WHERE CODFUN = 7;
exercícios
Paulo Damico - MDK Informática Ltda.
SQL comando UPDATE
A funcionária Ana Bastos do departamento 5 fez uma
solicitação de transferência de departamento, a qual foi aceita
pela chefia. Ela pediu para ser transferida para o departamento
3. Execute a sequência de comandos e após definir as três
linhas acione a tecla de função <F5>
Paulo Damico - MDK Informática Ltda.
SQL comando UPDATE
SELECT * FROM cadfun WHERE NOME = 'ANA BASTOS';
UPDATE cadfun SET DEPTO = '3' WHERE NOME = 'ANA BASTOS';
SELECT * FROM cadfun WHERE NOME = 'ANA BASTOS';
Paulo Damico - MDK Informática Ltda.
SQL comando UPDATE
O dono da empresa Virtual Data Comunications Ltda.
Concedeu um aumento de 10% a todos os seus funcionários.
Antes de dar o aumento liste primeiramente todos os registros
cadastrados, depois estabeleça o aumento de 10% e apresente
a listagem com os salários atualizados. Escreva as três
instruções e apenas depois acione <F5>
Paulo Damico - MDK Informática Ltda.
SQL comando UPDATE
SELECT * FROM cadfun;
UPDATE cadfun SET SALARIO = SALARIO * 1.10;
SELECT * FROM cadfun;
Paulo Damico - MDK Informática Ltda.
SQL comando DELETE
Dentre as atividades de manutenção de banco de dados existe
a possibilidade de remover registros que não sejam mais
necessários. Para isso usa-se o comando abaixo
DELETE FROM <tabela> [condição] [ ; ]
<tabela> indicação da tabela da qual se deseja remover
registros
[condição] parâmetro opcional que determina a ação da
pesquisa baseada no argumento WHERE. É sempre
conveniente usar o WHERE pois após a remoção não é
possível reverter a operação.
Paulo Damico - MDK Informática Ltda.
SQL comando DELETE
A empresa Virtual Data está passando por um processo de
reengenharia; o departamento 2 foi extinto e seus funcionários
foram demitidos. Desta forma, torna-se necessário remover os
registros que atendam a este critério de condição.
SELECT * FROM cadfun;
DELETE FROM cadfun WHERE DEPTO = '2';
SELECT * FROM cadfun;
Paulo Damico - MDK Informática Ltda.
SQL comando DELETE
O funcionário MARCELO SOUZA, insatisfeito com as
mudanças conseguiu emprego na empresa concorrente e
solicitou sua demissão, assim este registro precisa ser
eliminado. Qual o comando de remoção deve-se utilizar
SELECT * FROM cadfun;
?????????????????????
SELECT * FROM cadfun;
Paulo Damico - MDK Informática Ltda.
SQL comando DELETE
●
Resposta
SELECT * FROM cadfun;
DELETE FROM cadfun WHERE NOME = 'MARCELO SOUZA'
SELECT * FROM cadfun;
Paulo Damico - MDK Informática Ltda.
Alteração de tabelas
Para excluir, incluir ou modificar a estrutura de um campo usase o comando abaixo
ALTER TABLE <tabela> <operação> [ ; ]
<tabela> indicação da tabela na qual se deseja fazer a
alteração de registros
<operação> é um parâmetro que pode receber um dos
seguintes valores:
ADD <campo> <tipo> utiliza-se este comando quando houver
necessidade de inserção de um novo campo em uma
determinada tabela. O parâmetro <campo> representa o nome
do novo campo e <tipo> a sua estrutura (INT, CHAR,
VARCHAR, etc...)
Paulo Damico - MDK Informática Ltda.
Alteração de tabelas
DROP COLUMN <campo> utiliza-se este comando quando
houver necessidade de remover um campo em uma determinada
tabela. O parâmetro <campo> representa o nome campo.
Ex: Inserção do campo da data de admissão dos funcionários
com o nome de ADMISSAO
ALTER TABLE cadfun ADD ADMISSAO DATE;
SELECT * FROM cadfun;
O campo ADMISSAO assume valor NULL para todos os registros
Paulo Damico - MDK Informática Ltda.
Alteração de tabelas
Atualizar todos os registros da tabela cadfun com as datas de admissão dos funcionários ativos:
(ESCREVER TODOS DEPOIS <F5>
UPDATE cadfun SET ADMISSAO = '01-15-2006' WHERE CODFUN ='2';
UPDATE cadfun SET ADMISSAO = '10-21-1999' WHERE CODFUN ='3';
UPDATE cadfun SET ADMISSAO = '10-21-2004' WHERE CODFUN ='4';
UPDATE cadfun SET ADMISSAO = '04-26-2006' WHERE CODFUN ='5'
UPDATE cadfun SET ADMISSAO = '05-10-1980' WHERE CODFUN ='7';
UPDATE cadfun SETADMISSAO = '12-15-1999' WHERE CODFUN ='9';
UPDATE cadfun SETADMISSAO = '12-21-2000' WHERE CODFUN ='12';
UPDATE cadfun SET ADMISSAO = '12-21-2000' WHERE CODFUN ='25';
Paulo Damico - MDK Informática Ltda.
Alteração de tabelas
DATAS PARA INSERÇÃO NO FORMATO MM-DD-AAAA
DATAS NA CONSULTA NO FORMATO AAAA-MM-DD, POIS
FACILITA A ORDENAÇÃO DE UM CAMPO QUE TRABALHE
COM O PADRÃO DATE
Ex: Apresentação da relação dos nomes e as datas de
admissão de todos os funcionários admitidos no mês de
dezembro de qualquer ano
SELECT NOME, ADMISSAO FROM cadfun WHERE MONTH(ADMISSAO) = 12;
Paulo Damico - MDK Informática Ltda.
Alteração de tabelas
Listagem de nomes e datas de admissão de todos os
funcionários admitidos a partir de 1º de janeiro de 2000
SELECT NOME, ADMISSAO FROM cadfun WHERE ADMISSAO >= '01-01-2000';
Paulo Damico - MDK Informática Ltda.
Alteração de tabelas
Após concluir o processo de reengenharia a empresa Virtual Data
Comunication Ltda. , a sua diretoria decidiu reabrir o departamento 2.
Dos três funcionários anteriormente demitidos um aceitou seu antigo
emprego e cargo retornando à empresa. Execute o cadastramento
do seguinte registro:
INSERT INTO cadfun VALUES (
15,
'MARCOS HENRIQUE',
'2',
'GERENTE',
2184.33,
'05-25-2006'
);
Paulo Damico - MDK Informática Ltda.
Alteração de tabelas
20
AUDREY TOLEDO
2
SUPERVISORA
1700.00
07-05-2006
22
SANDRA
MANZANO
2
ANALISTA
2000.00
07-01-2006
24
MARCIO CANUTO
2
PROGRAMADOR
1200.00
07-10-2006
Paulo Damico - MDK Informática Ltda.
Arquivo Morto
Utilizado para armazenar arquivos excluídos de uma outra
tabela. Construa a seguinte tabela:
CREATE TABLE morto (
CODFUN INT PRIMARY KEY,
NOME VARCHAR(40) ,
DEPTO CHAR (2),
FUNCAO CHAR (20),
SALARIO DECIMAL (10,2),
ADMISSAO DATE
);
Paulo Damico - MDK Informática Ltda.
Arquivo Morto
Para colocar um registro no arquvo morto antes de removê-lo
da tabela ativa é necessário usar a instrução INSERT INTO
anexa ao comando SELECT, conforme a sintaxe indicada
abaixo:
INSERT INTO <arquivo morto>
SELECT <campos>
FROM <tabela ativa>
WHERE <condição>
[;]
Onde:
Paulo Damico - MDK Informática Ltda.
<arquivo morto> nome da tabela de arquivo morto
<campos> é a definição dos campos que são transferidos
<tabela ativa> é a tabela da qual são tirados os registros
<condição> é a definição do controle de ação para efetivação do
comando
Ex:.
INSERT INTO morto
SELECT CODFUN, NOME, DEPTO, FUNCAO, SALARIO, ADMISSAO
FROM cadfun
WHERE CODFUN = 12;
SELECT * FROM morto;
Paulo Damico - MDK Informática Ltda.
Arquivo Morto
Agora que o registro foi adicionado ao arquivo morto ele pode
ser removido da tabela cadfun
DELETE FROM cadfun WHERE CODFUN = 12;
Verificando:
SELECT * FROM cadfun;
SELECT * FROM morto;
Paulo Damico - MDK Informática Ltda.
SUBCONSULTAS
É possível fazer uma nova consulta após a clausula WHERE
do comando SELECT
Ex:. Apresentar os nomes dos registros de todos os
funcionários da tabela cadfun que possuam seu salário igual
aos salários dos funcionários demitidos que estejam
cadastrados na tabela morto (na tabela há um registro cujo
salário é igual ao valor de 1683,00)
SELECT * FROM cadfun WHERE SALARIO = (SELECT SALARIO
FROM morto);
Paulo Damico - MDK Informática Ltda.
Apresente uma consulta de todos os funcionários da tabela
cadfun que tenham o seu número de departamento igual ao
número de departamento do registro existente na tabela morto
SELECT * FROM cadfun WHERE DEPTO = (SELECT DEPTO
FROM morto);
Paulo Damico - MDK Informática Ltda.
Download

SQL-1