26
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense © 2015 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Funções Professor: Ricardo Luis dos Santos IFSUL – Campus Sapucaia do Sul

Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Embed Size (px)

Citation preview

Page 1: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense© 2015 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Campus Sapucaia do Sul

FunçõesProfessor: Ricardo Luis dos Santos

IFSUL – Campus Sapucaia do Sul

Page 2: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Grupo Xerife Pontos

Predadores de PK Gabriel, Henrique 2

A liga do Xablau Lucas e Cantu 4

#TeamPastilha Tiago Lu e Guilherme 1

Deixa prá nós Vinicius e Filipe 2

View Ganhei Alexandra e Dani 2

2

Clash of Students – 3I

Campus Sapucaia do Sul

Page 3: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Grupo Xerife Pontos

Computec Angelo, Gabriel Jeter 1

Oconator 9000 Luis, Bruno 1

Ricardo Eletro Gustavo, Luan 3

Maus Rafael, Gabriela 1

ASK Eduardo, Gabriel W 5

3

Clash of Students – 3K

Campus Sapucaia do Sul

Page 4: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• O que são Funções?

• Manipulação de datas e horas

• Manipulação de strings

• Manipulação de números

• Controle de Fluxo

• Variáveis

• Funções Personalizadas

• Exemplos de funções personalizadas

• Exercícios

4

Agenda

Campus Sapucaia do Sul

Page 5: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• São recursos fornecidos pelo SGBD (MySQL) para manipulação de dados em consultas SQL

• Oportunamente, podem ser criadas funções personalizadas pelos usuários para determinados banco de dados

• Permitem a apresentação de dados de uma forma personalizada e de acordo com a necessidade requerida em uma situação

• Calcular a média, o maior valor, o menor valor, formatar determinado campo entre outros

5

O que são funções?

Campus Sapucaia do Sul

Page 6: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Existem diversos tipos de funções

• Números, String, Data, Tempo, XML, JSON, Conversão, Formatação

• As funções mais corriqueiras podem ser divididas em 4 grandes categorias

• Manipulação de datas e horas

• Manipulação de strings

• Manipulação de números

• Controle de fluxo

6

O que são funções?

Campus Sapucaia do Sul

Page 7: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Manipulação de datas e horas

• Essas funções permitem recuperar datas em determinados formatos

• Exemplos

• DATE_FORMAT(NOW(),’%d de %M de %Y’) – Formata a data informada

• DAY(NOW()) – Retorna o dia da data informada

• MONTH(NOW()) – Retorna o mês da data informada

• YEAR(NOW()) – Retorna o ano da data informada

• HOUR(NOW()) – Retorna as horas do tempo informado

• MINUTE(NOW()) – Retorna os minutos do tempo informado

• SECOND(NOW()) – Retorna os segundos do tempo informado

7

Funções

Campus Sapucaia do Sul

Page 8: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Manipulação de datas e horas

• Essas funções permitem recuperar datas em determinados formatos

• Exemplos

• DATEDIFF(NOW(), '2001-09-20') – Retorna a diferença entre duas datas (em dias)

• FROM_DAYS(500) – Converte um inteiro (número de dias) em uma data

• TO_DAYS(NOW()) – Converte a data para dias

• TIMESTAMP(‘2001-09-20’) – Converte uma data para o formato time stamp

• TIMEDIFF(NOW(), TIMESTAMP('2001-09-20')) – Retorna a diferença entre dois tempos

8

Funções

Campus Sapucaia do Sul

Page 9: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Manipulação de datas e horas

• Exemplos

• CURDATE() – Retorna a data atual

• CURTIME() – Retorna a hora atual

• STR_TO_DATE('May 1, 2013','%M %d,%Y')

• DAYNAME(NOW()) - Retorna o nome do dia da semana (inglês)

• MONTHNAME(NOW()) – Retorna o nome do mês (inglês)

• WEEKDAY(NOW()) – Retorna um inteiro para o dia da semana (0 para segunda ...... 6 para domingo)

• Operações em datas

• NOW() + INTERVAL '10 2' DAY_HOUR

• NOW() - INTERVAL '10' DAY

9

Funções

Campus Sapucaia do Sul

Page 10: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Manipulação de datas e horas• Operações em datas

10

Funções

Campus Sapucaia do Sul

Page 11: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Manipulação de strings

• Permitem a modificação ou exibição de strings

• Exemplos

• CONCAT(‘Aqui é ’,’o aluno X!’) – Concatena duas ou mais strings

• LENGTH(‘teste’) – Retorna o tamanho de uma string

• REPLACE(‘Adidas’, ‘Ad’, ‘Ard’) – Altera uma string por um determinado valor

• REVERSE(‘Adidas’) – Inverte uma string

• UPPER(‘Adidas’) – Converte uma string pra maiúscula

• LOWER(‘ADiDaS’) – Converte uma string para minúscula

• REPEAT('Adidas ', 10) – Repete uma string um determinado número de vezes

11

Funções

Campus Sapucaia do Sul

Page 12: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Manipulação de strings

• Exemplos

• CONCAT_WS(' ', 'Adidas','ORIGINALS') – Concatena strings com um determinado separador

• STRCMP('text2', 'text') – Compara duas strings retornando 0 se as strings são iguais

• FIND_IN_SET('b','a,b,c,d') – Procura um caractere em uma stringretornando o índice na qual é encontrada

• SUBSTRING(‘922786588’,1,7) – Retorna uma substring iniciando no parâmetro 2 e com a quantidade informada no parâmetro 3

• SUBSTRING_INDEX('www.mysql.com', '.', 2) – Retorna uma substringde uma string, antes da ocorrência de um delimitador, o último parâmetro determinada a quantidade de repetições do delimitador

12

Funções

Campus Sapucaia do Sul

Page 13: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Manipulação de números

• Modificar e realizar operações matemáticas

• Exemplos

• POW(2,3) – Retorna o valor de 2 elevado a potência 3

• SQRT(9) – Retorna a raiz quadrada de um número

• TRUNCATE(1902.290, 1) – Retorna um valor com um determinado número de casas decimais

• RAND() – Randomiza um valor entre 0 e 1

• CONV('10',10,2) – Converte um determinado número de uma base informada para a última base informada

• FORMAT(12332.232412342341234, 2, 'de_DE') – Formata um determinado número, com a quantidade de casas decimais e o formato padrão para um determinado país

13

Funções

Campus Sapucaia do Sul

Page 14: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Manipulação de números

• Modificar e realizar operações matemáticas

• Exemplos

• ROUND(1.6, 2) – Arredonda corretamente valores (para cima ou para baixo), se passado o segundo parâmetro utiliza essa informação para a quantidade de casas decimais

• CEIL(1.2) – Arredonda sempre para cima

• FLOOR(1.999) – Arredonda sempre para baixo

• CAST(12333.777 as DECIMAL(10,2)) – Permite realizar formatações e conversões em dados

14

Funções

Campus Sapucaia do Sul

Page 15: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Controle de Fluxo

• São funções que permitem controlar o fluxo de uma determinada operação

• Normalmente utilizadas quando existe a necessidade de verificar uma condição para então retornar o valor de uma determinada consulta

• IF(1>2,'verdadeiro','falso') – Retorna um determinado valor após analisar uma expressão relacional (e.g., > ) e/ou lógica (e.g., ||)

• CASE 1 WHEN 0 THEN 'zero' WHEN 1 THEN 'um' END – Retorna um valor conforme os diversos casos descritos

15

Funções

Campus Sapucaia do Sul

Page 16: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Varáveis definidas pelo Usuário

• Utilizam a cláusula DECLARE

• Variáveis default do MySQL

• Utilizam a cláusula @@

16

Variáveis

Campus Sapucaia do Sul

Page 17: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Uma função é usada para gerar um valor que pode ser usado em uma expressão

• O valor é geralmente baseado em um ou mais parâmetros fornecidos à função

• É executada como parte de uma expressão

17

Funções Personalizadas

Campus Sapucaia do Sul

Page 18: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• SINTAXE

CREATE FUNCTION nome_função (parâmetros)

RETURNS tipo_dados

código_da_função

• Invocando uma função

SELECT nome_função(parâmetros)

18

Funções Personalizadas

Campus Sapucaia do Sul

Page 19: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Podemos também criar funções personalizadas!

19

Funções Personalizadas

Campus Sapucaia do Sul

Page 20: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Podemos também criar funções personalizadas!

20

Funções Personalizadas

Campus Sapucaia do Sul

Substitui temporariamente o “;” enquanto

símbolo finalizador de comandos SQL

Cria a função digitei com um parâmetro de

entrada.

Page 21: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Podemos também criar funções personalizadas!

21

Funções Personalizadas

Campus Sapucaia do Sul

Informa o tipo de retorno e a codificação do

mesmo (opcional, somente utilizado quando o

retorno será um texto

Retorno da função. Observe os slides

anteriores para determinar o que a função

CONCAT faz.

Page 22: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Podemos também criar funções personalizadas!

22

Funções Personalizadas

Campus Sapucaia do Sul

Encerra o comando CREATE FUNCTION com

o símbolo delimitador temporário.

Altera novamente o símbolo delimitador

para o símbolo default.

Page 23: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Podemos também criar funções personalizadas!

23

Funções Personalizadas

Campus Sapucaia do Sul

O que essa função faz?

Page 24: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Podemos também criar funções personalizadas!

24

Funções Personalizadas

Campus Sapucaia do Sul

O que essa função faz?

Page 25: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

• Podemos também criar funções personalizadas!

25

Funções Personalizadas

Campus Sapucaia do Sul

O que essa função faz?Observe as diferenças com as

funções anteriores...

Page 26: Funções - Ricardo Luis dos Santos · Ricardo Eletro Gustavo, Luan 3 Maus Rafael, Gabriela 1 ASK Eduardo, Gabriel W 5 3 Clash of Students –3K ... (MySQL) para manipulação de

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense© 2015 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Campus Sapucaia do Sul

FunçõesProfessor: Ricardo Luis dos Santos

IFSUL – Campus Sapucaia do Sul