SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Aula 002
Banco de Dados
PRONATEC
Programa Nacional de Acesso ao
Ensino Técnico e Emprego
PRONATEC
Programa Nacional de Acesso
ao Ensino Técnico e Emprego
1. A SQL – Structured Query Language
• Linguagem de Definição de Dados (DDL)
juntamente com a Linguagem de Manipulação
dos dados (DML)
• Comandos em inglês mais próximos da
inteligência humana do que as linguagens de
máquina.
• Principais comandos DDL: “create database”,
“use database”, “create table”
• Principais comandos DML: “insert”, “update”,
“delete” e “select”
2. Principais comandos DDL
• CREATE DATABASE – cria um banco de dados para
conter todas as estruturas necessárias ao mesmo:
espaço para o dicionário de dados, espaço para
os dados e espaço para as “stored procedures” e
“triggers”
• Ex: create database clinica;
• Existem parâmetros para se usar esse comando
mas basicamente essa é a sintaxe. Um parâmetro
muito usado é o conjunto de caracteres
• Exemplo:
create database `exames`
character set 'utf8’ collate 'utf8_general_ci';
3. Principais comandos DDL
• USE DATABASE `nome´; - abre o banco de dados
para ser usado no programa SQL
• CREATE TABLE – cria uma tabela dentro do banco
com as definições especificadas na sintaxe do
comando. Exemplo:
CREATE TABLE `cidade` (
`id` bigint(20) NOT NULL auto_increment,
`nome` varchar(100) default NULL,
`uf` char(2) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2
DEFAULT CHARSET=utf8;
4. Principais comandos DML
• INSERT – usado para incluir dados em tabelas
do Banco de Dados. Exemplo:
INSERT INTO `cidade` (`id`, `nome`, `uf`) VALUES
(1,'Patos de Minas','MG');
Sintaxe: insert into `tabela´ (`col1´,...,`colN´)
values (`val1´,...,`valN´);
Onde cada “val” combina com o tipo
corresponde ao seu “col”
5. Principais comandos DML
• UPDATE – usado para alterar dados em tabelas
do Banco de Dados. Exemplo:
ALTER TABLE `cidade´ SET `nome´ = `PO´ WHERE
`id´ = 1;
Sintaxe: alter table `tabela´ set `coluna´ =
`novo_valor´ [where `condição_lógica´];
Ou
Alter table `tabela´ set
`col1´=`val1´, `col2´=`val2´,...,`colN´=`valN´
where `condição´;
6. Principais comandos DML
• DELETE – usado para excluir linhas em tabelas
do Banco de Dados. Exemplo:
DELETE FROM `cidade´ WHERE `id´ = 1;
Sintaxe:
delete from `tabela´ [where `condição_lógica´];
Se a condição não for definida apaga todas as
linhas da tabela sem confirmação.
7. Principais comandos DML
• SELECT – é o comando mais usado da DML com ele podemos
consultar os dados do banco. As consultas podem ser:
seleção, projeção, junção ou União.
• Seleção: consulta simples a uma tabela selecionando
algumas linhas da mesma de acordo com uma ou mais
condições lógicas
• Projeção: consulta simples a uma tabela onde escolhemos
além das linhas a serem mostradas, também as colunas que
queremos
• Junção: é a fusão de duas ou mais tabelas ligadas por suas
chaves estrangeiras e primárias de forma a constituir uma
ampla gama de dados resultando em um produto cartesiano
entre as mesmas, o qual ainda poderá sofrer uma seleção ou
projeção
• União: é a consulta a duas ou mais tabelas com a mesma
estrutura de forma a “somar” suas linhas e não “multiplicar”
como no caso da junção.
8. O Comando Select – Parte1
• A partir desse ponto vamos considerar um banco de dados `empresa´
com as tabelas `cliente´, `cidade´,`vendedor´ seguindo o DER:
VENDEDOR CLIENTE CIDADEV-C C-C
1 N N 1
• Vendedor (PK=ID) Cidade (PK=ID)
ID Nome Comissão
1 José da Silva 1,50%
2 Maria Aparecida 3,00%
3 Antônio Costa 1,50%
ID Nome Estado
1 Patos de Minas MG
2 Uberlândia MG
3 São Paulo SP
• Cliente (PK=ID, FK1=cidade, FK2=vendedor)
ID Nome Cidade Vendedor Ultima Venda Vendas
1 Só Argamassas 2 1 José $500,00
2 A Constrular 1 3 Maria $300,00
3 Barato Acabamentos 1 2 André $0,00
4 Supermercado Frondoso 3 2 Ana $1200,00
9. Seleção com “select”
• Uma consulta simples em uma tabela escolhendo algumas linhas da mesma.
• Exemplo: selecionar todas as cidade de MG
• Select * from `cidade´ where `estado´=`MG´;
• Resultado da consulta:
ID Nome Estado
1 Patos de Minas MG
2 Uberlândia MG
• Podemos ainda ordenar o resultado por alguma coluna usando a cláusula
“order by” com opções: asc (ascendente) ou desc (descendente)
• Exemplo, ordenando por Nome de forma decrescente
• Select * from `cidade´ where `estado´=`MG´ order by `nome´ desc;
ID Nome Estado
2 Uberlândia MG
1 Patos de Minas MG
10. Projeção com “select”
• Uma projeção é uma seleção com a escolha das colunas a serem mostradas
ao invés de serem todas elas
• Select `nome´,`estado´ from `cidade´;
• Resultado desta projeção:
• O “*” após o “select” indica todas as colunas, se desejar escolher as colunas deve
substituir o “*” pelos nomes das colunas separados por “,” isso que é fazer a
projeção de uma consulta.
• Podemos ter ter uma “projeção” juntamente com uma “seleção” e “ordenação”
• Select `estado´,`nome´ from `cidade´ where `estado´=`MG´ order by `nome´ desc;
Estado Nome
MG Uberlândia
MG Patos de Minas
Nome Estado
Patos de Minas MG
Uberlândia MG
São Paulo SP
11. Junção: Produto Cartesiano
• Uma junção é um select feito em duas ou mais tabelas de forma a resultar
em um produto cartesiano entre elas. Assim se for feita em duas tabelas A e
B, todas as linhas de A são combinadas com todas as linhas de B
• Exemplo: select * from `cliente´,`cidade´;
• Resultado desta projeção terá 12 linhas = 4 de cliente X 3 de cidade
ID Nome Cidade Vendedor Ultima Venda Vendas ID Nome Estado
1 Só Argamassas 2 1 José $500,00 1 Patos de Minas MG
2 A Constrular 1 3 Maria $300,00 1 Patos de Minas MG
3 Barato Acabamentos 1 2 André $0,00 1 Patos de Minas MG
4 Supermercado Frondoso 3 2 Ana $1200,00 1 Patos de Minas MG
1 Só Argamassas 2 1 José $500,00 2 Uberlândia MG
2 A Constrular 1 3 Maria $300,00 2 Uberlândia MG
3 Barato Acabamentos 1 2 André $0,00 2 Uberlândia MG
4 Supermercado Frondoso 3 2 Ana $1200,00 2 Uberlândia MG
1 Só Argamassas 2 1 José $500,00 3 São Paulo SP
2 A Constrular 1 3 Maria $300,00 3 São Paulo SP
3 Barato Acabamentos 1 2 André $0,00 3 São Paulo SP
4 Supermercado Frondoso 3 2 Ana $1200,00 3 São Paulo SP
12. Junção com Seleção
• A junção sempre terá o número de linhas igual ao produto das linhas de cada tabela da
select. Assim, se tivermos 3 tabelas: A,B,C o total de linhas da junção AxBxC será: linhas
A X linhas B X linhas C
• As colunas resultantes serão a soma das colunas de todas as tabelas. Ou seja: colunas A
+ colunas B + colunas C. Se as colunas tem mesmo nome então usamos o nome da
tabela que ela pertence seguida de “.” e o seu nome: A.id, B.id, C.id para diferenciar
• Os resultados de junção podem ser enormes, assim normalmente deve-se fazer uma
“seleção” e “projeção” no resultado para se ter um resultado com algum sentido. Em
nosso exemplo seria ligar a tabela “cliente” com a “cidade” levando em consideração a
chave estrangeira em “cliente” que indica a qual cidade ele se localiza
• Exemplo: select * from `cliente´,`cidade´ where cliente.cidade = cidade.id;
• Veja que agora o resultado da junção faz mais sentido: cada cliente com sua respectiva
cidade onde estão localizados
Colunas de `cliente´ Colunas de `cidade´
ID Nome Cidade Vendedor Ultima Venda Vendas ID Nome Estado
1 Só Argamassas 2 1 José $500,00 2 Uberlândia MG
2 A Constrular 1 3 Maria $300,00 1 Patos de Minas MG
3 Barato Acabamentos 1 2 André $0,00 1 Patos de Minas MG
4 Supermercado Frondoso 3 2 Ana $1200,00 3 São Paulo SP
13. Junção com Projeção
• Na junção podemos “apelidar” as tabelas para tornar mais fácil seu
manuseio, assim “cliente” pode ser “a” e “cidade” será “b”
• Exemplo: select * from `cliente´ a, ` cidade´b where a.cidade = b.id;
• Podemos também projetar as colunas que desejamos no resultado e
apelida-las com nomes mais próximo ao real, assim:
• Select a.nome as Cliente, b.nome as Cidade, b.estado from cliente
a, cidade b where a.cidade = b.id
• O resultado deste último comando “select” seria:
Cliente Cidade Estado
Só Argamassas Uberlândia MG
A Constrular Patos de Minas MG
Barato Acabamentos Patos de Minas MG
Supermercado Frondoso São Paulo SP
14. A Cláusula “where”
• A cláusula “where” é muito importante para o
comando “select”, pois por ela podemos limitar o
conjunto de linhas selecionadas da consulta e
nos atermos somente à informação necessária
• A condição resultante do “where” sempre será
um valor lógico (True ou False) e será executado
para cada linha da consulta resultante podendo
usar qualquer combinação das colunas
selecionadas e ser aplicado alguns operadores:
• () – parênteses vem primeiro, mais internos
• As Funções e operadores lógicos vem a seguir
• Operador NOT seguido de AND, depois OR
15. Operadores da Cláusula “where”
Operadores:
• = igualdade
• > maior que
• < menor que
• >= maior ou igual a
• <= menor ou igual a
• IS NULL retorna verdade se o valor é indefinido NULL
• IN (valor1, valor2,..., valorN) operador “está em”
• BETWEEN...AND operador “entre valores”
• LIKE “%...%” operador string “semelhante a”
Funções de teste e outros propósitos de consulta:
• LOWER(“Texto”) – texto todo em minúsculo
• UPPER(“Texto”) – texto todo em maiúsculo
• SUBSTR(“Texto” FROM posi FOR qde) devolve parte do “Texto” que vai
de “posi” até “qtde” caracteres
• EXTRACT DAY FROM data, EXTRACT MONTH FROM data, EXTRACT YEAR
FROM data: pega respectivamente o DIA, MÊS ou ANO de “data”
16. A Cláusula “order by”
• A cláusula “order by” no final do comando select
indica para qual ou quais colunas o resultado deverá
ser ordenado
• Se for escolhida uma coluna de texto, será ordenado
em ordem alfabética ascendente, se for uma coluna
numérica, será em ordem crescente de valor. Se for
escolhida uma coluna de data, o resultado sairá em
ordem ascendente de data. E assim sucessivamente.
• Para mudarmos de “ascendente” para
“descendente” usamos o qualificador “desc” após o
nome da coluna a ser ordenada
• Se desejarmos uma ordem por mais de uma coluna
então a primeira coluna da cláusula será a ordem
principal, a segunda a ordem secundária dentro da
ordem primária e assim sucessivamente
17. Exemplos de Order By
• Todas as cidades em ordem alfabética crescente:
Select * from cidade order by nome;
• Todos os vendedores em ordem alfabética inversa (z..a) sem
considerar diferença entre letras maiúsculas e minúsculas:
Select * from vendedor order by lower(nome) desc;
• Todos os nomes dos clientes com os nomes das suas cidades em
ordem alfabética de cidade e dentro dessa ordem ordenar pelo
nome do cliente sem considerar diferença de caso (maiúsculas e
minúsculas)
Select a.nome, b.nome from cliente a, cidade b
where a.cidade = b.id order by lower(b.nome), lower(a.nome)
• Todos os nomes dos clientes com nomes dos seus vendedores em
ordem alfabética de vendedor e dentro dessa ordem ordenar
pelo nome do cliente sem considerar diferença de caso
Select a.nome, b.nome from cliente a, vendedor b
where a.vendedor = b.id order by lower(b.nome), lower(a.nome)

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - Filtros
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Banco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesBanco II - PostgreSQL - Funções
Banco II - PostgreSQL - Funções
 
Curso SQL Server 2005
Curso SQL Server 2005Curso SQL Server 2005
Curso SQL Server 2005
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL Workbench
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
SQL parte 2
SQL parte 2SQL parte 2
SQL parte 2
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 
SQL
SQLSQL
SQL
 
Excel avancado 2015
Excel avancado 2015Excel avancado 2015
Excel avancado 2015
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 
O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?
 
Aula 6 sql - introdução
Aula 6   sql - introduçãoAula 6   sql - introdução
Aula 6 sql - introdução
 

Andere mochten auch

Guida al mondo del Franchising: tutte le informazioni per aprire un franchising
Guida al mondo del Franchising: tutte le informazioni per aprire un franchisingGuida al mondo del Franchising: tutte le informazioni per aprire un franchising
Guida al mondo del Franchising: tutte le informazioni per aprire un franchisingLEF2014
 
Calzados de seguridad EL FUERTE "Work Line"
Calzados de seguridad EL FUERTE "Work Line"Calzados de seguridad EL FUERTE "Work Line"
Calzados de seguridad EL FUERTE "Work Line"VITRINAS BOLIVIA
 
Liste des journalistes
Liste des journalistesListe des journalistes
Liste des journalistesMed Mahla
 
10 Cosas que debe saber un Front-End
10 Cosas que debe saber un Front-End10 Cosas que debe saber un Front-End
10 Cosas que debe saber un Front-Endrubenavilah
 
Formas cores objetos
Formas cores objetosFormas cores objetos
Formas cores objetoseducacaoxxi
 
Versace
VersaceVersace
Versacejucajp
 
The Variable Cost in Systems Engineering Trade-Offs - Design to Cost
The Variable Cost in Systems Engineering Trade-Offs - Design to CostThe Variable Cost in Systems Engineering Trade-Offs - Design to Cost
The Variable Cost in Systems Engineering Trade-Offs - Design to CostMarco Lisi
 
Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Cláudio Amaral
 
Livro ebook-andando-nos-passos-de-jesus
Livro ebook-andando-nos-passos-de-jesusLivro ebook-andando-nos-passos-de-jesus
Livro ebook-andando-nos-passos-de-jesusAlessandro Ferreira
 
CcáCeres R Ramos Pollock.10.09
CcáCeres R Ramos Pollock.10.09CcáCeres R Ramos Pollock.10.09
CcáCeres R Ramos Pollock.10.09pollock
 
ночь в музее 2014
ночь в музее 2014ночь в музее 2014
ночь в музее 2014Kseniia Tomilova
 
COIED2_O ambiente digital e a aprendizagem da Língua Materna
COIED2_O ambiente digital e a aprendizagem da Língua MaternaCOIED2_O ambiente digital e a aprendizagem da Língua Materna
COIED2_O ambiente digital e a aprendizagem da Língua MaternaCOIED
 
Atualidades Brasil e Mundo
Atualidades Brasil e MundoAtualidades Brasil e Mundo
Atualidades Brasil e Mundojorgelapolinario
 

Andere mochten auch (20)

Guida al mondo del Franchising: tutte le informazioni per aprire un franchising
Guida al mondo del Franchising: tutte le informazioni per aprire un franchisingGuida al mondo del Franchising: tutte le informazioni per aprire un franchising
Guida al mondo del Franchising: tutte le informazioni per aprire un franchising
 
FT9 les 7 en 8
FT9 les 7 en 8FT9 les 7 en 8
FT9 les 7 en 8
 
Arte digital (1)
Arte digital (1)Arte digital (1)
Arte digital (1)
 
Calzados de seguridad EL FUERTE "Work Line"
Calzados de seguridad EL FUERTE "Work Line"Calzados de seguridad EL FUERTE "Work Line"
Calzados de seguridad EL FUERTE "Work Line"
 
Liste des journalistes
Liste des journalistesListe des journalistes
Liste des journalistes
 
10 Cosas que debe saber un Front-End
10 Cosas que debe saber un Front-End10 Cosas que debe saber un Front-End
10 Cosas que debe saber un Front-End
 
Formas cores objetos
Formas cores objetosFormas cores objetos
Formas cores objetos
 
Versace
VersaceVersace
Versace
 
The Variable Cost in Systems Engineering Trade-Offs - Design to Cost
The Variable Cost in Systems Engineering Trade-Offs - Design to CostThe Variable Cost in Systems Engineering Trade-Offs - Design to Cost
The Variable Cost in Systems Engineering Trade-Offs - Design to Cost
 
Mobila online
Mobila onlineMobila online
Mobila online
 
Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Sistema Operacional - Pratica003
Sistema Operacional - Pratica003
 
Manuel bandeira
Manuel bandeiraManuel bandeira
Manuel bandeira
 
SISTEM SARAF
SISTEM SARAFSISTEM SARAF
SISTEM SARAF
 
MIB Sept 09 _ SMH
MIB  Sept 09 _ SMHMIB  Sept 09 _ SMH
MIB Sept 09 _ SMH
 
Livro ebook-andando-nos-passos-de-jesus
Livro ebook-andando-nos-passos-de-jesusLivro ebook-andando-nos-passos-de-jesus
Livro ebook-andando-nos-passos-de-jesus
 
CcáCeres R Ramos Pollock.10.09
CcáCeres R Ramos Pollock.10.09CcáCeres R Ramos Pollock.10.09
CcáCeres R Ramos Pollock.10.09
 
Rencana pelaksanaan pembelajaran
Rencana pelaksanaan pembelajaranRencana pelaksanaan pembelajaran
Rencana pelaksanaan pembelajaran
 
ночь в музее 2014
ночь в музее 2014ночь в музее 2014
ночь в музее 2014
 
COIED2_O ambiente digital e a aprendizagem da Língua Materna
COIED2_O ambiente digital e a aprendizagem da Língua MaternaCOIED2_O ambiente digital e a aprendizagem da Língua Materna
COIED2_O ambiente digital e a aprendizagem da Língua Materna
 
Atualidades Brasil e Mundo
Atualidades Brasil e MundoAtualidades Brasil e Mundo
Atualidades Brasil e Mundo
 

Ähnlich wie Banco dedados aula002

Programação em Banco de Dados - Aula 23/08/2018
Programação em Banco de Dados - Aula 23/08/2018Programação em Banco de Dados - Aula 23/08/2018
Programação em Banco de Dados - Aula 23/08/2018Elaine Cecília Gatto
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoCarlos Santos
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxSaraR49
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4Ed W. Jr
 
Conceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosConceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosAlefe Variani
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_paganacri
 
Banco de Dados MySQL
Banco de Dados MySQLBanco de Dados MySQL
Banco de Dados MySQLMarcus Couto
 
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLLabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLCarlos Santos
 
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdfAula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdfAngeloOliveira60
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLDaniel Brandão
 
Aula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrõesAula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrõesDalton Martins
 
QADscsssa sql clean extreme squery .pptx
QADscsssa sql clean extreme squery .pptxQADscsssa sql clean extreme squery .pptx
QADscsssa sql clean extreme squery .pptxEduardoGuambe2
 

Ähnlich wie Banco dedados aula002 (20)

Programação em Banco de Dados - Aula 23/08/2018
Programação em Banco de Dados - Aula 23/08/2018Programação em Banco de Dados - Aula 23/08/2018
Programação em Banco de Dados - Aula 23/08/2018
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4
 
Conceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosConceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de Dados
 
Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_pag
 
Banco de Dados MySQL
Banco de Dados MySQLBanco de Dados MySQL
Banco de Dados MySQL
 
BD I - Aula 10 A - Introducao a SQL
BD I - Aula 10 A - Introducao a SQLBD I - Aula 10 A - Introducao a SQL
BD I - Aula 10 A - Introducao a SQL
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLLabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Sql01
Sql01Sql01
Sql01
 
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdfAula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
Aula03 - BDII - Comsulta Básica, Consultas com Funções e Agregação.pdf
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
Aula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrõesAula 03 - Identificando e tratando padrões
Aula 03 - Identificando e tratando padrões
 
QADscsssa sql clean extreme squery .pptx
QADscsssa sql clean extreme squery .pptxQADscsssa sql clean extreme squery .pptx
QADscsssa sql clean extreme squery .pptx
 
Sql junções
Sql junçõesSql junções
Sql junções
 

Mehr von Cláudio Amaral

DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosCláudio Amaral
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Cláudio Amaral
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Cláudio Amaral
 
Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Cláudio Amaral
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Cláudio Amaral
 
Banco de Dados II - Aula1
Banco de Dados II - Aula1Banco de Dados II - Aula1
Banco de Dados II - Aula1Cláudio Amaral
 
Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001Cláudio Amaral
 
Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Cláudio Amaral
 
Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Cláudio Amaral
 
Sistema Operacional - Aula005
Sistema Operacional - Aula005Sistema Operacional - Aula005
Sistema Operacional - Aula005Cláudio Amaral
 
Sistema Operacional - Aula003
Sistema Operacional - Aula003Sistema Operacional - Aula003
Sistema Operacional - Aula003Cláudio Amaral
 
Sistema Operacional - Aula002
Sistema Operacional - Aula002Sistema Operacional - Aula002
Sistema Operacional - Aula002Cláudio Amaral
 
Sistema Operacional - Aula001
Sistema Operacional - Aula001Sistema Operacional - Aula001
Sistema Operacional - Aula001Cláudio Amaral
 
Sistema Operacional - Aula006
Sistema Operacional - Aula006Sistema Operacional - Aula006
Sistema Operacional - Aula006Cláudio Amaral
 
Sistema Operacional - Aula004
Sistema Operacional - Aula004Sistema Operacional - Aula004
Sistema Operacional - Aula004Cláudio Amaral
 

Mehr von Cláudio Amaral (20)

DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004
 
Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003Projeto de Sistemas - Aula003
Projeto de Sistemas - Aula003
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002
 
Banco de Dados II - Aula1
Banco de Dados II - Aula1Banco de Dados II - Aula1
Banco de Dados II - Aula1
 
Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001Projeto de Sistemas - Parte001
Projeto de Sistemas - Parte001
 
Programação-Aula004
Programação-Aula004Programação-Aula004
Programação-Aula004
 
Aplicativo aula006
Aplicativo aula006Aplicativo aula006
Aplicativo aula006
 
Aplicativo aula008
Aplicativo aula008Aplicativo aula008
Aplicativo aula008
 
Aplicativo aula007
Aplicativo aula007Aplicativo aula007
Aplicativo aula007
 
Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Sistema Operacional - Pratica002
Sistema Operacional - Pratica002
 
Sistema Operacional - Pratica001
Sistema Operacional - Pratica001Sistema Operacional - Pratica001
Sistema Operacional - Pratica001
 
Sistema Operacional - Aula005
Sistema Operacional - Aula005Sistema Operacional - Aula005
Sistema Operacional - Aula005
 
Sistema Operacional - Aula003
Sistema Operacional - Aula003Sistema Operacional - Aula003
Sistema Operacional - Aula003
 
Sistema Operacional - Aula002
Sistema Operacional - Aula002Sistema Operacional - Aula002
Sistema Operacional - Aula002
 
Sistema Operacional - Aula001
Sistema Operacional - Aula001Sistema Operacional - Aula001
Sistema Operacional - Aula001
 
Sistema Operacional - Aula006
Sistema Operacional - Aula006Sistema Operacional - Aula006
Sistema Operacional - Aula006
 
Sistema Operacional - Aula004
Sistema Operacional - Aula004Sistema Operacional - Aula004
Sistema Operacional - Aula004
 
Aplicativo aula03
Aplicativo aula03Aplicativo aula03
Aplicativo aula03
 

Banco dedados aula002

  • 1. Aula 002 Banco de Dados PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  • 2. PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  • 3. 1. A SQL – Structured Query Language • Linguagem de Definição de Dados (DDL) juntamente com a Linguagem de Manipulação dos dados (DML) • Comandos em inglês mais próximos da inteligência humana do que as linguagens de máquina. • Principais comandos DDL: “create database”, “use database”, “create table” • Principais comandos DML: “insert”, “update”, “delete” e “select”
  • 4. 2. Principais comandos DDL • CREATE DATABASE – cria um banco de dados para conter todas as estruturas necessárias ao mesmo: espaço para o dicionário de dados, espaço para os dados e espaço para as “stored procedures” e “triggers” • Ex: create database clinica; • Existem parâmetros para se usar esse comando mas basicamente essa é a sintaxe. Um parâmetro muito usado é o conjunto de caracteres • Exemplo: create database `exames` character set 'utf8’ collate 'utf8_general_ci';
  • 5. 3. Principais comandos DDL • USE DATABASE `nome´; - abre o banco de dados para ser usado no programa SQL • CREATE TABLE – cria uma tabela dentro do banco com as definições especificadas na sintaxe do comando. Exemplo: CREATE TABLE `cidade` ( `id` bigint(20) NOT NULL auto_increment, `nome` varchar(100) default NULL, `uf` char(2) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
  • 6. 4. Principais comandos DML • INSERT – usado para incluir dados em tabelas do Banco de Dados. Exemplo: INSERT INTO `cidade` (`id`, `nome`, `uf`) VALUES (1,'Patos de Minas','MG'); Sintaxe: insert into `tabela´ (`col1´,...,`colN´) values (`val1´,...,`valN´); Onde cada “val” combina com o tipo corresponde ao seu “col”
  • 7. 5. Principais comandos DML • UPDATE – usado para alterar dados em tabelas do Banco de Dados. Exemplo: ALTER TABLE `cidade´ SET `nome´ = `PO´ WHERE `id´ = 1; Sintaxe: alter table `tabela´ set `coluna´ = `novo_valor´ [where `condição_lógica´]; Ou Alter table `tabela´ set `col1´=`val1´, `col2´=`val2´,...,`colN´=`valN´ where `condição´;
  • 8. 6. Principais comandos DML • DELETE – usado para excluir linhas em tabelas do Banco de Dados. Exemplo: DELETE FROM `cidade´ WHERE `id´ = 1; Sintaxe: delete from `tabela´ [where `condição_lógica´]; Se a condição não for definida apaga todas as linhas da tabela sem confirmação.
  • 9. 7. Principais comandos DML • SELECT – é o comando mais usado da DML com ele podemos consultar os dados do banco. As consultas podem ser: seleção, projeção, junção ou União. • Seleção: consulta simples a uma tabela selecionando algumas linhas da mesma de acordo com uma ou mais condições lógicas • Projeção: consulta simples a uma tabela onde escolhemos além das linhas a serem mostradas, também as colunas que queremos • Junção: é a fusão de duas ou mais tabelas ligadas por suas chaves estrangeiras e primárias de forma a constituir uma ampla gama de dados resultando em um produto cartesiano entre as mesmas, o qual ainda poderá sofrer uma seleção ou projeção • União: é a consulta a duas ou mais tabelas com a mesma estrutura de forma a “somar” suas linhas e não “multiplicar” como no caso da junção.
  • 10. 8. O Comando Select – Parte1 • A partir desse ponto vamos considerar um banco de dados `empresa´ com as tabelas `cliente´, `cidade´,`vendedor´ seguindo o DER: VENDEDOR CLIENTE CIDADEV-C C-C 1 N N 1 • Vendedor (PK=ID) Cidade (PK=ID) ID Nome Comissão 1 José da Silva 1,50% 2 Maria Aparecida 3,00% 3 Antônio Costa 1,50% ID Nome Estado 1 Patos de Minas MG 2 Uberlândia MG 3 São Paulo SP • Cliente (PK=ID, FK1=cidade, FK2=vendedor) ID Nome Cidade Vendedor Ultima Venda Vendas 1 Só Argamassas 2 1 José $500,00 2 A Constrular 1 3 Maria $300,00 3 Barato Acabamentos 1 2 André $0,00 4 Supermercado Frondoso 3 2 Ana $1200,00
  • 11. 9. Seleção com “select” • Uma consulta simples em uma tabela escolhendo algumas linhas da mesma. • Exemplo: selecionar todas as cidade de MG • Select * from `cidade´ where `estado´=`MG´; • Resultado da consulta: ID Nome Estado 1 Patos de Minas MG 2 Uberlândia MG • Podemos ainda ordenar o resultado por alguma coluna usando a cláusula “order by” com opções: asc (ascendente) ou desc (descendente) • Exemplo, ordenando por Nome de forma decrescente • Select * from `cidade´ where `estado´=`MG´ order by `nome´ desc; ID Nome Estado 2 Uberlândia MG 1 Patos de Minas MG
  • 12. 10. Projeção com “select” • Uma projeção é uma seleção com a escolha das colunas a serem mostradas ao invés de serem todas elas • Select `nome´,`estado´ from `cidade´; • Resultado desta projeção: • O “*” após o “select” indica todas as colunas, se desejar escolher as colunas deve substituir o “*” pelos nomes das colunas separados por “,” isso que é fazer a projeção de uma consulta. • Podemos ter ter uma “projeção” juntamente com uma “seleção” e “ordenação” • Select `estado´,`nome´ from `cidade´ where `estado´=`MG´ order by `nome´ desc; Estado Nome MG Uberlândia MG Patos de Minas Nome Estado Patos de Minas MG Uberlândia MG São Paulo SP
  • 13. 11. Junção: Produto Cartesiano • Uma junção é um select feito em duas ou mais tabelas de forma a resultar em um produto cartesiano entre elas. Assim se for feita em duas tabelas A e B, todas as linhas de A são combinadas com todas as linhas de B • Exemplo: select * from `cliente´,`cidade´; • Resultado desta projeção terá 12 linhas = 4 de cliente X 3 de cidade ID Nome Cidade Vendedor Ultima Venda Vendas ID Nome Estado 1 Só Argamassas 2 1 José $500,00 1 Patos de Minas MG 2 A Constrular 1 3 Maria $300,00 1 Patos de Minas MG 3 Barato Acabamentos 1 2 André $0,00 1 Patos de Minas MG 4 Supermercado Frondoso 3 2 Ana $1200,00 1 Patos de Minas MG 1 Só Argamassas 2 1 José $500,00 2 Uberlândia MG 2 A Constrular 1 3 Maria $300,00 2 Uberlândia MG 3 Barato Acabamentos 1 2 André $0,00 2 Uberlândia MG 4 Supermercado Frondoso 3 2 Ana $1200,00 2 Uberlândia MG 1 Só Argamassas 2 1 José $500,00 3 São Paulo SP 2 A Constrular 1 3 Maria $300,00 3 São Paulo SP 3 Barato Acabamentos 1 2 André $0,00 3 São Paulo SP 4 Supermercado Frondoso 3 2 Ana $1200,00 3 São Paulo SP
  • 14. 12. Junção com Seleção • A junção sempre terá o número de linhas igual ao produto das linhas de cada tabela da select. Assim, se tivermos 3 tabelas: A,B,C o total de linhas da junção AxBxC será: linhas A X linhas B X linhas C • As colunas resultantes serão a soma das colunas de todas as tabelas. Ou seja: colunas A + colunas B + colunas C. Se as colunas tem mesmo nome então usamos o nome da tabela que ela pertence seguida de “.” e o seu nome: A.id, B.id, C.id para diferenciar • Os resultados de junção podem ser enormes, assim normalmente deve-se fazer uma “seleção” e “projeção” no resultado para se ter um resultado com algum sentido. Em nosso exemplo seria ligar a tabela “cliente” com a “cidade” levando em consideração a chave estrangeira em “cliente” que indica a qual cidade ele se localiza • Exemplo: select * from `cliente´,`cidade´ where cliente.cidade = cidade.id; • Veja que agora o resultado da junção faz mais sentido: cada cliente com sua respectiva cidade onde estão localizados Colunas de `cliente´ Colunas de `cidade´ ID Nome Cidade Vendedor Ultima Venda Vendas ID Nome Estado 1 Só Argamassas 2 1 José $500,00 2 Uberlândia MG 2 A Constrular 1 3 Maria $300,00 1 Patos de Minas MG 3 Barato Acabamentos 1 2 André $0,00 1 Patos de Minas MG 4 Supermercado Frondoso 3 2 Ana $1200,00 3 São Paulo SP
  • 15. 13. Junção com Projeção • Na junção podemos “apelidar” as tabelas para tornar mais fácil seu manuseio, assim “cliente” pode ser “a” e “cidade” será “b” • Exemplo: select * from `cliente´ a, ` cidade´b where a.cidade = b.id; • Podemos também projetar as colunas que desejamos no resultado e apelida-las com nomes mais próximo ao real, assim: • Select a.nome as Cliente, b.nome as Cidade, b.estado from cliente a, cidade b where a.cidade = b.id • O resultado deste último comando “select” seria: Cliente Cidade Estado Só Argamassas Uberlândia MG A Constrular Patos de Minas MG Barato Acabamentos Patos de Minas MG Supermercado Frondoso São Paulo SP
  • 16. 14. A Cláusula “where” • A cláusula “where” é muito importante para o comando “select”, pois por ela podemos limitar o conjunto de linhas selecionadas da consulta e nos atermos somente à informação necessária • A condição resultante do “where” sempre será um valor lógico (True ou False) e será executado para cada linha da consulta resultante podendo usar qualquer combinação das colunas selecionadas e ser aplicado alguns operadores: • () – parênteses vem primeiro, mais internos • As Funções e operadores lógicos vem a seguir • Operador NOT seguido de AND, depois OR
  • 17. 15. Operadores da Cláusula “where” Operadores: • = igualdade • > maior que • < menor que • >= maior ou igual a • <= menor ou igual a • IS NULL retorna verdade se o valor é indefinido NULL • IN (valor1, valor2,..., valorN) operador “está em” • BETWEEN...AND operador “entre valores” • LIKE “%...%” operador string “semelhante a” Funções de teste e outros propósitos de consulta: • LOWER(“Texto”) – texto todo em minúsculo • UPPER(“Texto”) – texto todo em maiúsculo • SUBSTR(“Texto” FROM posi FOR qde) devolve parte do “Texto” que vai de “posi” até “qtde” caracteres • EXTRACT DAY FROM data, EXTRACT MONTH FROM data, EXTRACT YEAR FROM data: pega respectivamente o DIA, MÊS ou ANO de “data”
  • 18. 16. A Cláusula “order by” • A cláusula “order by” no final do comando select indica para qual ou quais colunas o resultado deverá ser ordenado • Se for escolhida uma coluna de texto, será ordenado em ordem alfabética ascendente, se for uma coluna numérica, será em ordem crescente de valor. Se for escolhida uma coluna de data, o resultado sairá em ordem ascendente de data. E assim sucessivamente. • Para mudarmos de “ascendente” para “descendente” usamos o qualificador “desc” após o nome da coluna a ser ordenada • Se desejarmos uma ordem por mais de uma coluna então a primeira coluna da cláusula será a ordem principal, a segunda a ordem secundária dentro da ordem primária e assim sucessivamente
  • 19. 17. Exemplos de Order By • Todas as cidades em ordem alfabética crescente: Select * from cidade order by nome; • Todos os vendedores em ordem alfabética inversa (z..a) sem considerar diferença entre letras maiúsculas e minúsculas: Select * from vendedor order by lower(nome) desc; • Todos os nomes dos clientes com os nomes das suas cidades em ordem alfabética de cidade e dentro dessa ordem ordenar pelo nome do cliente sem considerar diferença de caso (maiúsculas e minúsculas) Select a.nome, b.nome from cliente a, cidade b where a.cidade = b.id order by lower(b.nome), lower(a.nome) • Todos os nomes dos clientes com nomes dos seus vendedores em ordem alfabética de vendedor e dentro dessa ordem ordenar pelo nome do cliente sem considerar diferença de caso Select a.nome, b.nome from cliente a, vendedor b where a.vendedor = b.id order by lower(b.nome), lower(a.nome)