Você está na página 1de 29

ÍNDICE

Instalando o MySQLServer ----------------------------------------------------------------------- 02 Conceitos: --------------------------------------------------------------------------------------------- 02

- O que é um Banco de Dados? ------------------------------------------------------- 02

- Campos ------------------------------------------------------------------------------------ 02

- Registros ---------------------------------------------------------------------------------- 02

- Tabelas ------------------------------------------------------------------------------------ 02

Tipos de ----------------------------------------------------------------------------------------------- 03

- Tipos Numéricos ----------------------------------------------------------------------- 03

- Tipos Data ------------------------------------------------------------------------------- 04

- Tipos String ----------------------------------------------------------------------------- 04

Modelagem ----------------------------------------------------------------------------------------- 05

- Entidade -------------------------------------------------------------------------------- 05

- Atributos ------------------------------------------------------------------------------- 05

Tipos de Atributos ------------------------------------------------------------------------------- 06

- Simples --------------------------------------------------------------------------------- 06

- Composto ------------------------------------------------------------------------------ 06

- Multivalorado ------------------------------------------------------------------------- 06

- Determinante ------------------------------------------------------------------------- 06

Exemplo envolvendo os conceitos que conhecemos ----------------------------------- 07 Exemplo para resolver -------------------------------------------------------------------------- 07

Relacionamentos --------------------------------------------------------------------------------- 07 Graus de Relacionamentos -------------------------------------------------------------------- 08

- Relacionamento um-para-um ---------------------------------------------------- 08

- Relacionamento um-para-muitos ----------------------------------------------- 08

- Relacionamento de muitos-para-muitos -------------------------------------- 09

Normalização ------------------------------------------------------------------------------------- 10

- Anomalias ----------------------------------------------------------------------------- 10 Três principais formas normais de organizar o Banco de Dados --------------------- 10

- Primeira Forma Normal ------------------------------------------------------------ 11

- Segunda Forma Normal ------------------------------------------------------------ 12

- Terceira Forma Normal ------------------------------------------------------------- 13

Instalação do Apache --------------------------------------------------------------------------- 14 Instalação do PHP --------------------------------------------------------------------------------- 14 Configurando o Apache -------------------------------------------------------------------------- 14 Instalação do PHPMyADMIN -------------------------------------------------------------------- 15 Estrutura do Banco de Dados -------------------------------------------------------------------- 15

Criando o Banco de Dados ------------------------------------------------------------------------ 16 Funções para uso em cláusulas SELECT e WHERE ------------------------------------------- 17 01 Operadores e Funções de Tipos Especificados: ---------------------------- 17

a) Parênteses ----------------------------------------------------------------- 17

b) Operadores de Comparação ------------------------------------------- 17

c) Operadores Lógicos ------------------------------------------------------ 20

Funções Strings --------------------------------------------------------------------------------------- 20 Funções Matemáticas ------------------------------------------------------------------------------ 23 Funções de Data e Hora ---------------------------------------------------------------------------- 25 Iniciando o Estudo da Linguagem SQL (MySQLFront) -------------------------------------- 26 Exercicio 01 -------------------------------------------------------------------------------------------- 26 Funções Agregadas ---------------------------------------------------------------------------------- 27 Exercicio 02 -------------------------------------------------------------------------------------------- 27 Insert, Updade e Delete ---------------------------------------------------------------------------- 28 Join ------------------------------------------------------------------------------------------------------- 28 Exercicio 04, Exercicio 05, Exercicio 06, Exercicio 07, Exercicio 08, Exercicio 09 ----- 29

CURSO DE MYSQL

Instalando o MYSQL Server.

Deixe tudo padrão, exceto na tela que apareça incluir o Bin Directory, essa opção deve ser marcada. O usuário e senha deixem vazios, no caso o usuário será root e a senha será vazia.

Conceitos:

- O que é um Banco de Dados?

É um local no qual é possível armazenar informações para consulta ou

utilização quando necessário. Todos os bancos de dados são constituídos por três

elementos básicos: Campos, Registros e Tabelas.

- Campos:

É o espaço reservado para inserção de um determinado dado.

- Registros:

É um conjunto de campos, ou seja, de dados sobre um determinado assunto.

- Tabelas:

Todos os registros, isto é, as fichas que contém os dados que armazenamos, são agrupados tabelas do Banco de Dados.

Nomes de Banco de Dados, Tabelas, Índice, Coluna e Apelidos seguem todas as mesmas regras no MYSQL.

IDENTIFICADOR

TAMANHO MÁXIMO

CARACTERES PERMITIDOS

Banco de Dados

64

Qualquer um, exceto / e o .

Tabela

64

Qualquer um, exceto / e o .

Coluna

64

Todos

Alias

265

Todos

Se o identificador é uma palavra restrita ou contém caracteres especiais você deve sempre coloca-lo entre apóstrofos (‘’), ao usá-lo.

O servidor MYSQL suporta os seguintes estilos de comentário:

# - No fim da linha.

--! - No fim da linha.

/* - Na linha ou em múltiplas linhas */

Tipos de Dados:

O MySQL suporta um certo número de tipos de dados que podem ser agrupados em três categorias:

# Tipos Númericos.

# Tipos De Data e Hora.

# Tipos String (Caracteres).

Observações:

TIPOS NÚMERICOS

- As opções entre colchetes ([ ]) são opcionais.

- Dentre os tipos que se ajustam aos dados a serem inseridos, escolha sempre o de menor tamanho.

- Para dados do tipo inteiro você pode usar a opção Unsigned para especificar inteiros positivos ou zero.

- M especifica o tamanho máximo de exibição.

- D especifica o número de casas decimais. O valor máximo de D é 30 ou M-2.

- Tanto para números inteiros como para números de ponto flutuante você pode

especificar a opção ZEROFILL que preenche os números com zeros iniciais. Colunas especificadas com ZEROFILL são automaticamente configuradas como UNSIGNED;

os números com zeros iniciais. Colunas especificadas com ZEROFILL são automaticamente configuradas como UNSIGNED ; 3

TIPOS DATA

TIPOS DATA Date: É usado quando se necessita apenas o valor da data, sem a parte

Date: É usado quando se necessita apenas o valor da data, sem a parte da hora. Time: O MySQL recupera e mostra valores TIME no formato “HH:MM:SS”. DateTIme: É usado quando você precisa de valores que contém informações sobre Data e Hora. Year: Retorna apenas o valor do ano no formato de 2 ou 4 digitos.

TIPOS STRING

contém informações sobre Data e Hora. Year: Retorna apenas o valor do ano no formato de

MODELAGEM Modelo Entidade Relacionamento (E-R).

Esse é o modelo mais utilizado atualmente, principalmente, devido, à sua simplicidade e eficiência. Baseia-se na percepção de mundo real, que consiste em uma coleção de objetos básicos, chamados entidades e em relacionamentos entre esses objetos.

Ao se utilizar a Modelagem Conceitual de Dados com a técnica de Entidades e Relacionamentos, obteremos resultados e esquemas puramente conceituais sobre a essência de um sistema, ou melhor, sobre o negócio para o qual estamos desenvolvendo um projeto, não se representando procedimentos ou fluxo de dados existentes.

- Entidade:

Define-se entidade como aquele objeto que existe no mundo real como uma identificação distinta e com um significado próprio. São as “coisas” que existem no negócio, ou ainda, descrevem o negócio em si. Maria Raimunda Oliveira, CPF 111222333-44, é uma entidade, uma vez que só existe um único indivíduo com esse nome e número de CPF. Uma entidade pode ser concreta, como uma

caneta ou uma pessoa, ou abstrata, como um conceito ou uma sensação. No Banco de Dados de uma empresa, por exemplo, são entidades: Funcionário, Cliente, Departamento, etc. Cada entidade representa objetos com as mesmas características. Um banco de dados, portanto, compreende uma coleção de conjuntos de entidades do mesmo tipo. O símbolo que representa a entidade no modelo E-R é um retângulo com o nome da entidade escrito no seu interior, por exemplo:

DEPARTAMENTO

Cada objeto pertencente a uma entidade é chamado de Instância. Em uma escola, por exemplo, existem as entidades Funcionários e Alunos, os Funcionários podem ser Professores ou exercerem funções administrativas. Dessa forma, Professor é uma Instância da entidade funcionário. Visualizando ficaria:

FUNCIONÁRIO

PROFESSORES

FUNÇÕES ADMS.

ESCOLA

ALUNOS

- Atributos:

São propriedades (características) que identificam as entidades. Uma entidade é representada por um conjunto de atributos. Cada Instância possui uma coleção de elementos de dados ou atributos. Por exemplo, Nome e Função podem ser Atributos de Departamento.

Da mesma forma, no exemplo da Escola, Nome, Matrícula e Disciplina que leciona podem ser Atributos do Professor. A cada Atributo de uma entidade é associado a um domínio de valores. Esses valores podem ser um conjunto de números inteiros, números reais, cadeias de caracteres ou qualquer outro tipo de valor que o atributo pode assumir. Por exemplo, o domínio do atributo disciplinas seria todas as disciplinas ensinadas na escola. Os Atributos são representados apenas pelo seu nome ligado à entidade por uma linha reata, por exemplo:

-Simples:

DEPARTAMENTO

DEPARTAMENTO
DEPARTAMENTO

Função

Tipos de Atributos

Não possui característica especial. Por exemplo, o nome da empresa é um atributo sem qualquer característica especial.

 

EMPRESA

 

Nome

   

-Composto:

O seu conteúdo é formado por itens menores. Por exemplo, Endereço é formado por Rua, CEP e Bairro.

 

Rua

 

EMPRESA

Endereço

CEP BAIRRO BAIRRO

BAIRRO

-Multivalorado:

O seu conteúdo pode ser formado por mais de uma informação. É indicado colocando- se um asterisco precedendo o nome do atributo, como no caso da empresa que pode possuir mais de um telefone.

-Determinante:

DEPARTAMENTO

DEPARTAMENTO

DEPARTAMENTO
DEPARTAMENTO

*Telefone

O atributo determinante é aquele que define univocamente as instâncias de uma entidade, ou seja, é único para as instâncias de uma entidade. É indicado sublinhando- se o nome do atributo. No exemplo de uma empresa, o CNPJ é um atributo determinante, pois não podem existir duas empresas com o mesmo valor nesse atributo. No exemplo da nossa escola, a matrícula é um atributo determinante, pois não pode existir mais de um funcionário com a mesma matrícula.

DEPARTAMENTO

DEPARTAMENTO

DEPARTAMENTO
DEPARTAMENTO
DEPARTAMENTO
DEPARTAMENTO

CNPJ

Exemplo envolvendo os conceitos que conhecemos:

Uma empresa necessita armazenar os dados de seus funcionários, atualmente em um fichário. Os dados são a Matrícula, o Nome, o Endereço (Rua, CEP, Bairro), o Telefone (pode ter mais de um) e o Cargo, veja o exemplo onde está explicitado o Modelo E-R entidade Funcionário e seus atributos:

Matrícula

Nome FUNCIONÁRIO *Telefone Cargo
Nome
FUNCIONÁRIO
*Telefone
Cargo

EXEMPLO PARA RESOLVER:

Endereço

*Telefone Cargo EXEMPLO PARA RESOLVER: Endereço Rua CEP Bairro Uma clínica médica necessita controlar as

*Telefone Cargo EXEMPLO PARA RESOLVER: Endereço Rua CEP Bairro Uma clínica médica necessita controlar as

Rua

CEP

Bairro

Uma clínica médica necessita controlar as consultas médicas realizadas e marcadas pelos médicos a ela vinculadas assim como acompanhar quem são os pacientes atendidos para manter o acompanhamento clínico dos mesmos. Ao levantarmos os dados para a construção do sistema, nos foi informado que para cada médico a clínica mantém uma ficha com o número de CRM do médico, seu Nome, Endereço, Especialidade etc. Os pacientes preenchem um cadastro com dados pessoais tais como Nome, Endereço, Data de Nascimento, Sexo etc. Toda consulta é registrada em fichário próprio com as informações sobre Médico e Paciente, Diagnóstico etc.

ENTIDADES

Nome sobre Médico e Paciente, Diagnóstico etc. ENTIDADES MÉDICO Nome Data de Nascimento PACIENTE Endereço Sexo

MÉDICO

Médico e Paciente, Diagnóstico etc. ENTIDADES Nome MÉDICO Nome Data de Nascimento PACIENTE Endereço Sexo Endereço

Nome

Data de Nascimento

PACIENTE
PACIENTE

Endereço

Sexo

Endereço CRM
Endereço
CRM

Data

Paciente

CONSULTAS Médico RELACIONAMENTOS
CONSULTAS
Médico
RELACIONAMENTOS

O entendimento sobre o que são efetivamente relacionamentos e a capacidade de enxergar estes objetos, como participantes do mundo real, são fatores primordiais para que se venha a efetuar trabalhos de modelagem de dados com compreensão do que está sendo realizado.

Não devemos, nunca, colocar temores de complexidade em uma técnica, e sim lembrarmo-nos de que a mesma nada mais é do que uma forma estruturada de representar as coisas que existem e ocorrem no mundo real. Procurando, sempre, retratar com simplicidade os fatos, isso os levará a representar com correção e entendimento.

Dentro deste enfoque definimos RELACIONAMENTO como o fato, o acontecimento que liga dois objetos, duas “coisas” existentes no mundo real.

GRAUS DE RELACIONAMENTOS

Quando temos um relacionamento entre duas entidades, o número de ocorrências de uma entidade que está associado, com ocorrências de uma entidade que está associado, como ocorrências de uma outra entidade, determina o grau do relacionamento ou cardinalidade desse fato,

Existem, portanto, três possibilidades de relacionarmos os dados, ou seja, três graus de relacionamentos, que são:

- RELACIONAMENTO DE UM-PARA-UM.

- RELACIONAMENTO DE UM-PARA-MUITOS.

- RELACIONAMENTO DE MUITOS-PARA-MUITOS.

RELACIONAMENTO DE UM-PARA-UM.

Cada elemento de uma entidade relaciona-se com um e somente com um elemento de outra entidade.

Como exemplo podemos citar uma empresa, dividida em seções em que cada seção possui um único gerente e um funcionário-gerente só pode chefiar uma única seção:

GERENTE 1

GERENTE

1
1
GERENTE 1
1 CHEFIA SEÇÃO
1
CHEFIA
SEÇÃO

RELACIONAMENTOS UM-PARA-MUITOS

Acontece quando cada entidade de A pode se relacionar com uma ou mais entidades de B, quando se quer dizer uma ou mais de uma entidade utiliza-se a letra N.

Estre grau de relacionamento é o mais comum no mundo real, sendo que o denominamos de relacionamento básico entre entidades, entretanto possui características especificas, quando sentido de leitura dos fatos e sua interpretação.

Exemplo: Numa empresa dividida em seções, um Funcionário só pode ser alocado em uma única seção, porem em uma seção podem trabalhar vários funcionários.

TRABALHA
TRABALHA

SEÇÃO

SEÇÃO
1
1
SEÇÃO 1
N
N
N FUNCIONÁRIO

FUNCIONÁRIO

N FUNCIONÁRIO

RELACIONAMENTO DE MUITOS-PARA-MUITOS

É quando várias (N) entidades de A se relacionam com várias (M) entidades de B.

Um exemplo para esse tipo de relacionamento é o que ocorre entre uma loja e os fornecedores de seus produtos. Um fornecedor pode fazer mais de um produto e um produto pode ser fornecido por mais de um fornecedor

FORNECIMENTO
FORNECIMENTO

FORNECEDOR

FORNECEDOR N
N
N
FORNECEDOR N
N
N
N PRODUTO

PRODUTO

N PRODUTO

Um outro exemplo seria o de um aluno que pode cursar mais de uma disciplina de um curso e uma disciplina que pode ser cursada por mais de um aluno.

CURSA
CURSA

ALUNO

DISCIPLINA

Exemplo 01:

Uma loja de roupas deseja criar um cadastro de suas peças. Cada peça possui um código que a identifica, uma descrição, um preço, e uma quantidade em estoque. Deseja-se também manter um cadastro de seus clientes com Nomes, Telefone, etc. E as peças que ele já comprou. A data em que o cliente comprou a peça é guardada.

COMPRA
COMPRA

PEÇA

N
N
N
N

CLIENTE

Exemplo 02:

Uma empresa bancária mantém um cadastro com os dados dos seus clientes (Identidade, Nome, Endereço, etc.) e de suas contas (Número da Conta e Saldo). Um cliente pode ter mais de uma conta no banco e uma conta pode ser de mais de um cliente (Conta Conjunta). O banco mantém também um cadastro com suas agências (Código e Nome), em que cada agência pode ter mais de uma conta. Óbvio.

POSSUI
POSSUI

CONTA

N
N
N
N
N CLIENTE

CLIENTE

CLIENTE
N
N
GERENCIA 1 AGÊNCIA
GERENCIA
1
AGÊNCIA

NORMALIZAÇÃO

Normalizar é organizar um Banco de Dados que esteja totalmente bagunçado.

Exemplo:

um Banco de Dados que esteja totalmente bagunçado. Exemplo: Anomalias: Caso esta entidade fosse implementada como

Anomalias:

Caso esta entidade fosse implementada como tabela em um Banco de Dados as seguintes anomalias iriam aparecer:

ANOMALIA DE INCLUSÃO: Ao ser incluído um novo Cliente, o mesmo tem que estar relacionado a uma venda;

ANOMALIA DE EXCLUSÃO: Ao ser excluído um Cliente, os dados referentes às suas compras serão perdidos;

ANOMALIA DE ALTERAÇÃO: Caso algum fabricante de produto altere a faixa de preço de uma determinada classe de produtos, será preciso percorrer toda a entidade para se realizar múltiplas alterações.

TRÊS PRINCIPAIS FORMAS NORMAIS DE ORGANIZAR ESSE BANCO DE DADOS. PRIMEIRA FORMA NORMAL

Conceito:

A 1FN diz que: Cada ocorrência da chave primária deve corresponder a uma e somente uma informação de cada tributo, ou seja, a entidade não deve conter grupos repetitivos (multivalorados).

Como Obter:

Para se obter entidades na 1FN, é necessário decompor cada entidade não normalizada em tantas entidades quanto for o número de conjuntos de atributos repetitivos. Nas novas entidades, criadas, chave primária da entidade original mais o(s) atributo(s) do grupo repetitivo visualizado(s) como chave primária deste grupo.

original mais o(s) atributo(s) do grupo repetitivo visualizado(s) como chave primária deste grupo. Normalizada: 11

Normalizada:

original mais o(s) atributo(s) do grupo repetitivo visualizado(s) como chave primária deste grupo. Normalizada: 11

SEGUNDA FORMA NORMAL Devemos observar se alguma entidade possui chave primária concatenada, e para aquelas que satisfazerem esta condição, analisar se existe algum tributo ou conjunto de atributos com dependência parcial em relação a algum elemento da chave primária concatenada. Com a finalidade de tornar mais estável o modelo de dados a aplicação da 2FN sobre as entidades em observação geram novas entidades, que herdarão a chave parcial e todos os tributos que dependem desta chave, ou seja, uma entidade para estar na 2FN não pode ter atributos com dependência parcial em relação à chave primária.

seja, uma entidade para estar na 2FN não pode ter atributos com dependência parcial em relação

TERCEIRA FORMA NORMAL

Uma entidade está na 3FN se nenhum de seus atributos possui dependência transitiva em relação a outro atributo da entidade que não participe da chave primária, ou seja, não exista nenhum atributo intermediário entre a chave primária e o próprio atributo observado.

Ao retirarmos a dependência transitiva, devemos criar uma nova entidade de que contenha os atributos que dependem transitivamente de outro a sua chave primária é o atributo que causou esta dependência.

Além de não conter atributos com dependência transitiva, entidades na 3FN não devem conter atributos que sejam o resultado de algum cálculo sobre outro atributo, que de certa forma pode ser encarada como uma dependência, funcional.

de algum cálculo sobre outro atributo, que de certa forma pode ser encarada como uma dependência,
de algum cálculo sobre outro atributo, que de certa forma pode ser encarada como uma dependência,

RELACIONAMENTO FINAL

RELACIONAMENTO FINAL INSTALAÇÃO DO APACHE SERVER INFORMATION: Network Domain: localhost ServerName: localhost Email

INSTALAÇÃO DO APACHE

SERVER INFORMATION:

Network Domain: localhost ServerName: localhost Email Adrees: Seu endereço de email

INSTALAÇÃO DO PHP Apenas copie a pasta do PHP5 para o local onde foi instalado o Apache.

CONFIGURAÇÕES:

Na pasta do PHP5 localize as dlls php5ts.dll e libmysql.dll copie-os e cole-os na pasta System32. Localize agora o arquivo php.ini-dst apague a parte “-dst”, deixando apenas php.ini. Abra esse arquivo com o bloco de notas. Localize: “extension_dir = ‘ ’. Se entre apóstrofos estiver vazio, coloque: “C:/php5/ext” Local onde está a pasta do PHP5. Agora localize: “php_mysql” e procure por “extension=php_mysql.dll”, provavelmente antes de extension irá ter um “;” retire esse ponto e vírgula. A mesma coisa faça para “extension=php_gd2.dll”. Salve as alterações. Recorte esse arquivo (php.ini) e cole-o dentro da pasta Windows.

CONFIGURANDO O APACHE Abra a pasta do Apache, onde foi instalado, abra a pasta Conf. e localize o arquivo httpd.Conf. abra-o no Bloco de Notas e localize : “loadmodule” e procure pela linha “#LoadModule SSl_module modules/mod_ssl.so”. Abaixo dessa linha escreva : “LoadModule php5 module

“c:/php5/php5apache2.dll”.

Localize agora a linha “AddModule mod_setenvif.c” e logo abaixo, adicione: “AddModule

mod_php5.c”.

Localize agora “AddType application/x-tan .tg3” e logo abaixo, adicione:

“AddType application/x-httpd-php .php” e “Addtype application /x-httpd-php-source .phps”. Depois localize a linha: “DirectoryIndex index.html”. E logo ao lado do “index.html” adicione “index.php” “default.php” e “main.php”. Ainda nesse arquivo, localize: “DocumentoRoot “C:/Apache2/htdocs”. Esse caminho é onde o seu site se localize, então se você alterar a pasta do seu site, você também terá que alterar esse caminho, por exemplo se seu site se localiza em C:/Site você terá que colocar “C:/Site”. Reinicie o Computador.

INSTALAÇÃO DO PHPMYADMIN Copie a pasta do PHPMyADMIN para a pasta onde se localiza seu site, onde você setou no DocumentRoot. Pronto instalado e configurado.

ESTRUTURA DO BANCO DE DADOS O Banco de Dados que iremos criar terá a seguinte estrutura:

Entidades:

PEDIDO POSSUI ITEM FAZ TIRA PARTICIPA CLIENTE VENDEDOR PRODUTO
PEDIDO
POSSUI
ITEM
FAZ
TIRA
PARTICIPA
CLIENTE
VENDEDOR
PRODUTO

ENTIDADES E SEUS ATRIBUTOS

estrutura: Entidades: PEDIDO POSSUI ITEM FAZ TIRA PARTICIPA CLIENTE VENDEDOR PRODUTO ENTIDADES E SEUS ATRIBUTOS 15

CRIANDO O BANCO DE DADOS

Rode o PHPAdmin, ou crie no SQLFront.

Crie uma nova tabela, com 8 arquivos, dê o nome de “cliente” e coloque os campos correspondentes.

ID_CLIENTE

INT

CP

CLIENTE

VARCHAR

90

ENDERECO

VARCHAR

80

CIDADE

VARCHAR

50

CEP

VARCHAR

09

UF

CHAR

02

CGC

VARCHAR

20

IE

VARCHAR

20

 

SALVE.

Crie outra tabela chamada “Vendedor”, com 04 campos:

 

ID_VENDEDOR

INT

NOTNULL

VENDEDOR

VARCHAR

60

SALARIO

DECIMAL

 

COMISSAO

CHAR

01

Crie outra tabela, chamada “Pedido”, com 04 campos:

 

NUM_PEDIDO

INT (CP)

ID_CLIENTE

INT

ID_VENDEDOR

INT

PRAZO_ENTREGA

INT

Crie outra tabela, chamada “Produto”, com 04 campos:

 

ID_PRODUTO

INT

CP

PRODUTO

VARCHAR

60

UNIDADE

VARCHAR

10

VAL_UNIT

DECIMAL

 

SALVE.

Crie outra tabela, chamada “Item_Pedido”, com 04 campos:

ID_ITEM_PEDIDO

INT (CP)

NUM_PEDIDO

INT

ID_PRODUTO

INT

QUANTIDADE

INT

SALVE.

FUNÇÕES PARA USO EM CLÁUSULAS SELECT E WHERE.

SELECT: É usado para retornar valores de determinado campo

Ex: SELECT campo FROM tabela.

Se quiser retornar dados de todos os campos da tabela Cliente, por exemplo, faça:

SELECT * FROM cliente

Se quiser retornar dois campos da tabela cliente, faça:

SELECT cliente,cep FROM cliente

Quando você quer selecionar, por exemplo, apenas aqueles registros que possuem o id_cliente maior que 200 faça assim:

SELECT * FROM cliente WHERE id_cliente > 200.

01 Operadores e funções de tipos não especificados.

a) Parênteses.

b) Operadores de Comparação.

c) Operadores Lógicos.

d) Funções de Fluxo Central.

A) PARÊNTESES:

Serve para separar a ordem com que uma operação ocorre:

Por exemplo, se eu fizer isso: SELECT 5+3*2, o resultado será 11, pois a multiplicação tem preferência no sentido de ordem, mas se fizermos assim:

SELECT (5+3)*2,o resultado obtido será 16, pois a operação que está entre parênteses terá preferência.

B) OPERADORES DE COMPARAÇÃO:

Operadores de comparação resultam em um valor 1 (VERDADEIRO), 0 (FALSO) ou NULL. Estas funções funcionam tanto para tipos numéricos quanto para tipos strings. Strings são convertidos automaticamente para números e números para strings quando necessário. Se um ou ambos os argumentos são NULL, o resultado da comparação é NULL, exceto para o operado <=>. Se ambos os argumentos em uma comparação são strings, eles são comparados como strings. Se ambos os argumentos são inteiros, eles serão comparados como inteiros. Valores hexadecimais são tratados como strings binárias se não comparadas a um número.

Se um dos argumentos é uma coluna TIMESTAMP ou DATETIME e o outro

argumento é uma constante, a constante é convertida para um TIMESTAMP antes da comparação ser realizada. Isto ocorre para ser mais amigável ao ODBC. Em todos os outros casos, os argumentos são comparados como números de ponto flutuante (Real).

Exemplos:

Operador = (igual) SELECT 1 = 0

O resultado será 0 (Falso).

SELECT 1 = 1

O resultado será 1 (Verdadeiro).

Operador <> ou ! (Diferente) SELECT 1 <> 1

O resultado será 0 (Falso).

SELECT 1 <> 0

O resultado será 1 (Verdadeiro).

Operador <= SELECT 1 <= 1

O resultado será 1 ( Verdadeiro).

SELECT 1 <= 0

O resultado será 0 (Falso).

Operador >= SELECT 1 >= 0

O resultado será 1 (Verdadeiro).

SELECT 1 >= 1

O resultado será 0 (Falso).

Operador <

SELECT 1 < 0

O resultado será 0 (Falso)

SELECT 1 < 1

O resultado será 1 (Verdadeiro)

Operador >

SELECT 1 > 0

O resultado será 1 (Verdadeiro)

SELECT 1 > 1

O resultado será 0 (Falso)

Operador IS NULL

Retorna valores que são nulos em um tabela. SELECT 1 IS NULL

O resultado sera 0 (Falso), pois 1 não é nulo.

SELECT 0 IS NULL

O resultado também será 0 (Falso), pois o zero nesse caso não é nulo.

SELECT NULL IS NULL

O resultado será 1 (Verdadeiro) ,pois NULL é nulo.

VOCÊ USARIA EM UMA CONSULTA, POR EXEMPLO:

SELECT * FROM pedido (TABELA) WHERE data (CAMPO) IS NULL Ele retornará todos os registros que tiverem a Data Nula.

Operador IS NOT NULL Retorna valores que não são nulos em uma tabela. Exemplo:

Em uma consulta:

SELECT * FROM pedido (TABELA) WHERE data (CAMPO) IS NOT NULL Ele nos retornará apenas registros que não possuem o campo data

nulo.

Operador expr BETWEEN min AND max SELECT 1 BETWEEN 2 AND 3

O resultado sera 0 (Falso), pois o 1 não está entre 2 e 3.

SELECT ‘b’ BETWEEN ‘a’ AND ‘d’ O resultado sera 1 (Verdadeiro), pois a letra ‘b’ está entre ‘a’ e ‘d’.

Operador exprt NOT BETWEEN min AND max

É o contrário do expr BETWEEN min AND max.

Operador IN Ele verifica se um valor está contido dentro de um determinado conjunto. SELECT 5 IN (0,1,6,8,9)

O resultado será 0 (Falso), pois 5 não está contido no conjunto.

SELECT 8 IN (0,1,6,8,9)

O resultado será 1 (Verdadeiro), pois 1 está contido no conjunto.

Operador NOT IN

É o contrário do IN.

Operador ISNULL (expr)

SELECT ISNULL (2+8) O resultado sera 0 (Falso), pois o valor entre parênteses não é nulo. SELECT ISNULL (2/0)

O resultado será 1 (Verdadeiro), pois o valor entre parênteses é nulo.

C) OPERADORES LÓGICOS Em SQL, todos os operadores lógicos avaliam TRUE (Verdadeiro), FALSE (FALSO) ou NULL (Desconhecido). No MySQL, está implementação é como 1 (TRUE), 0 (FALSE), e NULL. A maioria deles é comum entre diferentes Bancos de Dados SQL. No entanto alguns podem retornar qualquer valor diferente de zero para TRUE.

OPERADOR NOT OU ! SELECT NOT 10

O resultado será 0 (Falso), pois 10 não é um valor Nulo.

OPERADOR AND OU && SELECT 15 AND 1

O resultado será 1 (Verdadeiro), pois o 15 e o 1 não são Nulos.

OPERADOR OR OU | | SELECT 15 OR 0

O resultado será 1 (Verdadeiro), pois o 15 é não nulo então logo

desconsidera-se o zero.

FUNÇÕES STRINGS

FUNÇÃO ASCII SELECT ASCII (‘H’). Ele retornará o número 72, que corresponde ao ‘H’ em ASCII.

FUNÇÃO CHAR SELECT CHAR (72). Ele retornará a letra H, que corresponde ao 72 em ASCII, para mais de uma letra [SELECT CHAR (72, 74,76).

FUNÇÃO CONCAT Ela irar concatenar duas ou mais strings. SELECT CONCAT (‘Estudo ’, ‘ de ’, ‘ SQL ’). Ele retornará ‘Estudo de SQL’. Usando no BD. SELECT CONCAT (cliente, ‘-’, cidade) FROM cliente Será prático para a junção de Nome + Sobrenome

FUNÇÃO CONTAT_WS SELECT_WS (‘-’, cliente, cidade) FROM cliente O resultado será: ‘cliente – cidade’ Ele usará o separador em todos os campos que você colocar, o que não é possível como o CONCAT.

FUNÇÃO FIELD (STR, STR1, STR2, STR3) Ele pega o valor ‘STR’ e retornará a posição em que se encontra. SELECT FIELD (‘num1’,‘num1’, ‘num2’, ‘num3’, ‘num4’) Ele retornará 1, pois o ‘num1’ se localiza na primeira posição, se fosse o ‘num4’, ele iria retornar 4 pois o ‘num4’ se localiza na posição 4.

FUNÇÃO ELT (N, STR1, STR2, STR3) Você coloca a posição (N) e ele irá retornar o valor (STR1, STR2, STR3, SELECT (2, ‘num1’, ‘num2’, ‘num3’) Ele irá retornar o valor ‘num2’ que está na segunda posição.

)

FUNÇÃO INSTR (STR, SUBSTR) Retorna a posição da substring na string. SELECT INSTR (‘arara’, ‘ra’) Ele irá retornar 2, que equivale a primeira posição que o programa encotrou a palavra ‘ra’.

FUNÇÃO INSERT (STR, POS, TAMANHO, NOVASTRING) SELECT INSERT (‘CURSOSQL’,3,2,’DE’) Ele irá retornar: ‘CUDEOSQL’ STR: Refere-se a String que será alterada. POS: Refere-se a posição na String onde irá entrar o novo valor (novastring) TAMANHO: Refere-se ao número de caracteres que será deletado a partir da POS definida. NOVASTRING: Refere-se ao novo valor que será inserido.

FUNÇÃO LSCASE OU LOWER Ele irá transformar os caracteres em minúsculo. SELECT LCASE (‘CURSODESQL’) Ele irá retornar: ‘cursodesql’.

Fazendo com um campo de um BD. SELECT LCASE (cliente) FROM cliente Irá aparecer todos os campos cliente da tabela cliente em minúsculo.

FUNÇÃO LEFT (STR, TAM) Retorna caracteres a esquerda SELECT LEFT (‘cursodesql’, 2). Ele irá retornar: ‘cu’.

FUNÇÃO LOCATE (SUBSTR, STR) Retorna a posição da primeira substring na string SELECT LOCATE (‘en’, ‘cliente’) Ele irá retornar a posição 4.

FUNÇÃO LOCATE (SUBSTR, STR, POS) Ele irá retornar a posição de uma substr em uma str a partir da posição (POS) definida. SELECT LOCATE (‘e’, ‘cursodedesenho’,9) Ele irá retornar a posição 10, pois pedimos para retornar a posição do ‘e’ a partir da posição 9;

FUNÇÃO LTRIM (STR)

Retorna a String str sem os espaços vazios a esquerda.

SELECT LTRIM (‘

Cursode

‘)

Ele irá retornar: ‘Cursode

- AINDA HÁ O TRIM ( QUE RETIRA OS ESPAÇOS TANTO DA ESQUERDA COMO DA DIREITA.

- E O RTRIM (QUE RETIRA OS ESPAÇOS APENAS A DIREITA).

FUNÇÃO LENGTH (STR) Irá contar o número de caracteres em uma palavra. SELECT LENGTH (‘cursodesql’) Ele irá retornar: 10.

FUNÇÃO REPEAT (STR, CONT) Retorna uma string com a quantidade CONT que foi especificada. SELECT (‘A’, 8) Ele irá retornar: ‘AAAAAAAA’.

FUNÇÃO REPLACE (STR, DA_STR, PARA_STR) SELECT REPEAT (‘kursodesql’, ‘k’, ‘c’) Ele irá retornar ‘cursodesql’.

STR: String onde sera substituida certa letra. DA_STR: Refere-se a letra que será substituída. PARA_STR: Refere-se a letra que irá substituir a letra da DA_STR.

FUNÇÃO RIGHT (STR, TAM) Retorna caracteres a partir da direita para esquerda. SELECT RIGHT (‘cursodesql’,2) Ele irá retornar: ‘ql’

FUNÇÃO RPAD (STR, TAM, STRPREENCHE) Conta o número de caracteres em uma string e se de acordo com o TAM especificado essa string não estiver preenchida ele preenche com o STRPREENCHE especificado. SELECT RPAD (‘cursodesql’,14,’A’) Ele irá retornar: ‘cursodesqlAAAA’.

FUNÇÃO LPAD Faz função contrária ao RPAD. SELECT LPAD (‘cursodesql’,14,’A’) Ele irá retornar: ‘AAAAcursodesql’.

FUNÇÃO SUBSTRING (STR, POS) Irá retornar a String a partir de uma dada POS especificada. SELECT SUBSTRING (‘cursodesql’,8) Ele irá retornar: ‘desql’ Outra forma:

SELECT SUBSTRING (‘cursodesql’,8,1) Ele irá retornar ‘s’, pois o representa o número de caracteres que será mostra após a POS 8.

FUNÇÃO UCASE (STR) OU UPPER (STR) Transforma os caracteres para maiúsculo. SELECT UCASE (‘cursodesql’) Ele irá retornar: ‘CURSODESQL’.

FUNÇÕES MATEMÁTICAS

FUNÇÃO ABS Retorna o valor absoluto de um número. SELECT ABS (-3) Ele irá retornar somente o ‘3’.

FUNÇÃO SIGN (X) Retorna o sinal do argumento (-1 se o número é Negativo, 0 se o Número é Nulo e 1 se o Número for Positivo). SELECT SIGN (-3) Ele irá retornar: -1 (Negativo).

FUNÇÃO MOD (N,M) Retornará o resto da divisão entre dois números. SELECT MOD (5,3) Ele irá retornar: 2, o resto da divisão.

FUNÇÃO FLOOR (X) Retorna o maior valor inteiro não maior que X. SELECT FLOOR (5.185) Ele retornará o número 5 que é o maior número, mas não maior que o

5.185.

FUNÇÃO CEILING (X) Retornará o menor valor inteiro, não menor que X. SELECT CEILING (8.185) Ele irá retornar o 9.

FUNÇÃO ROUND (X,D) Retornará o argumento X, arredondando para o número mais próximo. SELECT ROUND (1.5951,1) Ele irá retornar o número 1.6.

FUNÇÃO DIV Retorna o quociente da divisão SELECT 5 DIV 2 Ele irá retornar: 2, que é o quociente da divisão.

FUNÇÃO POW (X,Y) Retornará o valor de X elevado a potência Y. SELECT POW (2,5) Ele irá retornar 32.

FUNÇÃO SQRT (X) Retornará a Raiz Quadrada de X. SELECT SQRT (9) Ele irá retornar: 3.

FUNÇÃO RAND Retorna um valor de ponto flutuante na faixa de 0 a 1.0 SELECT RAND (4) Ele irá retornar números aleatórios entre 1 e 4. Se fosse para retornar valores aleatórios de um Banco de Dados:

SELECT * FROM cliente ORDER BY RAND ( ) Ele irá retornar registros de forma aleatória. SELECT * FROM cliente ORDER BY RAND ( ) LIMIT 1 Sempre irá aparecer um registro por vez de forma aleatória.

FUNÇÃO TRUNCATE (X,D) Retorna um número X, truncado para D casas decimais. SELECT TRUNCATE (1.5841,1) Ele irá retornar: 1.5.

FUNÇÕES DE DATA E HORA

FUNÇÃO DATE Extrai a parte da data da expansão Date ou DateTime. SELECT DATE (‘2008-12-12 07:26:00’) Ele irá retornar apenas: ‘2008-12-12’.

FUNÇÃO TIME Extrai a parte da hora da expressão Time ou DateTime. SELECT TIME (‘2008-12-12 07:26:00’). Ele irá retornar apenas: ’07:26:00’.

FUNÇÃ TIMESTAMP SELECT TIMESTAMP (‘2008-12-12’). Ele irá retornar: ‘2008-12-12 00:00:00’.

FUNÇÃO DAYOFWEEK Retorna o índice do dia da semana para data (1 Domingo, 2 Segunda, 3 Terça, 4 Quarta, 5 Quinta, 6 Sexta, 7 Sábado). SELECT DAYOFWEEK (‘2008-12-12’). Ele irá retornar: 6, que equivale à Sexta Feira.

INICIANDO O ESTUDO DA LINGUAGEM SQL (MYSQL FRONT)

COMANDO SELECT:

O comando select é dividido em:

SELECT

FROM Especifica as tabelas. WHERE Especifica as linhas (condições).

Especifica os campos da tabela.

EX:

SELECT cliente FROM cliente Seleciona todos os clientes da tabela cliente.

SELECT * FROM cliente Seleciona todos os campos da tabela cliente.

Se quiser que seja renomeando “endereco” para “Endereço”, use essa cláusula: as novo_nome. SELECT endereco as Endereço FROM cliente.

Para selecionar, por exemplo, um cliente que inicie com a letra p, utilize (like ‘p*’), ficaria:

SELECT * FROM cliente WHERE cliente like ‘p*’.

Agora se você quiser que ele encontre onde há o ‘p’ em qualquer lugar, utilize (like ‘*p*’.

E se for apenas que termine com ‘p’, utilize (like ‘*p’).

Para ordenar a tabela pelo campo que quiser utilize (order by nomedocampo), ficaria:

SELECT * FROM cliente order by cliente asc (em ordem crescente, desc se for em ordem decrescente). Dessa forma irá ordenar os campos clientes da tabela cliente em ordem alfabética.

EXERCICIO 01 Quais clientes têm prazo de entrega superior a 15 dias e pertencem aos Estados de São Paulo (SP) ou Rio de Janeiro (RJ) ? SELECT C.CLIENTE, C.UF, P.PRAZO_ENTREGA FROM CLIENTE C, PEDIDO P WHERE C.ID_CLIENTE = P.ID_CLIENTE AND C.UF IN(‘SP’, ‘RJ’) AND P.PRAZO_ENTREGA > 15

FUNÇÕES AGREGADAS

FUNÇÃO MAX Retorna o maior valor. SELECT MAX (nomedocampoqueseráverificado) FROM nomedatabela

FUNÇÃO MIN Retorna o menor valor. SELECT MIN (nomedocampoqueseráverificado) FROM nomedatabela

FUNÇÃO COUNT Irá retornar o número de registros cadastrados na tabela definida. SELECT COUNT (*) FROM produto

FUNÇÃO SUM Serve para somar valores. SELECT SUM (valor_unit) FROM produto

FUNÇÃO AVG Calcula a média de determinados valores. SELECT AVG (valor_unit) FROM produto

FUNÇÃO DISTINCT Irá retornar valores distintos, diferentes. SELECT DISTINCT nome_do_campo FROM nome_da_tabela

Agrupando número de pedidos que determinado cliente fez. SELECT id_cliente, COUNT (id_cliente) FROM pedido GROUP BY id_cliente Ele irá retornar o código do cliente e ao lado a quantidade de pedidos que esse cliente realizou.

Agrupando valores em que o ID_Cliente seja maior que 200, faça:

SELECT id_cliente, COUNT (id_cliente) FROM pedido GROUP BY id_cliente HAVING id_cliente > 200

EXERCICIO 02 Mostrar os clients e seus respectivos prazos de entrega, ordenados do maior para o menor. SELECT C.CLIENTE, P.PRAZO_ENTREGA FROM CLIENTE C, PEDIDO P WHERE C.ID_CLIENTE = P.ID_CLIENTE ORDER BY P.PRAZO_ENTREGA DESC

INSERT, UPDATE E DELETE. SINTAXE PARA INSERIR CAMPOS:

INSERT INTO nome_tabela (campo1,campo2) VALUES (valor1,valor2) EX:

INSERT INTO vendedor (id_vendedor, vendedor, salario, comissão) VALUES (‘721’,’CursodeSQL’,1000,’A’)

SINTAXE PARA ATUALIZAR CAMPOS:

UPDATE nome_tabela SET coluna = valor WHERE e condição. EX:

UPDATE vendedor SET vendedor = ‘modificado’ WHERE id_vendedor =

721

SINTAXE PARA DELETAR CAMPOS:

DELETE FROM nome_tabela WHERE e condição. EX:

DELETE FROM vendedor WHERE id_vendedor IN (‘721’,’722’,’723’)

Junções deTabela:

EX:

JOIN

SELECT pedido.num_cliente, pedido.prazo_entrega, cliente.cliente, cliente.endereco, cliente.cidade FROM pedido, cliente WHERE pedido.id_cliente = cliente.id_cliente

Com isso estaremos fazendo uma junção de duas tabelas (CLIENTE e PEDIDO) retornando os valores dos campos selecionados.

Utilizando o JOIN SELECT pedido.num_pedido, pedido.prazo_entrega, cliente.cliente FROM cliente INNER JOIN pedido ON pedido.id_cliente = cliente.id_cliente.

EXERCICIO 04 Quantos clientes fizeram pedido com o vendedor João? SELECT COUNT (C.ID_CLIENTE) FROM CLIENTE C, PEDIDO P, VENDEDOR V WHERE C.ID_CLIENTE = P.ID_CLIENTE AND P.ID_VENDEDOR = V.ID_VENDEDOR AND V.VENDEDOR = ‘JOAO’

E dessa forma, mostrará o nome dos clientes:

SELECT C.CLIENTE, V.VENDEDOR FROM CLIENTE C, PEDIDO P, VENDEDOR V WHERE C.ID_CLIENTE = P.ID_CLIENTE AND P.ID_VENDEDOR = V.ID_VENDEDOR AND V.VENDEDOR = ‘JOAO’

Quais os clientes fizeram pedido com o vendedor João e quais os produto compraram ? SELECT C.CLIENTE, PR.PRODUTO FROM CLIENTE C, PEDIDO P, VENDEDOR V, ITEM_PEDIDO I, PRODUTO PR WHERE C.ID_CLIENTE = P.ID_CLIENTE AND P.ID_VENDEDOR = V.ID_VENDEDOR AND P.NUM_PEDIDO = I.NUM_PEDIDO AND I.ID_PRODUTO = PR.ID_PRODUTO AND V.VENDEDOR = ‘JOAO’

EXERCICIO 05 Mostre a quantidade total de cada pedido tirado por vendedor.

SELECT V.VENDEDOR, COUNT (P.NUM_PEDIDO) FROM PEDIDO P, VENDEDOR

V WHERE P.ID_VENDEDOR = V.ID_VENDEDOR GROUP BY V.VENDEDOR

ORDER BY V.VENDEDOR

EXERCICIO 06 Quais produtos participam de qualquer pedido cuja quantidade seja 10? SELECT PRODUTO FROM PRODUTO WHERE ID_PRODUTO IN (SELECT ID_PRODUTO FROM ITEM_PEDIDO WHRE QUANTIDADE = 10)

EXERCICIO 07 Quais os vendedores ganham um salário abaixo da média? SELECT VENDEDOR FROM VENDEDOR WHERE SALARIO < (SELECT AVG (SALARIO) FROM VENDEDOR)

EXERCICIO 08 Quais os produtos que não estão presentes em nenhum pedido? SELECT PRODUTO FROM PRODUTO WHERE ID_PRODUTO NOT INT (SELECT ID_PRODUTO FROM ITEM_PEDIDO)

EXERCICIO 09

Quais clientes estão presentes em mais de três pedidos? SELECT C.CLIENTE COUNT (P.ID_CLIENTE) AS QTDE FROM PEDIDO P, CLIENTE

C WHERE P.ID_CLIENTE = C.ID_CLIENTE GROUP BY C.CLIENTE HAVING QTDE >

3