Anda di halaman 1dari 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 Numricos ----------------------------------------------------------------------- 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 Normalizao ------------------------------------------------------------------------------------- 10 - Anomalias ----------------------------------------------------------------------------- 10 Trs principais formas normais de organizar o Banco de Dados --------------------- 10 - Primeira Forma Normal ------------------------------------------------------------ 11 - Segunda Forma Normal ------------------------------------------------------------ 12 - Terceira Forma Normal ------------------------------------------------------------- 13 Instalao do Apache --------------------------------------------------------------------------- 14 Instalao do PHP --------------------------------------------------------------------------------- 14 Configurando o Apache -------------------------------------------------------------------------- 14 Instalao do PHPMyADMIN -------------------------------------------------------------------- 15 Estrutura do Banco de Dados -------------------------------------------------------------------- 15 Criando o Banco de Dados ------------------------------------------------------------------------ 16 Funes para uso em clusulas SELECT e WHERE ------------------------------------------- 17 01 Operadores e Funes de Tipos Especificados: ---------------------------- 17 a) Parnteses ----------------------------------------------------------------- 17 b) Operadores de Comparao ------------------------------------------- 17 c) Operadores Lgicos ------------------------------------------------------ 20 Funes Strings --------------------------------------------------------------------------------------- 20 Funes Matemticas ------------------------------------------------------------------------------ 23 Funes de Data e Hora ---------------------------------------------------------------------------- 25 Iniciando o Estudo da Linguagem SQL (MySQLFront) -------------------------------------- 26 Exercicio 01 -------------------------------------------------------------------------------------------- 26 Funes 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 padro, exceto na tela que aparea incluir o Bin Directory, essa opo deve ser marcada. O usurio e senha deixem vazios, no caso o usurio ser root e a senha ser vazia. Conceitos: - O que um Banco de Dados? um local no qual possvel armazenar informaes para consulta ou utilizao quando necessrio. Todos os bancos de dados so constitudos por trs elementos bsicos: Campos, Registros e Tabelas. - Campos: o espao reservado para insero 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 contm os dados que armazenamos, so agrupados tabelas do Banco de Dados. Nomes de Banco de Dados, Tabelas, ndice, Coluna e Apelidos seguem todas as mesmas regras no MYSQL. IDENTIFICADOR Banco de Dados Tabela Coluna Alias TAMANHO MXIMO 64 64 64 265 CARACTERES PERMITIDOS Qualquer um, exceto / e o . Qualquer um, exceto / e o . Todos Todos

Se o identificador uma palavra restrita ou contm caracteres especiais voc deve sempre coloca-lo entre apstrofos (), ao us-lo. O servidor MYSQL suporta os seguintes estilos de comentrio: # - No fim da linha. --! - No fim da linha. /* - Na linha ou em mltiplas linhas */

Tipos de Dados: O MySQL suporta um certo nmero de tipos de dados que podem ser agrupados em trs categorias: # Tipos Nmericos. # Tipos De Data e Hora. # Tipos String (Caracteres). TIPOS NMERICOS Observaes: - As opes entre colchetes ([ ]) so 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 opo Unsigned para especificar inteiros positivos ou zero. - M especifica o tamanho mximo de exibio. - D especifica o nmero de casas decimais. O valor mximo de D 30 ou M-2. - Tanto para nmeros inteiros como para nmeros de ponto flutuante voc pode especificar a opo ZEROFILL que preenche os nmeros com zeros iniciais. Colunas especificadas com ZEROFILL so automaticamente configuradas como UNSIGNED;

TIPOS DATA

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 contm informaes sobre Data e Hora. Year: Retorna apenas o valor do ano no formato de 2 ou 4 digitos. TIPOS STRING

MODELAGEM Modelo Entidade Relacionamento (E-R). Esse o modelo mais utilizado atualmente, principalmente, devido, sua simplicidade e eficincia. Baseia-se na percepo de mundo real, que consiste em uma coleo de objetos bsicos, chamados entidades e em relacionamentos entre esses objetos.

Ao se utilizar a Modelagem Conceitual de Dados com a tcnica de Entidades e Relacionamentos, obteremos resultados e esquemas puramente conceituais sobre a essncia de um sistema, ou melhor, sobre o negcio para o qual estamos desenvolvendo um projeto, no se representando procedimentos ou fluxo de dados existentes.

- Entidade: Define-se entidade como aquele objeto que existe no mundo real como uma identificao distinta e com um significado prprio. So as coisas que existem no negcio, ou ainda, descrevem o negcio em si. Maria Raimunda Oliveira, CPF 111222333-44, uma entidade, uma vez que s existe um nico indivduo com esse nome e nmero de CPF. Uma entidade pode ser concreta, como uma caneta ou uma pessoa, ou abstrata, como um conceito ou uma sensao. No Banco de Dados de uma empresa, por exemplo, so entidades: Funcionrio, Cliente, Departamento, etc. Cada entidade representa objetos com as mesmas caractersticas. Um banco de dados, portanto, compreende uma coleo de conjuntos de entidades do mesmo tipo. O smbolo que representa a entidade no modelo E-R um retngulo com o nome da entidade escrito no seu interior, por exemplo: DEPARTAMENTO Cada objeto pertencente a uma entidade chamado de Instncia. Em uma escola, por exemplo, existem as entidades Funcionrios e Alunos, os Funcionrios podem ser Professores ou exercerem funes administrativas. Dessa forma, Professor uma Instncia da entidade funcionrio. Visualizando ficaria: ESCOLA FUNCIONRIO PROFESSORES FUNES ADMS. ALUNOS

- Atributos: So propriedades (caractersticas) que identificam as entidades. Uma entidade representada por um conjunto de atributos. Cada Instncia possui uma coleo de elementos de dados ou atributos. Por exemplo, Nome e Funo podem ser Atributos de Departamento.

Da mesma forma, no exemplo da Escola, Nome, Matrcula e Disciplina que leciona podem ser Atributos do Professor. A cada Atributo de uma entidade associado a um domnio de valores. Esses valores podem ser um conjunto de nmeros inteiros, nmeros reais, cadeias de caracteres ou qualquer outro tipo de valor que o atributo pode assumir. Por exemplo, o domnio do atributo disciplinas seria todas as disciplinas ensinadas na escola. Os Atributos so representados apenas pelo seu nome ligado entidade por uma linha reata, por exemplo: DEPARTAMENTO Funo

Tipos de Atributos -Simples: No possui caracterstica especial. Por exemplo, o nome da empresa um atributo sem qualquer caracterstica especial. EMPRESA Nome

-Composto: O seu contedo formado por itens menores. Por exemplo, Endereo formado por Rua, CEP e Bairro. Rua EMPRESA Endereo CEP BAIRRO -Multivalorado: O seu contedo pode ser formado por mais de uma informao. indicado colocandose um asterisco precedendo o nome do atributo, como no caso da empresa que pode possuir mais de um telefone. DEPARTAMENTO *Telefone

-Determinante: O atributo determinante aquele que define univocamente as instncias de uma entidade, ou seja, nico para as instncias de uma entidade. indicado sublinhandose o nome do atributo. No exemplo de uma empresa, o CNPJ um atributo determinante, pois no podem existir duas empresas com o mesmo valor nesse atributo. No exemplo da nossa escola, a matrcula um atributo determinante, pois no pode existir mais de um funcionrio com a mesma matrcula. DEPARTAMENTO CNPJ

Exemplo envolvendo os conceitos que conhecemos: Uma empresa necessita armazenar os dados de seus funcionrios, atualmente em um fichrio. Os dados so a Matrcula, o Nome, o Endereo (Rua, CEP, Bairro), o Telefone (pode ter mais de um) e o Cargo, veja o exemplo onde est explicitado o Modelo E-R entidade Funcionrio e seus atributos: Matrcula Nome FUNCIONRIO Endereo Rua CEP Bairro *Telefone EXEMPLO PARA RESOLVER: Uma clnica mdica necessita controlar as consultas mdicas realizadas e marcadas pelos mdicos a ela vinculadas assim como acompanhar quem so os pacientes atendidos para manter o acompanhamento clnico dos mesmos. Ao levantarmos os dados para a construo do sistema, nos foi informado que para cada mdico a clnica mantm uma ficha com o nmero de CRM do mdico, seu Nome, Endereo, Especialidade etc. Os pacientes preenchem um cadastro com dados pessoais tais como Nome, Endereo, Data de Nascimento, Sexo etc. Toda consulta registrada em fichrio prprio com as informaes sobre Mdico e Paciente, Diagnstico etc. ENTIDADES Nome MDICO Endereo Endereo Nome PACIENTE Sexo Data de Nascimento Cargo

CRM Data

CONSULTAS Paciente Mdico

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

No devemos, nunca, colocar temores de complexidade em uma tcnica, 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 correo 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 nmero de ocorrncias de uma entidade que est associado, com ocorrncias de uma entidade que est associado, como ocorrncias de uma outra entidade, determina o grau do relacionamento ou cardinalidade desse fato, Existem, portanto, trs possibilidades de relacionarmos os dados, ou seja, trs graus de relacionamentos, que so: - 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 sees em que cada seo possui um nico gerente e um funcionrio-gerente s pode chefiar uma nica seo: 1 GERENTE CHEFIA 1 SEO

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 bsico entre entidades, entretanto possui caractersticas especificas, quando sentido de leitura dos fatos e sua interpretao. Exemplo: Numa empresa dividida em sees, um Funcionrio s pode ser alocado em uma nica seo, porem em uma seo podem trabalhar vrios funcionrios. 8

SEO

TRABALHA

FUNCIONRIO

RELACIONAMENTO DE MUITOS-PARA-MUITOS quando vrias (N) entidades de A se relacionam com vrias (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 FORNECEDOR N FORNECIMENTO 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.

ALUNO

CURSA

DISCIPLINA

Exemplo 01: Uma loja de roupas deseja criar um cadastro de suas peas. Cada pea possui um cdigo que a identifica, uma descrio, um preo, e uma quantidade em estoque. Deseja-se tambm manter um cadastro de seus clientes com Nomes, Telefone, etc. E as peas que ele j comprou. A data em que o cliente comprou a pea guardada. PEA N COMPRA N CLIENTE

Exemplo 02: Uma empresa bancria mantm um cadastro com os dados dos seus clientes (Identidade, Nome, Endereo, etc.) e de suas contas (Nmero 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 mantm tambm um cadastro com suas agncias (Cdigo e Nome), em que cada agncia pode ter mais de uma conta. bvio. CONTA N GERENCIA 1 AGNCIA N POSSUI N CLIENTE

NORMALIZAO Normalizar organizar um Banco de Dados que esteja totalmente bagunado. Exemplo:

Anomalias: Caso esta entidade fosse implementada como tabela em um Banco de Dados as seguintes anomalias iriam aparecer: ANOMALIA DE INCLUSO: Ao ser includo um novo Cliente, o mesmo tem que estar relacionado a uma venda; ANOMALIA DE EXCLUSO: Ao ser excludo um Cliente, os dados referentes s suas compras sero perdidos; ANOMALIA DE ALTERAO: Caso algum fabricante de produto altere a faixa de preo de uma determinada classe de produtos, ser preciso percorrer toda a entidade para se realizar mltiplas alteraes. TRS PRINCIPAIS FORMAS NORMAIS DE ORGANIZAR ESSE BANCO DE DADOS. PRIMEIRA FORMA NORMAL Conceito: A 1FN diz que: Cada ocorrncia da chave primria deve corresponder a uma e somente uma informao de cada tributo, ou seja, a entidade no deve conter grupos repetitivos (multivalorados). Como Obter:

10

Para se obter entidades na 1FN, necessrio decompor cada entidade no normalizada em tantas entidades quanto for o nmero de conjuntos de atributos repetitivos. Nas novas entidades, criadas, chave primria da entidade original mais o(s) atributo(s) do grupo repetitivo visualizado(s) como chave primria deste grupo.

Normalizada:

11

SEGUNDA FORMA NORMAL Devemos observar se alguma entidade possui chave primria concatenada, e para aquelas que satisfazerem esta condio, analisar se existe algum tributo ou conjunto de atributos com dependncia parcial em relao a algum elemento da chave primria concatenada. Com a finalidade de tornar mais estvel o modelo de dados a aplicao da 2FN sobre as entidades em observao geram novas entidades, que herdaro a chave parcial e todos os tributos que dependem desta chave, ou seja, uma entidade para estar na 2FN no pode ter atributos com dependncia parcial em relao chave primria.

12

TERCEIRA FORMA NORMAL Uma entidade est na 3FN se nenhum de seus atributos possui dependncia transitiva em relao a outro atributo da entidade que no participe da chave primria, ou seja, no exista nenhum atributo intermedirio entre a chave primria e o prprio atributo observado. Ao retirarmos a dependncia transitiva, devemos criar uma nova entidade de que contenha os atributos que dependem transitivamente de outro a sua chave primria o atributo que causou esta dependncia. Alm de no conter atributos com dependncia transitiva, entidades na 3FN no devem conter atributos que sejam o resultado de algum clculo sobre outro atributo, que de certa forma pode ser encarada como uma dependncia, funcional.

13

RELACIONAMENTO FINAL

INSTALAO DO APACHE SERVER INFORMATION: Network Domain: localhost ServerName: localhost Email Adrees: Seu endereo de email INSTALAO DO PHP Apenas copie a pasta do PHP5 para o local onde foi instalado o Apache. CONFIGURAES: 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 apstrofos 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 vrgula. A mesma coisa faa para extension=php_gd2.dll. Salve as alteraes. 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. 14

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, ento se voc alterar a pasta do seu site, voc tambm ter que alterar esse caminho, por exemplo se seu site se localiza em C:/Site voc ter que colocar C:/Site. Reinicie o Computador. INSTALAO 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

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 CLIENTE ENDERECO CIDADE CEP UF CGC IE INT VARCHAR VARCHAR VARCHAR VARCHAR CHAR VARCHAR VARCHAR SALVE. CP 90 80 50 09 02 20 20

Crie outra tabela chamada Vendedor, com 04 campos: ID_VENDEDOR VENDEDOR SALARIO COMISSAO INT VARCHAR DECIMAL CHAR NOTNULL 60 01

Crie outra tabela, chamada Pedido, com 04 campos: NUM_PEDIDO ID_CLIENTE ID_VENDEDOR PRAZO_ENTREGA INT (CP) INT INT INT

Crie outra tabela, chamada Produto, com 04 campos: ID_PRODUTO PRODUTO UNIDADE VAL_UNIT INT VARCHAR VARCHAR DECIMAL SALVE. Crie outra tabela, chamada Item_Pedido, com 04 campos: ID_ITEM_PEDIDO NUM_PEDIDO ID_PRODUTO QUANTIDADE INT (CP) INT INT INT SALVE. CP 60 10

16

FUNES PARA USO EM CLUSULAS 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, faa: SELECT * FROM cliente Se quiser retornar dois campos da tabela cliente, faa: SELECT cliente,cep FROM cliente Quando voc quer selecionar, por exemplo, apenas aqueles registros que possuem o id_cliente maior que 200 faa assim: SELECT * FROM cliente WHERE id_cliente > 200.

01 Operadores e funes de tipos no especificados. a) b) c) d) Parnteses. Operadores de Comparao. Operadores Lgicos. Funes de Fluxo Central. A) PARNTESES: Serve para separar a ordem com que uma operao ocorre: Por exemplo, se eu fizer isso: SELECT 5+3*2, o resultado ser 11, pois a multiplicao tem preferncia no sentido de ordem, mas se fizermos assim: SELECT (5+3)*2,o resultado obtido ser 16, pois a operao que est entre parnteses ter preferncia.

B) OPERADORES DE COMPARAO: Operadores de comparao resultam em um valor 1 (VERDADEIRO), 0 (FALSO) ou NULL. Estas funes funcionam tanto para tipos numricos quanto para tipos strings. Strings so convertidos automaticamente para nmeros e nmeros para strings quando necessrio. Se um ou ambos os argumentos so NULL, o resultado da comparao NULL, exceto para o operado <=>. Se ambos os argumentos em uma comparao so strings, eles so comparados como strings. Se ambos os argumentos so inteiros, eles sero comparados como inteiros. Valores hexadecimais so tratados como strings binrias se no comparadas a um nmero. 17

Se um dos argumentos uma coluna TIMESTAMP ou DATETIME e o outro argumento uma constante, a constante convertida para um TIMESTAMP antes da comparao ser realizada. Isto ocorre para ser mais amigvel ao ODBC. Em todos os outros casos, os argumentos so comparados como nmeros 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)

18

Operador IS NULL Retorna valores que so nulos em um tabela. SELECT 1 IS NULL O resultado sera 0 (Falso), pois 1 no nulo. SELECT 0 IS NULL O resultado tambm ser 0 (Falso), pois o zero nesse caso no 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 no so nulos em uma tabela. Exemplo: Em uma consulta: SELECT * FROM pedido (TABELA) WHERE data (CAMPO) IS NOT NULL Ele nos retornar apenas registros que no 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 no 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 contrrio 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 no 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 contrrio do IN. Operador ISNULL (expr) SELECT ISNULL (2+8) O resultado sera 0 (Falso), pois o valor entre parnteses no nulo. SELECT ISNULL (2/0) O resultado ser 1 (Verdadeiro), pois o valor entre parnteses nulo.

19

C) OPERADORES LGICOS Em SQL, todos os operadores lgicos avaliam TRUE (Verdadeiro), FALSE (FALSO) ou NULL (Desconhecido). No MySQL, est implementao 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 no um valor Nulo. OPERADOR AND OU && SELECT 15 AND 1 O resultado ser 1 (Verdadeiro), pois o 15 e o 1 no so Nulos. OPERADOR OR OU | | SELECT 15 OR 0 O resultado ser 1 (Verdadeiro), pois o 15 no nulo ento logo desconsidera-se o zero.

FUNES STRINGS FUNO ASCII SELECT ASCII (H). Ele retornar o nmero 72, que corresponde ao H em ASCII. FUNO 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). FUNO 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 prtico para a juno de Nome + Sobrenome

FUNO 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 no possvel como o CONCAT.

20

FUNO FIELD (STR, STR1, STR2, STR3) Ele pega o valor STR e retornar a posio em que se encontra. SELECT FIELD (num1,num1, num2, num3, num4) Ele retornar 1, pois o num1 se localiza na primeira posio, se fosse o num4, ele iria retornar 4 pois o num4 se localiza na posio 4.

FUNO ELT (N, STR1, STR2, STR3) Voc coloca a posio (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 posio.

FUNO INSTR (STR, SUBSTR) Retorna a posio da substring na string. SELECT INSTR (arara, ra) Ele ir retornar 2, que equivale a primeira posio que o programa encotrou a palavra ra.

FUNO 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 posio na String onde ir entrar o novo valor (novastring) TAMANHO: Refere-se ao nmero de caracteres que ser deletado a partir da POS definida. NOVASTRING: Refere-se ao novo valor que ser inserido.

FUNO LSCASE OU LOWER Ele ir transformar os caracteres em minsculo. 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 minsculo.

FUNO LEFT (STR, TAM) Retorna caracteres a esquerda SELECT LEFT (cursodesql, 2). Ele ir retornar: cu.

21

FUNO LOCATE (SUBSTR, STR) Retorna a posio da primeira substring na string SELECT LOCATE (en, cliente) Ele ir retornar a posio 4.

FUNO LOCATE (SUBSTR, STR, POS) Ele ir retornar a posio de uma substr em uma str a partir da posio (POS) definida. SELECT LOCATE (e, cursodedesenho,9) Ele ir retornar a posio 10, pois pedimos para retornar a posio do e a partir da posio 9;

FUNO LTRIM (STR) Retorna a String str sem os espaos vazios a esquerda. SELECT LTRIM ( Cursode ) Ele ir retornar: Cursode - AINDA H O TRIM ( QUE RETIRA OS ESPAOS TANTO DA ESQUERDA COMO DA DIREITA. - E O RTRIM (QUE RETIRA OS ESPAOS APENAS A DIREITA).

FUNO LENGTH (STR) Ir contar o nmero de caracteres em uma palavra. SELECT LENGTH (cursodesql) Ele ir retornar: 10.

FUNO REPEAT (STR, CONT) Retorna uma string com a quantidade CONT que foi especificada. SELECT (A, 8) Ele ir retornar: AAAAAAAA.

FUNO 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 substituda. PARA_STR: Refere-se a letra que ir substituir a letra da DA_STR.

22

FUNO RIGHT (STR, TAM) Retorna caracteres a partir da direita para esquerda. SELECT RIGHT (cursodesql,2) Ele ir retornar: ql

FUNO RPAD (STR, TAM, STRPREENCHE) Conta o nmero de caracteres em uma string e se de acordo com o TAM especificado essa string no estiver preenchida ele preenche com o STRPREENCHE especificado. SELECT RPAD (cursodesql,14,A) Ele ir retornar: cursodesqlAAAA.

FUNO LPAD Faz funo contrria ao RPAD. SELECT LPAD (cursodesql,14,A) Ele ir retornar: AAAAcursodesql.

FUNO 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 nmero de caracteres que ser mostra aps a POS 8.

FUNO UCASE (STR) OU UPPER (STR) Transforma os caracteres para maisculo. SELECT UCASE (cursodesql) Ele ir retornar: CURSODESQL.

FUNES MATEMTICAS FUNO ABS Retorna o valor absoluto de um nmero. SELECT ABS (-3) Ele ir retornar somente o 3.

23

FUNO SIGN (X) Retorna o sinal do argumento (-1 se o nmero Negativo, 0 se o Nmero Nulo e 1 se o Nmero for Positivo). SELECT SIGN (-3) Ele ir retornar: -1 (Negativo).

FUNO MOD (N,M) Retornar o resto da diviso entre dois nmeros. SELECT MOD (5,3) Ele ir retornar: 2, o resto da diviso.

FUNO FLOOR (X) Retorna o maior valor inteiro no maior que X. SELECT FLOOR (5.185) Ele retornar o nmero 5 que o maior nmero, mas no maior que o 5.185.

FUNO CEILING (X) Retornar o menor valor inteiro, no menor que X. SELECT CEILING (8.185) Ele ir retornar o 9.

FUNO ROUND (X,D) Retornar o argumento X, arredondando para o nmero mais prximo. SELECT ROUND (1.5951,1) Ele ir retornar o nmero 1.6.

FUNO DIV Retorna o quociente da diviso SELECT 5 DIV 2 Ele ir retornar: 2, que o quociente da diviso.

FUNO POW (X,Y) Retornar o valor de X elevado a potncia Y. SELECT POW (2,5) Ele ir retornar 32. 24

FUNO SQRT (X) Retornar a Raiz Quadrada de X. SELECT SQRT (9) Ele ir retornar: 3.

FUNO RAND Retorna um valor de ponto flutuante na faixa de 0 a 1.0 SELECT RAND (4) Ele ir retornar nmeros aleatrios entre 1 e 4. Se fosse para retornar valores aleatrios de um Banco de Dados: SELECT * FROM cliente ORDER BY RAND ( ) Ele ir retornar registros de forma aleatria. SELECT * FROM cliente ORDER BY RAND ( ) LIMIT 1 Sempre ir aparecer um registro por vez de forma aleatria. FUNO TRUNCATE (X,D) Retorna um nmero X, truncado para D casas decimais. SELECT TRUNCATE (1.5841,1) Ele ir retornar: 1.5. FUNES DE DATA E HORA FUNO DATE Extrai a parte da data da expanso Date ou DateTime. SELECT DATE (2008-12-12 07:26:00) Ele ir retornar apenas: 2008-12-12. FUNO TIME Extrai a parte da hora da expresso 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. FUNO DAYOFWEEK Retorna o ndice do dia da semana para data (1 Domingo, 2 Segunda, 3 Tera, 4 Quarta, 5 Quinta, 6 Sexta, 7 Sbado). SELECT DAYOFWEEK (2008-12-12). Ele ir retornar: 6, que equivale Sexta Feira.

25

INICIANDO O ESTUDO DA LINGUAGEM SQL (MYSQL FRONT) COMANDO SELECT: O comando select dividido em: SELECT Especifica os campos da tabela. FROM Especifica as tabelas. WHERE Especifica as linhas (condies). 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 Endereo, use essa clusula: as novo_nome. SELECT endereco as Endereo 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 alfabtica. EXERCICIO 01 Quais clientes tm prazo de entrega superior a 15 dias e pertencem aos Estados de So 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

26

FUNES AGREGADAS FUNO MAX Retorna o maior valor. SELECT MAX (nomedocampoqueserverificado) FROM nomedatabela FUNO MIN Retorna o menor valor. SELECT MIN (nomedocampoqueserverificado) FROM nomedatabela FUNO COUNT Ir retornar o nmero de registros cadastrados na tabela definida. SELECT COUNT (*) FROM produto FUNO SUM Serve para somar valores. SELECT SUM (valor_unit) FROM produto FUNO AVG Calcula a mdia de determinados valores. SELECT AVG (valor_unit) FROM produto FUNO DISTINCT Ir retornar valores distintos, diferentes. SELECT DISTINCT nome_do_campo FROM nome_da_tabela Agrupando nmero de pedidos que determinado cliente fez. SELECT id_cliente, COUNT (id_cliente) FROM pedido GROUP BY id_cliente Ele ir retornar o cdigo do cliente e ao lado a quantidade de pedidos que esse cliente realizou. Agrupando valores em que o ID_Cliente seja maior que 200, faa: 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

27

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, comisso) VALUES (721,CursodeSQL,1000,A) SINTAXE PARA ATUALIZAR CAMPOS: UPDATE nome_tabela SET coluna = valor WHERE e condio. EX: UPDATE vendedor SET vendedor = modificado WHERE id_vendedor = 721 SINTAXE PARA DELETAR CAMPOS: DELETE FROM nome_tabela WHERE e condio. EX: DELETE FROM vendedor WHERE id_vendedor IN (721,722,723) JOIN Junes deTabela: EX: 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 juno 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 Joo? 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

28

Quais os clientes fizeram pedido com o vendedor Joo 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 salrio abaixo da mdia? SELECT VENDEDOR FROM VENDEDOR WHERE SALARIO < (SELECT AVG (SALARIO) FROM VENDEDOR) EXERCICIO 08 Quais os produtos que no esto presentes em nenhum pedido? SELECT PRODUTO FROM PRODUTO WHERE ID_PRODUTO NOT INT (SELECT ID_PRODUTO FROM ITEM_PEDIDO) EXERCICIO 09 Quais clientes esto presentes em mais de trs 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

29

Anda mungkin juga menyukai