distinct - ultiresumos

Propaganda
ULTI RESUMOS
AMBIENTES
COMPUTACIONAIS
ULTIRESUMOS.COM.BR
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Sistema Operacional
Sistema Computacional = hardware + software
 Tipos de Software:
 Programas do sistema: gerenciam a operação do computador
 Programas de aplicação: programas de usuário
 Sistema Operacional: principal programa do sistema, que controla todos os
recursos do computador (dispositivos físicos e funções de software).
DEFINIÇÃO
•
É um programa de controle do computador. O Sistema Operacional é
responsável por alocar recursos de hardware e escalonar tarefas. Ele
também deve prover uma interface para o usuário - ele fornece ao
usuário uma maneira de acesso aos recursos do computador. Sobell.
•
Um Sistema Operacional pode ser definido como um gerenciador dos
recursos que compõem o computador (processador, memória, I/O,
arquivos, etc). “Os problemas centrais que o Sistema Operacional deve
resolver são o compartilhamento ordenado, a proteção dos recursos a
serem usados pelas aplicações do usuário e o interfaceamento entre
este e a máquina.” Stemmer.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
PRINCIPAIS ATRIBUTOS
•
Abstração de Hardware  Máquina Virtual
apresenta ao usuário uma máquina mais simples
•
S.O. é a porção de software que roda em modo kernel ou modo
supervisor  protege o hardware da ação direta do usuário
•
Estabelecer critérios de uso dos recursos e ordem de acesso aos
mesmos, impedindo violação de espaço de memória de processos
concorrentes e tentativas de acesso simultâneo a um mesmo recurso 
gerência e proteção dos dispositivos.
Ferramentas IDE (ambiente integrado de desenvolvimento)
Delphi
O Delphi nada mais é que um simples IDE, IDE você já deve saber é um
ambiente integrado para desenvolvimento composto por compilador, editor de
texto, ferramenta de depuração e algumas frescurinhas a mais.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
O Delphi é RAD, isto é, a medida em que os componentes vão sendo
selecionados, o Delphi escreve o código fonte para você. Os componentes em
geral, incluem classes e propriedades muito utilizadas e que se relacionam com
outros objetos. Tudo que nele existe foi pensando em velocidade de
desenvolvimento.







Possui um compilador extremamente rápido
Possui um ambiente intuitivo e amigável de desenvolvimento
Gera executável isolado (não há necessidade de distribuição de runtime)
Possibilita entender sua biblioteca através de criação de novos
componentes
Possibilita a criação de DLLs (Dinamic Link Library)
Possui um depurador de progama integrado (Integrated Debugger)
Possibilita a criação de aplicações multi-threads
Microsoft Visual Studio Express
O Microsoft Visual Studio Express é um conjunto de ambientes de
desenvolvimento integrados que incluem diversas linguagens de programação:





Visual Basic
Visual Web Developer
Visual C#
Visual C++
SQL Server Express
DBdesigner
Tela Principal do DBDesigner
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Na área de trabalho são inseridas as tabelas e seus respectivos
relacionamentos. a paleta de Ferramentas contém os componentes mais
utilizados na criação e manutenção das tabelas. A navegação permite o
controle da visualização da área de trabalho possibilitando navegar no
diagrama. Os tipos de dados mostram os tipos possíveis de dados e o db
model apresenta as tabelas com seus campos e os relacionamentos com
outras tabelas.
Fragmento de modelo de dados de uma Locadora
Para demonstrar as funcionalidades da DBdesigner, é apresentada a
construção de um fragmento do modelo de dados de uma locadora,
representando suas tabelas com atributos e relacionamentos, não tendo o
objetivo de ser um exemplo completo e complexo. O fragmento é composto
pelas tabelas categoria, filme, estrela, ator, dvd, locação e cliente, com seus
relacionamentos.
Inserindo as tabelas
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
A primeira etapa para construir o estudo de caso deste artigo é inserir as
tabelas e seus atributos. O primeiro passo é criar a tabela curso. Deve-se
inserir na área de trabalho uma tabela (ícone new table localizado na tools
palette). Para definir as propriedades como nome da tabela e seus atributos,
dentre outras características de uma tabela, deve-se clicar duas vezes sobre o
objeto criado. Feito isto, uma janela para a alteração de propriedades da tabela
é aberta.
O DBdesigner é uma ferramenta para a construção de modelos de dados, fácil
de usar, com um aprendizado relativamente rápido, e que proporciona uma boa
produtividade na sua utilização. Tudo isto com a vantagem de ser uma
ferramenta gratuita e com o código fonte aberto. A possibilidade de sincronismo
entre o modelo e o banco é de grande importância para o sucesso desta
ferramenta. Isso faz com que manutenções futuras no banco sejam feitas de
maneira rápida e eficiente. E o fato de salvar e recuperar arquivos no padrão
xml é importante para a possibilidade de comunicação entre diferentes
ferramentas.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
MySQL
O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que
utiliza a linguagem SQL (Linguagem de Consulta Estruturada,
do inglês Structured Query Language) como interface. É atualmente um dos
bancos de dados mais populares, com mais de 10 milhões de instalações pelo
mundo.
Entre os usuários do banco de dados MySQL estão: NASA, Friendster, Banco
Bradesco, Dataprev, HP, Nokia, Sony,Lufthansa, U.S. Army, U.S. Federal
Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco Systems, Google e
outros
Características

Portabilidade (suporta praticamente qualquer plataforma atual)

Compatibilidade (existem drivers ODBC,JBDC e .NET e módulos de
interface para diversas linguagens de programação, como Delfhi, Java,
C/C++, C#, Visual Basic Studio, Python, Perl,PHP, ASP e Ruby)

Excelente desempenho e estabilidade

Pouco exigente quanto a recursos de hardware

Facilidade de uso
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais

É um Software livre com base na GPL

Contempla a utilização de vários Storage Engines como MyISAM, InnoDB,
Falcon, BDB, Archive, Federated, CSV, Solid…

Suporta controle transacional;

Suporta Triggers;

Suporta Cursors (Non-Scrollable e Non-Updatable);

Suporta Stored Procedures e Functions;

Replicação facilmente configurável;

Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL
Inc.
Wamp
Wamp é um completíssimo pacote de software que serve para instalar e
configurar facilmente no seu sistema o famoso servidor Apache, juntamente
com a linguagem de programação PHP e o servidor de base de dados MySQL.
Tudo o que você precisa para montar uma base de dados web em uma única
aplicação.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
BANCO DE DADOS
É uma coleção de dados inter-relacionados, representando informações sobre
um domínio específico
Exemplos:


Lista Telefônica
Fichas do acervo de uma biblioteca
Sistema de Banco de Dados
Consiste em uma coleção de dados inter-relacionados e uma coleção de
programas para prover o acesso a esses dados. O objetivo principal de um
sistema de banco de dados é possibilitar um ambiente que seja adequado e
eficiente para uso na recuperação armazenamento de informações.
Sistemas de Gerenciamento de Banco de Dados (SGBD)
Consistem em uma coleção de dados inter-relacionados e de um conjunto de
programas para acessá-los
Contém Informações
sobre um
empreendimento
particular
Coleção de
Dado
Banco de
Dado
Objetivo dos SGBD









Prover um ambiente que seja conveniente e eficiente para recuperar e
armazenar informações de Bancos de Dados
Eliminar ou Reduzir
Redundância e inconsistência de dados
Dificuldade no acesso aos dados
Isolamento dos dados
Eliminar ou reduzir (Cont.)
Anomalias de acesso concorrente
Problemas de segurança
Abstração de dados Simplifica a interação do usuário com o sistema
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Vantagens da utilização de Banco de Dados






Rapidez na manipulação e no aceso a informação
Redução do esforço humano (desenvolvimento e utilização)
Disponibilização da informação no tempo necessário
Controle integrado de informação distribuído fisicamente
Redução de redundância e de inconsistência de informações
Compartilhamento de dados
Desvantagens da utilização de Banco de Dados






Complexos, difíceis e demorados de projetar
Custos iniciais de software e hardware altos
Danos no banco de dados afetam virtualmente todos os
programas
Necessidade de segurança
Custos altos para conversão de sistemas baseados em arquivos
para banco de dados
Treinamento inicial necessário aos programadores e usuários.
Abstração de Dados

A característica que permite a independência entre programa e
dados e independência entre programa e operação.

Um SGBD fornece aos usuários uma representação conceitual de
dados que não inclui muitos detalhes relativo ao modo como os
dados estão armazenados ou como operações são
implementadas.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Modelagem de dados







Principal objetivo: o desenvolvimento de um modelo que contenha
entidades e relacionamentos, e com isso seja possível representar as
especificações das informações do negócio.
Ajuda a organizar a forma de pensamento sobre os dados,
demonstrando o significado e a aplicação prática deles
Deve fornecer ao desenvolvedor:
Representar o ambiente
Documentar e normalizar
Fornecer processos de validação
Observar processos de relacionamentos entre objeto
Tipos de modelagem de dados
Modelo conceitual: é a forma mais natural dos fatos e está mais próxima da
realidade do ambiente do cliente.O cliente deverá ser envolvido a fim de obter o
levantamento de dados que darão o suporte à construção do modelo.
Construção do diagrama de dados chamado Diagrama de Entidade e
relacionamento, no qual deverão ser identificados todas as entidades e
relacionamentos entre elas.
Modelo Lógico: Leva em conta algumas limitações e implementa recursos
como adequação de padrão e nomenclatura. Define as chaves primárias e
estrangeiras. Deve ser criado à partir do modelo conceitual.
Modelo físico: Fazemos a modelagem física do modelo de bando de dados,
levam-se em conta as limitações do SGBD. Descreve como os dados serão
armazenados, estruturas complexas de baixo nível.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Entidade
O conceito fundamental da abordagem ER é o conceito de entidade
entidade
=
conjunto de objetos 1 da realidade modelada
sobre os quais deseja-se manter informações no banco de dados
Uma entidade representa, no modelo conceitual, um conjunto de objetos
da realidade modelada. Como o objetivo de um modelo ER é modelar de
forma abstrata um BD, interessam-nos somente os objetos sobre os
quais deseja-se manter informações. Vejamos alguns exemplos. No
sistema de informações industrial que usamos no Capítulo 1, alguns
exemplos de entidades poderiam ser os produtos, os tipos de produtos,
as vendas ou as compras. Já em um sistema de contas correntes,
algumas entidades podem ser os clientes, as contas correntes, os
cheques e as agências. Observe que uma entidade pode representar
tanto objetos concretos da realidade (uma pessoa, um automóvel),
quanto objetos abstratos s (um departamento, um endereço²).
Em um DER, uma entidade é representada através de um retângulo que
contém o nome da entidade.
Pessoa
Departamento
Como dito acima, cada retângulo representa um conjunto de objetos
sobre os quais deseja-se guardar informações. Assim, no exemplo, o
primeiro retângulo designa o conjunto de todas as pessoas sobre as
quais se deseja manter informações no banco de dados, enquanto o
segundo retângulo designa o conjunto de todos departamentos sobre os
quais se deseja manter informações. Caso seja necessário referir um
objeto particular (uma determinada pessoa ou um determinado
departamento) fala-se em ocorrência de entidade (alguns autores usam
também o anglicismo “instância” de entidade).
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Atributos
Toda entidade possui atributos, ou seja, características que informam sobre a
entidade.
A entidade Inquilino contém informações sobre Nome, Endereço, Cidade, Data
de Nascimento de cada Inquilino, identificado entre os outros por uma chave
primária, no caso pode ser um atributo Código.
Tipos de atributos
Atributo
Simples
Atributo
Concatenado
Chave
Primária
Chave
Estrangeira
Um único
atributo
representa uma
característica
Mais de um
atributo
representam uma
característica
Um atributo
que é sempre
único dentro de
uma Entidade
Atributo que se
identifica com a
chave primária
em outra
Entidade
Exemplo: Rg do
Inquilino
Exemplo:
Endereço
(Logradouro,
Número,Cidade,
Cep, UF)
Exemplo: CPF
– atributo que
não se repete
entre os
Inquilinos
Exemplo:
Codigo do
Inquilino na
Entidade
Aluguel.
Relacionamento
Relacionamento é a interação entre os objetos que indicam a dinâmica dos
negócios.
Os Relacionamentos são identificados por verbos porque representam as
ações que uma entidade exerce sobre outra. Como exemplo, O Inquilino aluga
imóvel.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
MER – Sistema de Imobiliária
Diagrama Entidade-Relacionamento (DER)
O Diagrama Entidade-Relacionamento descreve toda estrutura lógica do banco
de dados. É possível construí-lo a partir de um MER, identificando assim a
partir de um conceito do mundo real como os dados serão armazenados de
fato.
O DER tem como ênfase os dados e os relacionamentos. Sua representação
utiliza os símbolos:
–
Retângulos – representam as entidades;
–
Elipses – representam os atributos;
–
Losangos – representam os relacionamentos entre as entidades;
–
Linhas – unem os atributos aos conjuntos de entidades e os conjuntos
de entidades aos conjuntos de relacionamentos;
–
Elipses duplas – atributos multivalorados.
Na construção de um projeto de banco de dados é necessário saber quais são
os objetos e os relacionamentos para elaborar o DER , ou seja, descobrir quais
os atributos que compõem as tabelas (objetos).
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Atributo Composto
Exemplo: Endereço. Seu conteúdo poderá ser dividido em vários outros
atributos, como: Rua, Número, Complemento, Bairro, Cep e Cidade.
Este tipo de atributo é chamado de atributo composto. Veremos mais de
sua aplicação no post sobre normalização de dados.
Funcionário (RG, Nome, Sexo, CIDADE, UF)
RG
UF
SEXO
Funcionário
CIDADE
Local
NOME
Atributos Multivalorados
 Criamos uma nova relação R que inclui o atributo multivalorado A
mais a chave primária K da relação que representa a entidade (ou
relacionamento) que tem A como atributo
 A chave primária de R é a combinação de A e K
 Se o atributo multivalorado é composto => incluir seus
componentes atômicos
RG
Nome
Sexo
Funcionários
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Fone
Funcionário (RG, Sexo, Nome)
Telefones_func (RG, Fone)
Atributos Derivados
Resumo Representações de Atributos
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Atributos de Conjunto de Relacionamentos
Exemplos de diagramas ER exceto atributo
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
MER – entidade fracas
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Cardinalidade
A cardinalidade é um conceito importante para ajudar a definir o
relacionamento, ela define o número de ocorrências em um relacionamento.
Para determinar a cardinalidade, deve-se fazer a pergunta relativa ao
relacionamento em ambas as direções.
Um departamento possui quantos empregados?
- no mínimo 1 e no máximo N.
Um empregado está alocado em quantos departamentos?
- no mínimo em 1 e no máximo em 1
Somando-se as cardinalidades, definimos o resultado final do relacionamento,
ou seja, 1:N
Tipos de relacionamento
Existem três tipos de relacionamento entre entidades:



um-para-um
um-para-muitos
muitos-para-muitos
Relacionamento um-para-um
O relacionamento um-para-um é usado quando uma entidade A se relaciona
com uma entidade B e vice-versa.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Este relacionamento é representado pelo sinal: 1:1
Relacionamento um-para-muitos
O relacionamento um-para-muitos é usado quando uma entidade A pode se
relacionar com uma ou mais entidades B.
Este relacionamento é representado pelo sinal: 1:N
Relacionamento muitos-para-muitos
O relacionamento muitos-para-muitos é usado quando várias entidades A se
relacionam com várias entidades B.
Este relacionamento é representado pelo sinal: N:N ou N:M
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Definições e Tipos de dados
Numéricos:
Existem tipos de dados numéricos, que se podem dividir em dois grandes
grupos, os que estão em vírgula flutuante (com decimais) e os que não.
TinyInt: é um número inteiro com ou sem signo. Com signo a margem de
valores válidos é desde -128 até 127. Sem signo, a margem de valores é de 0
até 255.
Bit ou Bool: um número inteiro que pode ser 0 ou 1.
SmallInt: número inteiro com ou sem signo. Com signo a margem de valores
válidos é desde -32768 até 32767. Sem signo, a margem de valores é de 0 até
65535.
MediumInt: número inteiro com ou sem signo. Com signo a margem de valores
válidos é desde -8.388.608 até 8.388.607. Sem signo, a margem de valores é
de 0 até 16777215.
BigInt: número inteiro com ou sem signo. Com signo a margem de valores
válidos é desde -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807.
Sem signo, a margem de valores é de 0 até 18.446.744.073.709.551.615.
Float: número pequeno em vírgula flutuante de precisão simples. Os valores
válidos vão desde -3.402823466E+38 até -1.175494351E-38,0 eté desde
175494351E-38 até 3.402823466E+38.
xReal, Double: número em vírgula flutuante de dupla precisão. Os valores
permitidos
vão
desde
-1.7976931348623157E+308
até
2.2250738585072014E-308, 0 e desde 2.2250738585072014E-308 até
1.7976931348623157E+308.
Decimal, Dec, Numeric: Número em vírgula flutuante desempacotado. O
número armazena-se como uma cadeia.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Tipo Data:
Na hora de armazenar datas, há que ter em conta que MySQL não verifica de
uma maneira estricta se uma data é válida ou não. Simplesmente comprova
que o mês está compreendido entre 0 e 12 e que o dia está compreendido
entre
0
e
31.
Date: tipo data, armazena uma data. A margem de valores vai desde o 1 de
Janeiro de 1001 ao 31 de dezembro de 9999. O formato de armazenamento é
de
ano-mes-dia.
DateTime: Combinação de data e hora. A margem de valores vai desde o 1 ed
Janeiro de 1001 às 0 horas, 0 minutos e 0 segundos ao 31 de Dezembro de
9999 às 23 horas, 59 minutos e 59 segundos. O formato de armazenamento é
de
ano-mes-dia
horas:minutos:segundos
TimeStamp: Combinação de data e hora. A margem vai desde o 1 de Janeiro
de 1970 ao ano 2037. O formato de armazenamento depende do tamanho do
campo:
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Time: armazena uma hora. A margem de horas vai desde -838 horas, 59
minutos e 59 segundos. O formato de armazenamento é 'HH:MM:SS'.
Year: armazena um ano. A margem de valores permitidos vai desde o ano
1901 ao ano 2155. O campo pode ter tamanho dois ou tamanho 4 dependendo
de se queremos armazenar o ano com dois ou quatro algarismos.
Tipos de cadeia:
Char(n): armazena uma cadeia de longitude fixa. A cadeia poderá conter
desde 0 até 255 caracteres.
VarChar(n): armazena uma cadeia de longitude variável. A cadeia poderá
conter desde 0 até 255 caracteres. Dentro dos tipos de cadeia pode-se
distinguir dois subtipos, os tipo Test e os tipo Blob (Binary Large Object) A
diferença entre um tipo e outro é o tratamento que recebem na hora de ordenálos e compará-los. No tipo test ordena-se sem ter importância as maiúsculas e
as minúsculas e no tipo blob ordena-se tendo em conta as maiúsculas e
minúsculas.
Diferença de armazenamento entre os tipos Char e VarChar
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Descrição de tabelas
E descrita em um quadro toda a estrutura da tabela a ser criada, especificando
todos os seus campos, o tipo de cada campo e o tamanho adotado para cada
campo, e uma observação descrevendo o campo da tabela.
A Linguagem de Definição de Dados (SQL-DDL)
A Linguagem de Definição de Dados da SQL (SQL-DDL) é um conjunto
específico de instruções SQL que fornece meios para a definição e modificação
de esquemas de relação, remoção de relações e criação de índices.
Criando tabelas
Uma tabela (ou relação) SQL é definida usando o comando create table:
create table r (A1 D1, A2 D2,...,An Dn)
onde r é o nome da relação, Ai é o nome de um atributo no esquema da
relação r e Di é o tipo do atributo Ai.
create table cliente (
 nome char(30),
 sexo char(1),
 CPF number(11),
 endereco char(30),
 cidade char(30) );
 Uma relação é criada inicialmente vazia. O comando insert pode ser
usado para carregar os dados para a relação.
Removendo uma Tabela


Para remover uma relação de um banco de dados SQL, usa-se o
comando drop table. O comando drop table remove todas as
informações sobre a relação. O comando
drop table r
onde r é o nome de uma relação (tabela) existente.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Alterando uma Tabela
O comando alter table é usado para adicionar, excluir ou alterar atributos em
uma relação existente.
Para inserir um novo atributo em uma tabela é usada a cláusula add.
Todas as tuplas na relação são assinaladas como null para o valor do
novo atributo.
alter table r
add ( A1 D1, A2 D2, ... )
onde r é o nome de uma relação existente e A1 D1, A2 D2, ... é uma lista
contendo nome do atributo (A) a ser adicionado e o tipo do atributo (D),
respectivamente.
Para excluir colunas de uma tabela utiliza-se a cláusula drop.
drop A1, A2, ...
onde r é o nome de uma relação existente e A1, A2, ... é uma lista dos atributos
a serem removidos.
Para alterar o nome de um atributo de uma tabela utiliza-se a cláusula
rename.
alter table r
rename A N/A
onde r é o nome de uma relação existente, A é o nome do atributo a ter o seu
nome alterado para NA . Para alterar o tipo de um atributo utiliza-se a cláusula
modify.
alter table r
modify A1 D1, A2 D2, ...
onde r é o nome de uma relação existente, A1 D1, A2 D2,... é uma lista
contendo o nome do atributo (An) a terá o seu tipo alterado para (Dn).
Restrições de Integridade
Evitando valores nulos
É muito comum definirmos atributos que não podem conter valores nulos. Isto
é, o seu preenchimento é obrigatório para que se mantenha a integridade dos
dados no sistema.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Para evitar que em algum momento uma coluna de uma tabela possa conter
valor nulo (ou não conter valor algum) deve-se utilizar a cláusula NOT NULL
após a definição da coluna.
Exemplo:
create table cliente (
nome char(30) NOT NULL,
sexo char(1),
CPF number(11),
endereco char(40),
cidade char(20) )
No exemplo acima, a atribuição de um valor à coluna nome
é obrigatório. Caso o usuário se esqueça de preenche-lo, o
SGBD apresentará uma mensagem de erro.
Mostrar campos de uma tabela
Para mostrar os campos de uma tabela, basta usar o comando
DESC <TABELA>.
Chave Primária
A função da chave primária é identificar univocamente uma linha da tabela.
Cada tabela deve possuir uma chave primária. Quando se define um atributo
como chave primaria, fica impl ícito as cláusulas UNIQUE e
NOT NULL para este atributo, não sendo necessária a especificação
destas.
create table cliente (
codigo number(5) primary key,
nome char(30) not null,
sexo char(1) ,
CPF number(11) UNIQUE,
endereco char(40),
cidade char(20) DEFAULT ‘Maceio’ )
Opcionalmente pode-se definir a chave primária após a especificação de todos
os atributos da tabela.
Linguagem de Manipulação de Dados
A principal estrutura da SQL DML consiste em três cláusulas: select, from e
where.
select A1, A2, A3, ..., An
from r1, r2, ..., rm
where P
onde Ai representa um atributo r1 é uma tabela
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
P é um predicado (condição/critério de seleção).
select Fcodigo, status
from Fornecedor
where cidade = ‘Paris’
A condição (ou predicado) que segue where pode incluir operadores de
comparação =, <> (diferente), >, >=, < e <=; os operadores
booleanos AND, OR e NOT.
Select Fcodigo, nome
from Fornecedor
where cidade = ‘Paris’
and status > 20
Fcodigo nome
3 Blake
A lista A1, A2, ..., An de atributos pode ser substituída por um asterisco
(*) para selecionar todos os atributos de todas as relações presentes na
cláusula from.
select *
from Fornecedor
O resultado da consulta acima será uma cópia da relação
Fornecedor. O resultado de uma consulta SQL é uma relação.
select status
from Fornecedor
Linguagens de consultas formais são baseadas em noções matemáticas de
relação. Assim, nunca deveriam aparecem tuplas duplicadas nas relações. Na
prática, a eliminação de duplicação é uma relativa perda de tempo. Todavia, a
SQL permite duplicações em relações.
Nos casos em que queremos forçar a eliminação de duplicações, inserimos a
palavra distinct depois de select.
select distinct status
from Fornecedor
comandos Outer Joins com mais de duas tabelas
O funcionamento é o mesmo. O cruzamento será feito na seqüência em que
você lista as tabelas na sua consulta.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Consulta:
SELECT p.nome, e.nome, l.nome
FROM
programadores p
INNER JOIN empresas e ON p.id_empresa = e.id_empresa
INNER JOIN programadores_linguagens pl ON pl.id_programador =
p.id_programador
INNER JOIN linguagens l ON l.id_linguagens = pl.id_linguagens
Como eu quero os programadores e o nome da empresa em que trabalha fiz
uma junção entre as duas tabelas:
> programadores p INNER JOIN empresas e ON p.id_empresa = e.id_empresa
Em seguida, fiz uma junção para saber quais a linguagens que o programador
está vinculado:
> INNER JOIN programadores_linguagens pl ON pl.id_programador =
p.id_programador
Finalmente, como preciso do nome das linguagens de programação, vinculei
também a tabela linguagens:
> INNER JOIN linguagens l ON l.id_linguagens = pl.id_linguagens
Resultado:
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Repare que os programadores Gabriel e Pinter não aparecem no resultado,
isso acontece por que, ao fazer a junção com a tabela
programadores_linguagens eu utilizei a junção INNER JOIN, neste caso, faço
com que o programador obrigatoriamente esteja relacionado à pelo menos uma
linguagem de programação.
Como resolver? Simples basta trocar o INNER JOIN por LEFT JOIN, ou
seja, estou dizendo que quero todos os programadores independente se eles
estão ou não relacionados a uma linguagem de programação
Mas o que irá aparecer no campo nome da programação no resultado da
consulta? O retorno será NULL.
Veja:
SELECT p.nome, e.nome, l.nome
FROM
programadores p
INNER JOIN empresas e ON p.id_empresa = e.id_empresa
LEFT JOIN programadores_linguagens pl ON pl.id_programador =
p.id_programador
LEFT JOIN linguagens l ON l.id_linguagens = pl.id_linguagens
Resultado:
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Em ambos os resultados, eu (Paulinha) fui listada duas vezes, isso ocorre por
que eu estou vinculada a duas linguagens de programação. É possível eliminar
essa repetição usando os comandos GROUP BY e GROUP_CONCAT.
SELECT p.nome, e.nome,GROUP_CONCAT(l.nome)
FROM
programadores p
INNER JOIN empresas e ON p.id_empresa = e.id_empresa
LEFT JOIN programadores_linguagens pl ON pl.id_programador =
p.id_programador
LEFT JOIN linguagens l ON l.id_linguagens = pl.id_linguagens
GROUP BY p.id_programador
HAVING
Consulta para listar todos os e-mails duplicados em uma tabela, mas serve
para qualquer coluna.
SELECT
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
email
FROM tabela
GROUP BY email
HAVING count(email) > 1
ORDER BY email
DISTINCT
Palavra chave que elimina valores duplicados na saída.
Ex.: SELECT DISTINCT estado_cli FROM clientes;
Estado_cli
MG
RJ
SP
LIMIT
O comando LIMIT é quase que obrigatório para sistemas que possuem
grandes bases de informações. Pois você precisa limitar a quantidade de
resultados ao fazer uma consulta no banco.
SELECT * FROM nome_da_tabela LIMIT 50
COUNT
Estabelece um limite de registros a serem mostrados no resultado de sua
consulta.
Ex.: SELECT COUNT(*) FROM Clientes;
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
COUNT(*)
10
Sum
Este comando calcula a somatória de todos os valores de uma coluna
Ex: select sum(cli_salario) as valor_total from clientes;
select sum(cli_salario) as valor_total from clientes where cli_sexo = 'F';
min
Esta função sql retorna o valor mínimo encontrado em uma coluna
Ex: select min(cli_salario) as valor_minimo from clientes;
select min(cli_salario) as salario_minimo from clientes where cli_codigo in(1,3)
max
Esta função sql retorna o valor máximo encontrado em uma coluna
Ex: select max(cli_salario) as valor_minimo from clientes;
select max(cli_salario) as salario_minimo from clientes where cli_codigo in(1,3)
avg
Este comando calcula o valor médio de uma determinada coluna
Ex: select avg(cli_salario) as media_salarial from clientes;
ABS(X)
Retorna o valor absoluto de determinado valor ou coluna de valores.
Ex: select nome _cli, ABS(valor_cli) FROM clientes WHERE valor_cli < 0;
ROUND(X,D)
Arredonda um valor para o inteiro mais próximo, Pode ser passado como
argumento o numero de casas decimal.
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Ex:
select nome_cli, ROUND(valor_ped,2)
FROM clients JOIN pedidos
ON cod_cli = cod_cli_ped
WHERE valor_ped > 100;
TRUNCATE(X,D)
Retorna o número X, truncado para D casas decimais. Se D é 0, o resultado
não terá ponto decimal ou parte fracionária:
Ex:
select nome_cli, truncate(valor_ped,1)
from clientes join pedidos
on cod_cli = cod_cli_ped
where valor_ped > 100
order by nome_cli;
_____________________________________________________________________________
UltiResumos - Ambientes Computacionais
Download