banco de dados ii

Post on 30-Dec-2015

23 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Banco de Dados II. 5P/SI – 2011/01 Prof. Carlos Alberto Seixas. Agenda. Implementação sobre SGBD MySQL DateTime, Date, Timestamp Stored Procedures Functions. O ano de 2038. - PowerPoint PPT Presentation

TRANSCRIPT

5P/SI – 2011/01

Prof. Carlos Alberto Seixas

AgendaImplementação sobre SGBD MySQL

DateTime, Date, TimestampStored ProceduresFunctions

O ano de 2038O problema do ano 2038 é uma falha na

representação de datas em computadores, que pode causar erros em alguns programas de computador no ano de 2038.

O problema afeta os programas que utilizam a representação de tempo POSIX, em que a data é calculada através do número de segundos (ignorando os segundos bissextos) desde 1 de janeiro de 1970.

DatetimeO tipo DATETIME é usado quando você

precisa de valores que contém informações sobre data e a a hora.

MySQL recupera e mostra valores DATETIME no formato 'YYYY-MM-DD HH:MM:SS'.

A faixa suportada é de '1000-01-01 00:00:00' até '9999-12-31 23:59:59'.

DATEO tipo DATE é usado quando se necessita

apenas do valor da data, sem a parte da hora. MySQL recupera e mostra valores do tipo

DATA no formato 'YYYY-MM-DD'. A faixa suportada é de '1000-01-01' até '9999-

12-31'.

TimestampNumeral de 11 dígitos que representao número de

segundos passados desde 01 de janeiro de 1970.Os valores TIMESTAMP não podem ser anteriores a

1970 ou posteriores a 2037. Isto significa que datas como '1968-01-01', são

permitidas como valores DATETIME ou DATE, mas não são válidas para valores TIMESTAMP e serão convertidas para 0 se atribuídas para tais objetos.

DATETIME, DATE, e TIMESTAMP podem ter o mesmo formato, mas não tem a mesa faixa de valores.

Stored ProceduresConjunto de comandos SQL

armazendos no servidor que realizam tarefas específicas e são ativadas como comandos. Podem receber parâmetros de entrada, saída ou entrada e saída.

Procedimentos armazenados ou stored routinesSão programas armazenados no

servidor, pré-compilados, chamados de forma explícita para executar alguma lógica de manipulação de dados, podendo retornar ou não algum valor".

Estão disponíveis exatamente desde a versão 5.0 do SGBD MySQL.

Stored Procedures - LocalizaçãoSão inseridos em uma tabela chamada

ROUTINES no banco de dados INFORMATION_SCHEMA, que é o

dicionário de dados do MySQL.

Como listarPara listarmos todos os stored routines

(Stored Procedure e Functions), no mysql client:

mysql> SELECT * FROM INFORMATION_SCHEMA.ROUTINES;

Sintaxe GeralCREATE PROCEDURE

proc_name([parameters, ...])[characteristics][BEGIN]

      corpo_da_rotina;

[END]

CREATE PROCEDURE proc_name([parameters, ...])[characteristics] proc_name: seu procedimento armazenado deve ter um nome, para

quando for chamado, podermos então usá-lo;

parameters: nessa parte do procedimento, informaremos os parâmetros da seguinte forma: [IN | OUT | INOUT] nome_parametro tipo_dado.

Existem 3 tipos de parâmetros em uma Stored Procedure no MySQL:IN, OUT e INOUT.

characteristics: as características do procedimento pode apresentar.

Questões de segurança, se é determinística ou não, qual a linguagem que estamos utilizando e se nosso procedimento modificará dados na banco de dados,

Tipos de ParâmetrosIN => de entrada, ou seja, um parâmetro

cujo seu valor será utilizado no interior do procedimento para produzir algum resultado;

OUT => retorna algo de dentro do procedimento para o lado externo, colocando os valores manipulados disponíveis na memória ou no conjunto de resultados;

INOUT => entrada e saída

EXEMPLO 1DELIMITER $$DROP PROCEDURE IF EXISTS

‘escola’.’proc_mensagem_oi’$$CREATE PROCEDURE ‘escola’.’proc_mensagem_oi’

( )BEGIN

SELECT ‘OI, MENSAGEM ENVIADA !’;END $$DELIMITER;

EXEMPLO 1 - chamadaBem, procedimento compilado basta

executarmos o procedimento com o seguinte comando:

CALL proc_mensagem_oi();OBS.: Após a versão 5.1.18, não é mais

necessário os parênteses caso o procedimento não receba parâmetros.

A resposta do procedimento será: “OI, MENSAGEM ENVIADA !’”

Exemplo 2 Exemplo:DELIMITER $$

DROP PROCEDURE IF EXISTS escola.pr_total $$CREATE PROCEDURE escola.pr_total ( OUT total INT)BEGINSELECT count(0) INTO totalFROM produtos;END $$

ChamadaExecutando a procedure via linha de comandoC:\ mysql -u root -p

(após teclar ENTER informe a senha do usuário root)

mysql> use loja (Informamos o database que iremos utilizar)

mysql> call pr_total(@teste); (Chamamos a procedure pr_total e armazenamos o resultado em teste.)

mysql> select @teste; (Exibimos o resultado. No exemplo acima, trazemos a quantidade de produtos cadastrados.)

FunctionsCaracterísticas: São definidas pelo usuário, Promovem agilidade no desenvolvimento de

sistemas, Economia na escrita de código, Lógica também por conta do banco de dados, Oferecem mais segurança aos componentes que

manipulam dados e produzem informações, Facilitam a manutenção ,Minimizam o consumo de banda entre o servidor de

banco de dados MySQL e a sua aplicação.

Exemplo 1mysql> DELIMITER // mysql> CREATE FUNCTION palavra (texto

CHAR(20)) RETURNS CHAR(50) -> RETURN CONCAT('Voce digitou:

',texto,' !!!'); -> // mysql> DELIMITER ;

Chamando funçãomysql> SELECT palavra('oi');

Voce digitou: oi !!!

Exemplo 2Tabela com os nomes dos alunos de uma

disciplina com as notas de quatro bimestres, mostrando a média final.

mysql> CREATE TABLE notas(aluno VARCHAR(10), nota1 INT, nota2 INT, nota3 INT, nota4 INT);

Insira valores nesta tabela. mysql> INSERT INTO notas VALUES('Maria', 10,

9, 10, 10); mysql> INSERT INTO notas VALUES('Pedro', 5, 2, 3, 4);

Exemplo - Funçãomysql> DELIMITER // mysql> CREATE FUNCTION media (nome VARCHAR(10)) -> RETURNS FLOAT -> DETERMINISTIC –> BEGIN -> DECLARE n1,n2,n3,n4 INT; -> DECLARE med FLOAT; -> SELECT nota1,nota2,nota3,nota4 INTO n1,n2,n3,n4 FROM

notas WHERE aluno = nome; -> SET med = (n1+n2+n3+n4)/4; -> RETURN med; -> END -> // mysql> DELIMITER ;

Chamandomysql> SELECT media('Maria'); media('Maria') 9.75

mysql> SELECT media('Pedro'); media('Pedro’)3.5

ExercícioPrática 1 – Manipulação de objetos no

MySQL, via SQLYog ,Verificação do serviço MySQL, conexão com MySQL através do MySQL Yog, criação Banco de Dados: Conta

Prática 2 – Exercício 3 – Stored Procedure

BibliografiaGuia de referencia MySql 5.0, disponível em

Mysql.comWagner Bianchi,Imasters.com, Mysql 5.

top related