Exercícios. Exercícios



Documentos relacionados
Introdução ao SQL. Aécio Costa

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Comandos de Manipulação

Introdução à linguagem SQL

SQL Avançado Continuação. Renata Viegas

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

EXERCÍCIOS PRÁTICOS. Banco de Dados

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

EXEMPLOS DE COMANDOS NO SQL SERVER

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Bases de Dados 2005/2006. Aula 5

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Linguagem de Consulta Estruturada (SQL)

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Banco de Dados I. Linguagem de Consulta (parte II) Recuperando Dados de Várias Tabelas (JOINS)

O que são Bancos de Dados?

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

SQL (Structured Query Language)

Linguagem SQL. Comandos Básicos

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BDII SQL Junção Revisão 8

SQL DML. Frederico D. Bortoloti

Curso PHP Aula 08. Bruno Falcão

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

Linguagem de Banco de Dados DML Exercícios

4.6. SQL - Structured Query Language

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

SQL. Prof. Márcio Bueno.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Linguagem de Consulta Estruturada SQL- DML

Linguagem SQL Parte I

Linguagem de Consulta - SQL

Programação em Banco de Dados. Dailton Trevisan

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Memória de aula Semanas 15 e 16

SQL: Definição de tabelas, Modificações à Base de Dados

Múltiplas Tabelas. Disciplina de Banco de Dados

Projeto de Banco de Dados: Empresa X

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Structured Query Language (SQL)

Programação SQL. Introdução

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma:

Comandos DDL. id_modulo = id_m odulo

SQL Structured Query Language

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Linguagem SQL (Parte I)

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Operação de União JOIN

Programação SQL. INTRODUÇÃO II parte

Memória de aula Aulas 11 e 12

Tarefa Orientada 14 Subconsultas

SQL (Linguagem de Consulta Estruturada)

Banco de Dados. Maurício Edgar Stivanello

PROGRAMA. Objectivos Gerais :

Banco de Dados. Prof. Antonio

SQL - Criação de Tabelas

SQL. Autor: Renata Viegas

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

A linguagem SQL

Tarefa Orientada 15 Manipulação de dados

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

INNER, CROSS, LEFT, RIGHT E FULL JOINS SIMPLES ASSIM! Wellyngton Luiz Cruz Moreira wlcmoreira@hotmail.com

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

ANÁLISE E PROJETO DE BANCO DE DADOS

Profº Aldo Rocha. Banco de Dados

Histórico de revisões

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1.

Principais Instruções em SQL

Exercícios de Lógica Exercícios de Fixação 08

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

SQL Server Ferramenta de administração. SQL Server Management Studio. 1º passo conectar ao banco de dados 2ª Query (consulta) usando SQL

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

SQL consulta com operadores

Transcrição:

Exercícios 1 Exercícios 1. Crie um Banco de Dados Chamado: Exercicio+SeuNome 2. Crie uma tabela chamada CLIENTE, contendo os seguintes campos: Campo Tipo Tamanho Permissão PK Cod_cli Numeric 8,0 Not null Primary Key Nome Varchar 60 Null Telefone Varchar 20 Null CREATE TABLE cliente ( cod_cli numeric (8,0) not null PRIMARY KEY, nome varchar (60) null, telefone varchar (20) null ) 2 1

Exercícios 3. Insira os seguintes registros na tabela CLIENTES: Código Nome Telefone 1001 João 445-0988 1002 Alberto 465-9887 1003 Maria 789-9877 1004 Sonia INSERT cliente (cod_cli, nome, telefone) values (1001,'João','445-0988') INSERT cliente (cod_cli, nome, telefone) values (1002,'Alberto','465-9887') INSERT cliente (cod_cli, nome, telefone) values (1003,Maria', 789-9877') INSERT cliente (cod_cli, nome) values (1004, Sonia ) 3 Exercícios 4. Selecione o nome e o telefone de todos os clientes: SELECT nome, telefone FROM cliente 4 2

Exercícios 5. Altere todos os telefones para 000-1111: UPDATE cliente SET telefone = 000-1111 5 Exercícios 6. Altere todos os telefones para os números existentes anteriormente. Código Nome Telefone 1001 João 445-0988 1002 Alberto 465-9887 1003 Maria 789-9877 1004 Sonia UPDATE cliente SET telefone = 445-0988 WHERE cod_cli=1001 UPDATE cliente SET telefone = 465-9887 WHERE cod_cli=1002 UPDATE cliente SET telefone = 789-9877 WHERE cod_cli=1003 6 3

Exercícios 7. Apague o registro do cliente cujo código é 1004 DELETE cliente WHERE cod_cli = 1004 8. Selecione o código e o nome de todos os clientes, mas apresentando a seguinte frase: O código do +nome+ é +cod_cli. Não deixar espaço em branco entre os elementos que compõem a string. SELECT O codigo do + RTRIM (nome)+ é + RTRIM (STR(cod_cli) FROM cliente 9. Apresentar as mesmas informações do exercício anterior, ordenando agora em ordem alfabética de nome. SELECT O codigo do + RTRIM (nome)+ é + RTRIM (STR(cod_cli) FROM cliente ORDER BY nome 7 Exercícios 10. Crie uma tabela chamada CIDADE com os seguintes campos: Campo Tipo Tamanho Permissão PK Cod_cid Numeric 8,0 Not null Primary Key Nome_cid Varchar 45 Null UF Char 2 Null CREATE TABLE cidade ( cod_cid numeric (8,0) not null PRIMARY KEY, nome_cid varchar (45) null, uf char (2) null ) 8 4

Exercícios 11. Inclua os seguintes registros na tabela CIDADE Cod_cid Nome_cid UF 1 Campinas SP 2 Itu SP 3 Cabo Frio RJ 4 Niteroi RJ 5 Belo Horizonte MG 6 Uberaba MG INSERT cidade (cod_cid, nome_cid, UF) values (1, Campinas', SP') INSERT cidade (cod_cid, nome_cid, UF) values (2, Itu, SP') INSERT cidade (cod_cid, nome_cid, UF) values (3, Cabo Frio, RJ ) INSERT cidade (cod_cid, nome_cid, UF) values (4, Niteroi, RJ ) INSERT cidade (cod_cid, nome_cid, UF) values (5, Belo Horizonte, MG ) INSERT cidade (cod_cid, nome_cid, UF) values (4, Uberaba, MG ) 9 Exercícios 12. Selecione os nomes das cidades que pertençam ao estado de São Paulo e Rio de Janeiro (usar o campo UF para comparações). SELECT nome_cid FROM cidade WHERE uf = SP AND uf = RH 13. Selecione os nomes das cidades que pertençam ao estado de São Paulo e Rio de Janeiro (agora usando a cláusula IN). SELECT nome_cid FROM cidade WHERE uf IN ( SP, RJ ) 13. Selecione os nomes das cidades que contenham a letra T em qualquer lugar. SELECT nome_cid FROM cidade WHERE nome_cid LIKE %t% 10 5

Exercícios 12. Selecione os nomes dos clientes que tem o telefone que começa com o número 4. SELECT nome FROM cliente WHERE telefone LIKE 4% 11 Seleção de Dados (DQL Data Query Language) -Cláusulas INNER JOIN - 12 6

Table ALIAS: Permite atribuir um apelido para uma tabela dentro de um SELECT Facilita a identificação dos atributos em queries com mais de uma tabela Apelidos serão usados como prefixos Se não forem dados apelidos, os próprios nomes das tabelas poderão ser usados Exemplo: SELECT F.NOME_FUNC, C.NOME_CID FROM FUNCIONARIO F, CIDADE C WHERE F.NATURALIDADE = C.CODIGO 13 Exemplo: A) Altere a tabela CLIENTE utilizando o DESIGN TABLE do MS SQL Server, e acrescente o campo COD_CID, do tipo Numérico (8,0). B) Em seguida realize um UPDATE nos campos COD_CID da tabela CLIENTE, incluindo para cada registro um código de cidade diferente, existente na tabela CIDADE. TABELA CLIENTE Código Nome_cli Telefone Cod_cid 1001 João 445-0988 1 1002 Alberto 465-9887 2 1003 Maria 789-9877 3 1004 Sonia 4 TABELA CIDADE Cod_cid Nome_cid UF 1 Campinas SP 2 Itu SP 3 Cabo Frio RJ 4 Niteroi RJ 5 Belo Horizonte MG 6 Uberaba MG 14 7

Resposta das atualizações solicitadas anteriormente: UPDATE cliente SET cod_cid = 1 WHERE cod_cli = 1001 UPDATE cliente SET cod_cid = 2 WHERE cod_cli = 1002 UPDATE cliente SET cod_cid = 3 WHERE cod_cli = 1003 UPDATE cliente SET cod_cid = 4 WHERE cod_cli = 1004 15 C) Agora vamos selecionar os nomes dos clientes com suas respectivas cidades, utilizando o ALIAS junto com o comando SELECT: TABELA CLIENTE Código Nome_cli Telefone Cod_cid 1001 João 445-0988 1 1002 Alberto 465-9887 2 1003 Maria 789-9877 3 1004 Sonia 4 FK Cod_cid Nome_cid UF PK TABELA CIDADE 1 Campinas SP 2 Itu SP 3 Cabo Frio RJ 4 Niteroi RJ 5 Belo Horizonte MG 6 Uberaba MG SELECT CLI.Nome_cli, CID.Nome_cid FROM CLIENTE CLI, CIDADE CID WHERE CLI.Cod_cid = CID.Cod_cid 16 8

Usando o comando JOIN 17 Correlacionando Dados Implementando Junções (Joins): Junta informações de duas tabelas ao mesmo tempo, usando uma coluna de conexão em cada tabela Pode ser criado usando a seguinte sintaxe do SQL Server: SQL Server Syntax SELECT table_name.column_name, table_name.column_name [,table_name.column_name...] FROM {table_name, table_name } WHERE table_name.col_name join_operator table_name.col_name 18 9

SELECT razao_social, nome FROM cliente INNER JOIN cidade ON cliente.cidade=cidade.codigo Cliente CLIENTE razao_social cidade REFINACOES DE MILHO BRASIL LTD 11 RHODIA - STER FILMES LTDA 34 MOINHO RECIFE S/A 41 INOB IND. NORDESTINA DE BRONZE 5 ACUMULADORES PRESTOLITE LTDA 37 16* RCMEC-REGIMENTO DE CAVALAR 5 Resultado BENTONISA-BETONITA DO NORDESTE 17 razao_social EDINHO DE MANGABEIRA 17 A. FIGUEIREDO MOVEIS ESQUADRIA 17 IMENSA REDIMIX 17 Cidade CIDADE codigo nome uf pais 1 SOBRAL CE BR 2 COELHO NETO MA BR 3 ALHANDRA PB BR 4 ARARUNA PB BR 5 BAYEUX PB BR 6 CAAPORA PB BR 7 CABEDELO PB BR nome 8 CAJA PB BR REFINACOES DE MILHO BRASIL LTD ESPIRITO SANTO RHODIA - STER FILMES LTDA DALLAS MOINHO RECIFE S/A SAO PAULO INOB IND. NORDESTINA DE BRONZE BAYEUX ACUMULADORES PRESTOLITE LTDA NATAL 16* RCMEC-REGIMENTO DE CAVALAR BAYEUX BENTONISA-BETONITA DO NORDESTE PEDRAS DE FOGO EDINHO DE MANGABEIRA PEDRAS DE FOGO A. FIGUEIREDO MOVEIS ESQUADRIA PEDRAS DE FOGO Inner Join (ANSI) 19 Pedido codigo cliente 1 1 2 1 3 1 4 2 5 5 6 5 7 5 8 5 Cidade Cidade codigo nome 1 SOBRAL 2 COELHO NETO 3 ALHANDRA 4 ARARUNA 5 BAYEUX Joins com mais de duas tabelas select ped.codigo, cli.razao_social, cid.nome from pedido ped inner join cliente cli on ped.cliente = cli.codigo inner join cidade cid on cli.cidade = cid.codigo Cliente codigo razao_social cidade 1 REFINACOES DE MILHO BRASIL LTD 11 2 RHODIA - STER FILMES LTDA 34 3 MOINHO RECIFE S/A 41 4 INOB IND. NORDESTINA DE BRONZE 5 5 ACUMULADORES PRESTOLITE LTDA 37 6 16* RCMEC-REGIMENTO DE CAVALAR 5 Resultado codigo razao_social nome 1 REFINACOES DE MILHO BRASIL LTD ESPIRITO SANTO 2 REFINACOES DE MILHO BRASIL LTD ESPIRITO SANTO 4 RHODIA - STER FILMES LTDA DALLAS 15 RHODIA - STER FILMES LTDA DALLAS 5 ACUMULADORES PRESTOLITE LTDA NATAL 8 ACUMULADORES PRESTOLITE LTDA NATAL 24 EDINHO DE MANGABEIRA PEDRAS DE FOGO 25 EDINHO DE MANGABEIRA PEDRAS DE FOGO 9 ENCOR - FABRICA DE ENGRENAGENS SAO PAULO 20 10

Self Joins: Self Joins Correlacionam linhas de uma tabela com outras linhas da mesma tabela. Por envolver um join de uma tabela com ela mesma, você deve informar dois table aliases (ou apelidos). Apelidos permitirão a você identificar as duas tabelas com prefixos. 21 select setor = a.nome, superior = b.nome from setor a inner join setor b on a.superior = b.codigo Setor Setor(A) codigo nome superior 1 PRESIDENCIA 1 2 FABRICACAO MECANICA 8 3 ADMINISTRACAO 1 4 RECURSOS HUMANOS 1 5 COMPRAS 3 6 MARKETING 1 7 MANUTENCAO 8 PRODUCAO 1 9 EXPEDICAO 8 10 VENDAS 6 11 ATENDIMENTO A CLIENTES Resultado 6 setor PRESIDENCIA FABRICACAO MECANICA ADMINISTRACAO RECURSOS HUMANOS COMPRAS MARKETING PRODUCAO EXPEDICAO VENDAS ATENDIMENTO A CLIENTES Exemplo Setor(B) codigo nome superior 1 PRESIDENCIA 1 2 FABRICACAO MECANICA 8 3 ADMINISTRACAO 1 4 RECURSOS HUMANOS 1 5 COMPRAS 3 6 MARKETING 1 7 MANUTENCAO 8 PRODUCAO 1 9 EXPEDICAO 8 10 VENDAS 6 superior 11 ATENDIMENTO A CLIENTES 6 PRESIDENCIA PRODUCAO PRESIDENCIA PRESIDENCIA ADMINISTRACAO PRESIDENCIA PRESIDENCIA PRODUCAO MARKETING MARKETING 22 11

Executando comandos SELECT aninhados: A query mais interna (Subquery) é avaliada primeiro; A query mais externa depende da avaliação da Subquery; As subqueries devem estar entre parêntesis. Subqueries Operam Usando: Listas introduzidas com IN ou com um operador de comparação junto com ANY ou ALL Testes de existência são feitos com EXISTS where X IN ( select Y...) verdadeiro se existe algum Y tal que X = Y where X < ANY ( select Y...) verdadeiro se existe algum Y tal que X < Y where X < ALL ( select Y...) verdadeiro se para todo Y, X < Y where EXISTS ( select Y...) verdadeiro se número de linhas > 0 23 Exemplos: Obter detalhes completos de todos os funcionários cujos departamentos estejam localizados em Natal SELECT * FROM funcionarios WHERE cod_depto IN (SELECT cod_depto FROM Departamento WHERE Local = Natal ) Selecionar todos os projetos que não possuem empregados alocados SELECT Nome FROM Projeto WHERE Cod_Proj <> All (SELECT Cod_proj FROM Alocacao) Selecionar todos os projetos que possuem empregados alocados SELECT Nome FROM Projeto WHERE Cod_Proj = any (SELECT Cod_proj FROM Alocacao ) 24 12

Subqueries: A Subquery interna referencia atributos da Query externa A Subquery é executada para cada linha da query externa 25 Subquery no WHERE: A Subquery é executada para cada linha da query externa Exemplo: Mostre os funcionários que fizeram algum pedido maior do que seu próprio salário SELECT CODIGO, NOME FROM FUNCIONARIO F WHERE EXISTS ( SELECT * FROM PEDIDO WHERE TOTAL > F.SALARIO AND VENDEDOR = F.CODIGO ) 26 13

SELECT INTO: SELECT INTO cria uma nova tabela baseado no resultado de uma Query A tabela fica criada permanentemente, caso seu nome não inicie com # Nome iniciando com # indica tabela que apenas o criador enxerga Nome iniciando com ## indica tabela que todos enxergam Colunas da nova tabela são baseadas no resultado da query Colunas devem ter um título válido para nome de atributo EXEMPLO: Incluir todas as matriculas dos empregados na tabela temporária Matriculas SELECT Mat_Emp into #Matriculas FROM EMPREGADO 27 OPERADOR UNION: Cria um único conjunto de resultados para múltiplas queries Exemplo Simples Exemplo complexo SELECT * FROM nota_fiscal UNION SELECT * FROM old_nota_fiscal SELECT p.nome, i.quant FROM itens_pedido i INNER JOIN produto p on p.codigo=i.produto UNION SELECT nome, não vendido FROM produto WHERE codigo NOT IN (SELECT produto FROM itens_pedido) 28 14