sql – comando select · exercícios. paulo damico - mdk informática ltda. sql comando update ......

30
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] [ ; ]

Upload: phamduong

Post on 13-May-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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] [ ; ]

Page 2: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 3: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 4: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

Paulo Damico - MDK Informática Ltda.

SQL – comando SELECT

SELECT * FROM cadfun ;

Significa selecionar todos os campos com todos os registros da tabela cadfun

Page 5: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

Paulo Damico - MDK Informática Ltda.

SQL – comando SELECT

SELECT NOME FROM cadfun ;

Selecionar o campo nome da tabela cadfun

Page 6: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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;

Page 7: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 8: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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;

Page 9: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 10: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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>

Page 11: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 12: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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>

Page 13: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

Paulo Damico - MDK Informática Ltda.

SQL comando UPDATE

SELECT * FROM cadfun;

UPDATE cadfun SET SALARIO = SALARIO * 1.10;

SELECT * FROM cadfun;

Page 14: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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.

Page 15: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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;

Page 16: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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;

Page 17: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

Paulo Damico - MDK Informática Ltda.

SQL comando DELETE

● RespostaSELECT * FROM cadfun;

DELETE FROM cadfun WHERE NOME = 'MARCELO SOUZA'

SELECT * FROM cadfun;

Page 18: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 19: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 20: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 21: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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;

Page 22: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 23: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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'

);

Page 24: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 25: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

) ;

Page 26: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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:

Page 27: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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;

Page 28: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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;

Page 29: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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

Page 30: SQL – comando SELECT · exercícios. Paulo Damico - MDK Informática Ltda. SQL comando UPDATE ... SQL comando DELETE Dentre as atividades de manutenção de banco de dados existe

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