SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ......
Transcript of SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ......
Paulo Damico - MDK Informática Ltda.
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
● RespostaSELECT * 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 usa-se 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 tabelasAtualizar 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);