Prévia do material em texto
Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo – IFES. Campus Colatina André Parpaiola e Thalyson Cordeiro, turma V02 TIPOS DE DADOS DO MySQL Terminada a fase de análise da base de dados é necessário começar a desenhar as tabelas e seus atributos no banco de dados, para então armazenar os dados coletados. Os tipos de dados utilizados no MySQL seguem abaixo: TIPOS NUMÉRICOS O MySQL suporta todos os tipos numéricos da linguagem de consulta ANSI/ISO SQL-92. Juntando todas as extensões da SQL-92, o MySQL possui todos os tipos numéricos possíveis: exatos, aproximados, inteiros, de ponto fixo, ponto flutuante, dentre outros. Confira abaixo os tipos de dados possíveis: o TINYINT - Um inteiro muito pequeno; o SMALLINT - Um inteiro pequeno; o MEDIUMINT - Um inteiro de tamanho mediano; o INT ou INTEGER - Um inteiro de tamanho normal; o BIGINT - Um inteiro de tamanho grande; o FLOAT - Um pequeno número de ponto flutuante (precisão simples); o DOUBLE, DOUBLE PRECISION, REAL - Um número de ponto flutuante de tamanho normal (precisão dupla); o DECIMAL, NUMERIC - Um número de ponto flutuante descompactado. CAMPOS DE DATAS Existem várias opções para armazenar dados relacionados a data e hora, tudo para acompanhar ou marcar mudanças ocorridas em um campo de uma tabela. Veja abaixo os tipos: o DATE – Data; o DATETIME – Data e horário; o TIMESTAMP – Timestamp; o TIME – A time; o YEAR - Anos com 2 ou 4 digitos. O padrão é 4 digitos. CAMPOS DE TEXTO Os textos (strings) são cadeias de caracteres. No MySQL, uma string pode ter qualquer conteúdo, desde textos simples até dados binários. Confira a seguir: o CHAR - String de tamanho fixo. Sempre é completada com espaços a direita até o tamanho definido; o VARCHAR - String de tamanho variável; o TINYTEXT - String de tamanho variável; o TEXT - String de tamanho variável; o MEDIUMTEXT - String de tamanho variável; o LONGTEXT - String de tamanho variável. DADOS BINÁRIOS Tipo de dados utilizado para armazenar dados binários, seja qual for seu tamanho. o TINYBLOB; o BLOB; o MEDIUMBLOB; o LONGBLOB. LISTAS o ENUM – Enumeração; o SET – Lista. A seguir, veja a lista dos tipos de dados na linguagem SQL: o CHARACTER – Caracter de string; o VARCHAR ou CHARACTER VARYING - String de tamanho variável; o BINARY – String de número binário; o BOOLEAN – Armazena valores VERDADEIRO ou FALSO; o VARBINARY ou BINARY VARYING - String de números binários; o INTEGER – Número inteiro; o SMALLINT - Número inteiro; o INTEGER - Número inteiro; o BIGINT - Número inteiro; o DECIMAL – Número exato; o NUMERIC - Número exato; o FLOAT – Número aproximado, com ponto flutuante; o REAL – Número aproximado; o DOUBLE PRECISION - Número aproximado; o DATE – Campo de data; o TIME – Campo de tempo; o TIMESTAMP - Campo de tempo; o INTERVAL - Campo de tempo; o ARRAY – Um conjunto ou coleção ordenada por elementos; o MULTISET - Um conjunto ou coleção desordenada por elementos; o XML – Armazena dados XML. CARACTERES E COLLATIONS QUE O MYSQL SUPORTA Um conjunto de caracters é um conjunto de símbolos e códigos. Uma collation é um conjunto de regras para comparação de caracteres em um conjunto de caracteres. Vamos deixar a distinção clara com um exemplo de um conjunto de caracteres imaginário. Suponha que temos um alfabeto com quatro letras: ‘A’, ‘B’, ‘a’, ‘b’. Damos um número a cada letra: ‘A’ = 0, ‘B’ = 1, ‘a’ = 2, ‘c’ = 3. A letra ‘A’ é o símbolo, o número 0 é o código para ‘A’, e a combinação de todas as quatro letra e seus códigos é um conjunto de caracteres. Agora suponha que desejamos comparar duas strings, ‘A’ e ‘B’. O modo mais simples de se fazer isto é olhar o código --- 0 para ‘A’ e 1 para ‘B’ --- e como 0 é menor que 1, dezemos que ‘A’ é menor que ‘B’. Agora, o que fizemos foi apenas aplicar um collation a nosso conjunto de caracteres. A collation é um conjunto de regras (apenas uma regra neste caso): ``compara os códigos''. Na vida real, a maioria dos conjuntos de caracteres possuem muitos caracteres: não apenas ‘A’ e ‘B’ mas todo o alfabeto, algumas vezes alfabetos múltiplos ou sistemas de escritas ocidentais com milhares de caracteres, junto com muitos símbolos especiais e sinais de pontuação. Em geral as collations também possuem diversas regras: não apenas caso insensitivo mas acentos insensitivos e mapeamento de múltiplos caracteres (como a regra de que ‘Ö’ = 'OE' em uma das duas collations alemãs). O MySQL pode fazer as seguintes coisas para você: Armazena a string usando uma variedade de conjunto de caracteres; Compara strings usando uma variedade de collations; Mistura strings com diferentes conjuntos de caracteres ou collations no mesmo servidor, o mesmo banco de dados ou a mesma tabela; Permite a especificação de conjunto de caracteres e collations em qualquer nível. O MySQL suporta mais de 70 collations e mais de 30 conjuntos de caracteres. Dentre eles: O Conjunto de Caracteres Unicode; Conjunto de Caracteres para Plataformas Específicas; Conjunto de Caracteres do Sul da Europa e Oriente Médio; Os Conjuntos de Caracteres Asiáticos; Os Conjuntos de Caracteres Bálticos; Os Conjuntos de Caracteres Cirílicos; O Conjunto de Caracteres da Europa Centra; e Os Conjuntos de Caracteres da Europa Ocidental. TIPOS E TRATAMENTO DE CAMPOS DE DATA E HORA Os tipos DATETIME, DATE, e TIMESTAMP são relacionados. Abaixo o trabalho irá falar de suas características, como eles se assemelham ou como se diferem. O tipo DATETIME é usado quando você precisa de valores que contém informações sobre data e 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'. (``Suportada'' significa que embora valores anteriores possam funcionar, não há nenhuma garantia.) O tipo DATA é 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'. A coluna do tipo TIMESTAMP possui comportamento e propriedade variado, dependendo da versão do MySQL e do modo SQL que o servidor está executando. FUNÇÕES DE DATA E HORA NO COMANDO SELECT o CURDATE( ) - Retorna a data atual no formato aaaa-mm-dd; o CURTIME( ) - Retorna a hora atual no formato hh:mm:ss; o DATE_ADD (data, INTERVAL) - Adiciona um intervalo à data. A data pode ser uma data seguida de um horário. O intervalo a ser somado pode ser em dias, dias e horas e minutos, dias e segundos, minutos e segundos; o DATE_SUB (data, INTERVAL) - Subtrai um intervalo à data. A data pode ser uma data seguida de um horário. O intervalo a ser subtraído pode ser em dias, dias e horas e minutos, dias e segundos, minutos e segundos; o DATEDIFF (expre1,expre2) - Retorna o valor da diferença entre expre1 e expre2, podendo ambos ser uma data ou data e horário; o DATE_FORMAT(D, <formato>) - Retorna a data D no formato especificado; o DAYNAME(D) - Retorna o dia da semana para a data D; o DAYOFMONTH(D) - Retorna o dia do mês para a data D; o DAYOFWEEK(D) - Retorna o dia da semana em que a data D cai; o DAYOFYEAR(D) - Retorna o dia do ano para a data D; o FROM_DAYS(N) - Retorna a data real referente a um número N em dias; o NOW( ) - Retorna data e hora atuais; o PERIOD_DIFF(P1,P2) - Retorna o número de meses entre os dois períodos, que devem estar no formato AAMM ou AAAAMM; o QUARTER(D) - Retorna o trimestre do ano para a data D; o WEEK(D) - Retorna a semana doano para a data D; o WEEKDAY(D) - Retorna o dia da semana que inicia com segunda-feira para uma data D; o YEAR(D) -Retorna o ano de uma data D; o MONTH(D) -Retorna o mês de uma data D; o DAY(D) -Retorna o dia de uma data D. PERGUNTAS 1. Qual o conjunto de caracteres mais utilizados na atualidade’ Podemos considerar o conjunto de caracteres UTF-8, pode representar qualquer carácter universal padrão do Unicode, sendo também compatível com o ASCII. O UTF-8 reúne o melhor de dois mundos: a eficiência do ASCII e o âmbito do Unicode. Aliás, o UTF-8 foi adotado como um padrão para codificação de arquivos XML. A maioria dos navegadores atuais também suportam o UTF-8 e o detectam, automaticamente, nas páginas HTML. Está se tornando uma codificação padrão para e- mail, páginas web, e outros locais onde os caracteres são armazenados. 2. Qual a importância de utilizar o tipo de dado certo? Para cada atributo criado é preciso determinar o tipo de dado que será armazenado para poder ajustar a estrutura da base de dados e conseguir um armazenamento com a menor utilização de espaço possível. Saber como definir os tipos de dados em colunas de tabelas é algo crucial para uma futura aplicação funcionar sem "engasgos" e com ótima performance. REFERÊNCIAS Manual MySql, página 526 – 9.1 Os conjuntos de Caracteres e Collations que o MySQL Suporta; Os Tipos DATETIME, DATE e TIMESTAMP; http://ftp.nchu.edu.tw/MySQL/doc/refman/4.1/pt/datetime.html Função Data e Hora em MySql – Portal da Educação; http://www.portaleducacao.com.br/informatica/artigos/7408/funcao-data-e-hora-em-mysql http://help.scibit.com/Mascon/masconMySQL_Field_Types.html http://dev.mysql.com/doc/refman/5.0/en/data-type-overview.html