Você está na página 1de 31

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

KAIO LUIZ DA SILVA LORENA PRADO

TIPOS DE DADOS EM DIFERENTES BANCOS DE DADOS

CAMPOS DO JORDÃO - SP
2018
KAIO LUIZ DA SILVA LORENA PRADO

TIPOS DE DADOS EM DIFERENTES BANCOS DE DADOS

Trabalho apresentado ao Instituto Federal


de Educação, Ciência e Tecnologia, como
exigência parcial à obtenção de nota na
disciplina de Banco de Dados II, no curso
de Tecnologia em Análise e
Desenvolvimento de Sistemas

Orientador: Mestre Paulo Giovani de Faria


Zeferino

CAMPOS DO JORDÃO - SP
2018
RESUMO

À medida que as operações comerciais tornam-se mais complexas, a


exigência por mudanças em TI aumenta na mesma proporção, junto com os
riscos associados que devem ser minimizados. Nos dias de hoje, os
profissionais de TI precisam gerenciar mais informações e repassá-las aos
usuários, com uma qualidade de serviços cada vez melhor e pontual. Além
disso, no cenário econômico atual, as funções de TI também precisam reduzir
os orçamentos e gerar um valor maior com base nos investimentos já
realizados.
No presente trabalho discorre-se as diferenças entre os principais
bancos de dados do mercado, com relação aos tipos de dados utilizados em
suas estruturas.

Palavras-chave: banco de dados, tipos de dados, SGBD.


ABSTRACT

As business operations become more complex, the demand for IT changes


increases in the same proportion, along with the associated risks that need to be
minimized. Today, IT professionals need to manage more information and pass it on
to users, with better and more timely quality of services. In addition, in the current
economic scenario, IT functions also need to reduce budgets and generate a larger
value based on the investments already made.
In the present work we discuss the differences between the main databases of
the market, in relation to the types of data used in their structures.

Key words: database, data types, DBMS.


SUMÁRIO

1 INTRODUÇÃO ..................................................................................................... 4
2 TIPOS DE BANCO DE DADOS ........................................................................... 5
2.1 MICROSOFT SQL SERVER .................................................................................... 5
2.2 ORACLE .................................................................................................................... 8
2.3 MYSQL .................................................................................................................... 11
2.4 SQLITE .................................................................................................................... 12
2.5 FIREBIRD ................................................................................................................ 17
2.6 ACCESS ................................................................................................................... 19
2.7 POSTGRESQL ......................................................................................................... 22
3 CONCLUSÃO .................................................................................................... 27
4 REFERÊNCIAS .................................................................................................. 28
4

1 INTRODUÇÃO

Tipos de dados são artifícios comuns em bancos de dados para tipificar


conjuntos de possíveis valores definidos em uma coluna. Desde o momento em que
se define que uma determinada coluna de uma tabela armazenará valores de um
determinado tipo de dado, as características destes valores que ocuparão aquela
parte da tupla foram definidas. Os tipos permitidos para atributos de tabelas sempre
sofrem inovações com o passar do tempo e desde o System R, da IBM, estes
pequenos coadjuvantes ou artifícios são bastante úteis para definição da forma
como a informação deverá ser armazenada, melhor acessada e aproveitada, sem
que haja perda e informações indesejadas não sejam permitidas.

O presente trabalho visa identificar os principais tipos de dados presentes em


alguns bancos de dados.
Este trabalho especificamente vai tratar os seguintes bancos de dados:

Microsoft SQL Server;

Oracle;

MySQL;

SQLite;

Firebird,

Access;

PostgreSQL

Após a apresentação e análise dos mesmos é esperado o entendimento das


regras, os conceitos e a aplicação do conhecimento no dia-a-dia.
5

2 TIPOS DE BANCO DE DADOS

Modelar, criar e manter tabelas é uma das funções mais importantes de um


desenvolvedor de banco de dados. Antes de criar uma tabela é necessário entender
as diferenças entre os tipos de dados que pode-se utilizar em uma coluna.
Ao decorrer deste trabalho, apresentarei alguns bancos de dados e
informações sobre os tipos de dados envolvidos em sua estrutura.

2.1 MICROSOFT SQL SERVER

O Microsoft SQL Server é um sistema gerenciador de Banco de dados


relacional (SGBD) desenvolvido pela Microsoft. Foi criado em parceria com a Sybase
em 1988 inicialmente para a plataforma OS/2. Esta parceria durou até 1994, com o
lançamento da versão para Windows NT e desde então a Microsoft mantém a
manutenção do produto. Como um Banco de dados, é um produto de software cuja
principal função é a de armazenar e recuperar dados solicitados por outras
aplicações de software, seja aqueles no mesmo computador ou aqueles em
execução em outro computador através de uma rede (incluindo a Internet). Há pelo
menos uma dúzia de diferentes edições do Microsoft SQL Server destinadas a
públicos diferentes e para diferentes cargas de trabalho (variando de pequenas
aplicações que armazenam e recuperam dados no mesmo computador, a milhões
de usuários e computadores que acessam grandes quantidades de dados a partir da
Internet ao mesmo tempo). Suas linguagens de consulta primárias são Transact-
SQL (T-SQL) e ANSI SQL.
Cada coluna em uma tabela de um banco de dados do Microsoft SQL Server
Compact 4.0 dá suporte a um conjunto de tipos de dados que especifica o tipo de
dados que a coluna pode conter.
O Microsoft SQL Server oferece suporte aos seguintes tipos de dados:

Tipo de dados Descrição

bigint Dados inteiros (número inteiro) de –2^63 (–


9,223,372,036,854,775,808) a 2^63–1
(9,223,372,036,854,775,807). O tamanho de
armazenamento é 8 bytes.
6

integer Dados inteiros (número inteiro) de –2^31 (–


2.147.483.648) a 2^31–1 (2.147.483.647). O
tamanho de armazenamento é de 4 bytes.

smallint Dados inteiros de –32.768 a 32.767. O tamanho de


armazenamento é de 2 bytes.

tinyint Dados inteiros de 0 a 255. O tamanho de


armazenamento é 1 byte.

bit Dados inteiros com um valor de 1 ou 0. O tamanho de


armazenamento é 1 bit.

numeric (p, s) Dados de precisão e numéricos de escala fixos de –


Synonyms: 10^38+1 a 10^38–1. A variável p especifica a
decimal(p,s) and dec (p,s) precisão e pode variar entre 1 e 38. A
variável s especifica a escala e pode variar entre 0
e p. O tamanho de armazenamento é de 19 bytes.

money Valores de dados monetários de (–2^63/10000) (–


922.337.203.685.477,5808) a 2^63–1
(922.337.203.685.477,5807), com precisão de um
décimo milionésimo de uma unidade monetária. O
tamanho de armazenamento é 8 bytes.

float Dados de número de ponto flutuante de –1.79E +308


a 1.79E+308. O tamanho de armazenamento é 8
bytes.

real Dados de número de precisão flutuantes de–3.40E+38


a 3.40E+38. O tamanho de armazenamento é de 4
bytes.

datetime Dados de data e hora de 1 de janeiro de 1753 a 31 de


dezembro de 9999, com precisão de três centésimos
de segundo ou 3,33 milissegundos. Os valores são
arredondados em incrementos de .000, .003 ou .007
milissegundos. Armazenados como dois inteiros de 4
bytes. Os primeiros 4 bytes armazenam o número de
dias antes ou depois de base date, 1º de janeiro de
1900. A data base é a data de referência do sistema.
Valores de datetime anteriores a 1 de janeiro de
1753 não são permitidos. Os outros 4 bytes
armazenam a hora do dia representada como o
número de milissegundos depois da meia-noite. Os
segundos têm um intervalo válido de 0-59.
Formato-Exemplo
aaaa/mm/dd hh:mm:ss1947/08/15 03:33:20
mm/dd/aaaa hh:mm:ss04/15/1947 03:33:20
7

dd mmm aaaa hh:mm:ss15 jan 1947 03:33:20


dd mmmm aaaa h:mm:ss15 de janeiro 1947 03:33:20

national character(n) Dados Unicode de comprimento fixo com um


Synonym:nchar(n) comprimento máximo de 4.000 caracteres.
Comprimento padrão = 1. O tamanho de
armazenamento, em bytes, é duas vezes o número de
caracteres inseridos.

national character Dados Unicode de comprimento variável com um


varying(n) comprimento de 1 a 4.000 caracteres. Comprimento
Synonym:nvarchar(n) padrão = 1. O tamanho de armazenamento, em
bytes, é duas vezes o número de caracteres inseridos.

ntext Dados Unicode de comprimento variável com um


comprimento máximo de (2^30–2)/2 (536,870,911)
caracteres. O tamanho de armazenamento, em bytes,
é duas vezes o número de caracteres inseridos.
Observação: Não há mais suporte para ntext nas
funções de cadeia de caracteres.

nchar Dados de caractere Unicode de comprimento fixo com


n caracteres; n deve ser um valor de 1 a 4.000. O
tamanho de armazenamento é duas vezes n bytes.

binary(n) Dados binários de comprimento fixo com um


comprimento máximo de 8.000 bytes. Comprimento
padrão = 1. O tamanho de armazenamento é fixo,
que é o comprimento em bytes declarado no tipo.

varbinary(n) Dados binários de comprimento variável com um


comprimento máximo de 8.000 bytes. Comprimento
padrão = 1. O tamanho do armazenamento varia. É o
comprimento do valor em bytes.

image Dados binários de comprimento variável com um


comprimento máximo de 2^30–1 (1,073,741,823)
bytes.
O armazenamento é o comprimento do valor em
bytes.

uniqueidentifier Um GUID (identificador global exclusivo). O tamanho


de armazenamento é 16 bytes.

IDENTITY [(s, i)] Essa é uma propriedade de uma coluna de dados, não
um tipo de dados distinto. Somente colunas de dados
com tipos de dados inteiros podem ser usadas para
colunas de identidade. Uma tabela só pode ter uma
coluna de identidade. Uma propagação e um
8

incremento podem ser especificados e a coluna não


pode ser atualizada.
s (propagação) = valor inicial
i(incremento) = valor do incremento

ROWGUIDCOL Essa é uma propriedade de uma coluna de dados, não


um tipo de dados distinto. É uma coluna em uma
tabela definida pelo uso do tipo de
dados uniqueidentifier. Uma tabela só pode ter uma
coluna ROWGUIDCOL.

Timestamp/rowversion Este é um número binário exclusivo gerado


automaticamente. O tamanho de armazenamento é 8
bytes.

*Disponível em https://technet.microsoft.com/ptbr/library/ms172424(v=sql.110).aspx

2.2 ORACLE

O Oracle é um SGBD (sistema gerenciador de banco de dados) que surgiu no


fim dos anos 70, quando Larry Ellison vislumbrou uma oportunidade que outras
companhias não haviam percebido, quando encontrou uma descrição de um
protótipo funcional de um banco de dados relacional e descobriu que nenhuma
empresa tinha se empenhado em comercializar essa tecnologia.
Ellison e os co-fundadores da Oracle Corporation, Bob Miner e Ed Oates,
perceberam que havia um tremendo potencial de negócios no modelo de banco de
dados relacional tornando assim a maior empresa de software empresarial do
mundo.
Além da base de dados, a Oracle desenvolve uma suíte de desenvolvimento
chamada de Oracle Developer Suite, utilizada na construção de programas de
computador que interagem com a sua base de dados. A Oracle também criou a
linguagem de programação PL/SQL, utilizada no processamento de transações.

A seguir sâo apresentados os principais tipos de dados do SGBD


Oracle.
9

Tipos de dado Caractere:

• CHARACTER(X) | CHAR(X): Representa uma string do tamanho "X", se o "X"


for omitido então é equivalente a CHAR(1). Se a string armazenada for menor
que o especificado em "X", o restante é preenchido em branco.

• VARCHAR2(N): Armazena uma string de tamanho variável, é possivel


armazenar uma string de até 4000 bytes.

• CHARACTER VARYING (X) | VARCHAR (X): É o sinônimo do VARCHAR2


que representa uma string do tamando "X", armazena exatamente o tamanho
da string sem preencher os espaços em branco. o "X" é obrigatório.

• CHARACTER LARGE OBJECT | CLOB: Armazena strings longas, é muto


usado para armazenar documentos.

Tipos de dado Bit String:

• BIT(X): Permiti armazenar uma quantidade "X" de bits.

• BIT VARING(X) | VARBIT(X); Armazena uma quantidade variável de bits até


o tamanho "X".

Tipos de dado Binary Strings (BLOB):

Os Large Object (LOB) datatypes são usados para armazenar dados não
estruturados como imagens ou arquivos bináios. Os LOBs podem armazenar até
4GB de informação:

• BINARY LARGE OBJECT | BLOB: Para armazenar grande quantidade de


bytes, como arquivos comum de multimidia, ex: imagem, música, etc...

• CHARACTER LARGE OBJECT | CLOB: Armazena até 4GB de dados


10

caractere.

• BINARY FILE | BFILE: Armazena até 4GB de dados de arquivos externos.


Uma coluna BFILE armazena um ponteiro para arquivo armazenado no SO.

Tipos de dados numérico:

• INTEGER | INT E SMALLINT: Para armazenar números inteiros.

• NUMERIC (P,S) Tem uma precisão (P) e escala (S) - número de dígitos na
parte fracionário, Obs: A escala não pode ser maior que a precisão. Muito
utilizado para representar dinheiro.

• DECIMAL (P,S): Tem o mesmo funcionamento que o NUMERIC.

• REAL: Ponto flutuante de precisão simples.

• DOUBLE: Ponte flutuante de precisão dupla.

• FLOAT (P): Permite especificar a precisão que se quer.

Tipos de dados data:

• DATE: Armazena o ano (4 dígitos), mês (2 dígitos) e dia (2 dígitos).

• TIME: Armazena hora (2 dígitos), minuto (2 dígitos) e segundos (2 dígitos).

• TIMESTAMP: É o tipo DATA + TIME.

• TIME WITH TIME ZONE: Igual ao TIME + UTC offset.

• TIMESTAMP WITH TIME ZONE: Igual ao TIMESTAMP + UTC offset.


11

2.3 MYSQL

O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que


utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured
Query Language) como interface. O MySQL é o banco de dados de código aberto
mais conhecido no mundo. Com comprovado desempenho, confiabilidade e
facilidade de uso, o MySQL tornou-se a principal opção de banco de dados para
aplicativos baseados na Web, usado por propriedades da Web de alto perfil,
incluindo Facebook, Twitter, YouTube, entre outros.
Abaixo apresenta-se os principais tipos de dados utilizados nesse SGBD.

Campos Numéricos

Alguns campos numéricos possuem a opção UNSIGNED. Isso quer dizer que o
número não pode ser negativo. Por exemplo: o campo TINYINT com a opção
UNSIGNED vai de 0 até 255, sem a opção UNSIGNED vai de -128 até 127.
A opção ZEROFILL completa o campo com zeros. Por exemplo: se você
cadastrar ’65’ em um campo INT(5) – ou seja, inteiro com 5 dígitos – com a opção
ZEROFILL habilitada, o MySQL irá cadastrar ‘00065’. Sem a opção ZEROFILL
habilitada, o MySQL irá cadastrar ’65’.
• TINYINT: Um número muito pequeno, de 0 até 255 (UNSIGNED) ou -128 até
127. Ocupa 1 byte.
• SMALLINT: Um inteiro pequeno, de 0 a 65535 (UNSIGNED) ou -32768 até
32767. Ocupa 2 bytes.
• MEDIUMINT: Um inteiro de tamanho médio, de 0 a 16777215 (UNSIGNED)
ou -8388608 a 8388607. Ocupa 3 bytes.
• INT ou INTEGER: Um inteiro de tamanho normal. De 0 a 4294967295
(UNSIGNED) ou -2147483648 a 2147483647. Ocupa 4 bytes.
• BIGINT: Um inteiro grande. De 0 a 18446744073709551615 ou -
9223372036854775808 a 9223372036854775807. Ocupa 8 bytes.
• DECIMAL: Um número decimal. Para armazenar um valor monetário, por
exemplo, você pode definir o tamanho dele como 8,2. Isso quer dizer que ele
poderá ter 8 dígitos à esquerda da vírgula, e duas casas decimais à direita da
12

vírgula. O campo é armazenado como string, então não deve ocorrer


nenhuma perda de precisão (arredondamento).
• DATE: Data no formato ‘AAAA-MM-DD’. Entre ‘1000-01-01’ e ‘9999-12-31’.
• DATETIME: Combinação de data e hora no formato ‘AAAA-MM-DD
HH:MM:SS’. Entre ‘1000-01-01 00:00:00’ e ‘9999-12-31 23:59:59’.
• TIME: Hora no formato ‘HH:MM:SS’. A faixa é entre ‘-838:59:59’ e ‘838:59:59’.
• YEAR: Ano com 2 ou 4 dígitos (padrão 4 dígitos).
• ENUM: Uma enumeração. Exemplo de uso: você tem um campo chamado
“ativo” que possui apenas duas opções (0 e 1). Pode ter até 65535 valores
diferentes.

Campos String (texto)

• VARCHAR: String com tamanho entre 1 e 255 caracteres.


• CHAR: String com tamanho entre 1 e 255 caracteres. Para campos com
tamanho fixo (CPF, CEP etc.) é mais vantagem usar o CHAR, porque ele
ocupa um byte a menos que o VARCHAR. Por exemplo: você vai cadastrar o
valor “abcde” em um campo CHAR(5), ele vai ocupar 5 bytes, se você
cadastrar em um VARCHAR(5), ele vai ocupar 6 bytes, porém se você
cadastrar o valor “ab” em um campo CHAR(5) ele vai ocupar os mesmos 5
bytes, e o VARCHAR(5) vai ocupar 3 bytes (1 byte a mais do que a
quantidade de caracteres).
• TINYTEXT ou TINYBLOB: String com até 255 bytes.
• TEXT ou BLOB: String com até 65535 bytes ou 64KB.
• MEDIUMTEXT ou MEDIUMBLOB: String com até 16777215 bytes ou 16MB.
• LONGBLOB: String com até 4294967295 bytes ou (4GB).

2.4 SQLITE

SQLite é uma biblioteca em linguagem C que implementa um banco de dados


SQL embutido. Programas que usam a biblioteca SQLite podem ter acesso a banco
de dados SQL sem executar um processo SGBD separado. Segundo os seus
13

desenvolvedores é autocontido, independente de uma estrutura cliente-server,


dispensa configurações e ainda possui uma estrutura transacional.
Ele pode ser livremente distribuído e por ser pequeno pode facilmente ser
embarcado em diversos terminais, como celulares, MP3 players, entre outros.
Em SQLite, diferente de outros motores de banco de dados, o tipo de dado de
um valor está associado com o valor propriamente dito, e não com o seu contêiner.
É um sistema de tipo dinâmico. Um campo de uma tabela em SQLite pode receber
qualquer tipo de dado. Assim, o SQLite simplesmente ignora o tipo informado no
comando CREATE TABLE.
Então, dizemos que no SQLite existem classes de armazenamento. E essas
classes são
Os seus principais tipos de dados são:

• NULL - como em qualquer outro banco de dados.


• INTEGER - inteiro com sinal, armazenado em 1, 2, 3, 4, 6 ou 8 bytes
dependendo da grandeza do valor.
• REAL - valor de ponto flutuante armazenado em 8 bytes.
• TEXT - uma string armazenada usando UTF-8, UTF-16BE ou UTF-
16LE.
• BLOB - armazena um blob, como indica o nome.

Uma coluna INTEGER PRIMARY é uma exceção. Só aceita números inteiros.


Qualquer valor em um comando SQL tem uma classe de armazenamento implícita.
Durante a execução do comando SQL, o SQLite pode converter valores entre
classes numéricas (INTEGER e REAL) e TEXT.

Tipo Boolean

Não existe uma classe Boolean. Pode-se considerar os inteiros 0 (false) e 1


(true).

Tipos Data e Hora


14

Não existem classes de armazenamento para armazenar data e/ou hora.


Existem funções capazes de tratar TEXT, REAL ou INTEGER como data e hora:
TEXT - como string ISO8601 ("YYYY-MM-DD HH:MM:SS.SSS").
REAL - como dias Julianos. A origem (dia 0) é o meio dia de 24 de novembro
de 4714 A.C., pelo calendário Gregoriano.
INTEGER - como a hora no Unix. A origem é o dia 1º de janeiro de 1970.

Funções de Data e Hora

São cinco as funções:

date(timestring, modifier, modifier, ...) - retorna a data no formato YYYY-MM-


DD.
time(timestring, modifier, modifier, ...) - retorna a hora no formato HH:MM:SS.
datetime(timestring, modifier, modifier, ...) - retorna data e hora no formato
"YYYY-MM-DD HH:MM:SS".
julianday(timestring, modifier, modifier, ...) - retorna do dia Juliano.
strftime(format, timestring, modifier, modifier, ...) - retorna a data formatada
de acordo com o formato especificado no primeiro argumento.

Todas recebem uma string de tempo e 0 ou mais modificadores como


argumentos. Uma string de tempo pode ter um dos seguintes formatos, além de
outros que podem ser encontrados em http://www.sqlite.org/lang_datefunc.html:
YYYY-MM-DD
YYYY-MM-DD HH:MM:SS
HH:MM
HH:MM:SS
now

O formato 'now' é convertido na data e hora correntes. Por exemplo:

SELECT date('now'); - calcula da data corrente.

Os modificadores alteram a string de data e hora. Alguns dos modificadores


15

disponíveis são:
NNN days
NNN hours
NNN minutes
NNN.NNNN seconds
NNN months
NNN years
start of month
start of year

Os primeiros seis modificadores simplesmente adicionam a quantidade de


tempo especificada à data e hora especificadas pela string de tempo. Por exemplo:
SELECT date('now', '+1 days'); - calcula a data corrente mais um dia.
SELECT date('now', 'start of month'); - calcula o primeiro dia do mês corrente.

O parâmetro formato pode assumir alguns desses valores:


%d - dia do mês
%H - hora (de 00 a 24)
%J - dia Juliano
%w - dia da semana de 0 a 6 (domingo = 0)

Por exemplo:
SELECT strftime('%J', 'now'); - calcula o dia Juliano equivalente à data
corrente.

Exemplos de nomes de afinidade

A tabela a seguir mostra quantos nomes de tipos de dados comuns das


implementações SQL mais tradicionais são convertidos em afinidades pelas cinco
regras da seção anterior. Esta tabela mostra apenas um pequeno subconjunto dos
nomes de tipos de dados que a SQLite aceitará. Observe que os argumentos
numéricos entre parênteses que seguem o nome do tipo (ex: "VARCHAR (255)") são
ignorados pelo SQLite. O SQLite não impõe restrições de comprimento (além do
limite global global SQLITE_MAX_LENGTH ) no comprimento de strings, BLOBs ou
16

valores numéricos.

Tipos de exemplo de exemplo da Afinidade Regra usada para


declaração CREATE TABLE ou resultante determinar a
expressão CAST afinidade

INT INTEGER 1
INTEGER
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED BIG INT
INT2
INT8

CHARACTER(20) TEXT 2
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOB

BLOB BLOB 3
no datatype specified

REAL REAL 4
DOUBLE
DOUBLE PRECISION
FLOAT

NUMERIC NUMERIC 5
DECIMAL(10,5)
BOOLEAN
DATE
DATETIME

*Disponível em https://www.sqlite.org/datatype3.html
17

2.5 FIREBIRD

Firebird é um sistema gerenciador de banco de dados. Roda em Linux,


Windows, Mac OS , e em grande sistema operacionais e uma variedade de
plataformas Unix. A Fundação FirebirdSQL coordena a manutenção e
desenvolvimento do Firebird, sendo que os códigos fonte são disponibilizados sob o
CVS da SourceForge.
O Firebird é gratuito em todos os sentidos: não há limitações de uso, e seu
suporte amplamente discutido em listas na Internet, o que facilita enormemente a
obtenção de ajuda técnica. O produto suporta sistemas com centenas de usuários
simultâneos e bases de dados com centenas de gigabytes. Há suporte gratuito na
Internet através de vários sítios.
Desde sua primeira versão, oferece recursos como: compatibilidade ACID,
transações MVCC, triggers, procedures, collations, UDFs, etc.O Firebird tem a maior
base de usuários no Brasil, Rússia e Europa.

A seguir, uma adaptação acerca dos principais tipos de dados utilizados


nesse SGBD, adaptado do site do desenvolvedor do produto.

MSSQL
Data Type Firebird MSSQL definition and comments
Ver

6.5 bigint INT64 Tipo de número inteiro de 8 bytes.


Dados binários de comprimento fixo com um
6.5 binary CHAR comprimento máximo de 8.000 bytes. Em 6.5, o
máximo foi de 255.
Dados inteiros com um valor 1 ou
6.5 bit CHAR(1) 0. Normalmente, substituído pelas constantes
'T' e 'F'.

Dados de caracteres não-Unicode de


comprimento fixo com um comprimento
6.5 char CHAR máximo de 8.000 caracteres. Em 6.5, o
máximo foi de 255. O Firebird pode armazenar
até 32.767 caracteres.

Uma referência a um cursor. Isso só pode ser


usado dentro do procedimento armazenado ou
6.5 cursor
disparadores; não pode ser usado nas
declarações da tabela.

6.5 datetime TIMESTAMP Dados de data e hora, de 1º de janeiro de


18

MSSQL
Data Type Firebird MSSQL definition and comments
Ver

1753, até 31 de dezembro de 9999, com


precisão de três centésimos de segundo ou
3,33 milissegundos.

Precisão fixa e escala dos dados numéricos de


6.5 decimal DECIMAL
-10 38 -1 a 10 38 -1.

Dados de números de precisão flutuante de -


6.5 float FLOAT
1.79E + 308 a 1.79E + 308.

Dados binários de comprimento variável com


6.5 image BLOB um comprimento máximo de 2 31 - 1
(2.147.483.647) bytes.

Inteiro (número inteiro) de dados a partir de -


6.5 int INTEGER 2 31 (2,147,483,648) até 2 31 - 1
(2147483647).

Os valores monetários de dados a partir de -


2 63 (-922,337,203,685,477.5808) através de
6.5 money DECIMAL(18, 4) 2 63 - 1 (+922,337,203,685,477.5807), com
uma precisão de um décimo de milésimo de
uma unidade monetária.

CHAR(x)
CHARACTER Dados Unicode de comprimento fixo com um
7 nchar
SET comprimento máximo de 4.000 caracteres.
UNICODE_FSS

Dados Unicode de comprimento variável com


BLOB SUB_TYPE
7 ntext um comprimento máximo de 2 30 - 1
TEXT
(1.073.741.823) caracteres.

Em MS SQL, decimal e numérico são


6.5 numeric NUMERIC
synonims.

VARCHAR(x)
CHARACTER Dados Unicode de comprimento fixo com um
7 nvarchar
SET comprimento máximo de 4.000 caracteres.
UNICODE_FSS

Dados de número de precisão flutuante de -


6.5 real DOUBLE
3.40E + 38 a 3.40E + 38.

Dados de data e hora de 1 de janeiro de 1900,


até 6 de junho de 2079, com precisão de um
6.5 smalldatetime TIMESTAMP
minuto. O Firebird tem maior alcance e
precisão.

Dados inteiros de -2 15
(-32,768) a 2 15
-1
6.5 smallint SMALLINT
(32,767).

Valores de dados monetários de -


214,748.3648 até +214,748.3647, com
6.5 smallmoney DECIMAL(10, 4) precisão para um dez milésimo de uma
unidade monetária. Observe que o alcance do
Firebird é maior com esta declaração.
19

MSSQL
Data Type Firebird MSSQL definition and comments
Ver

Permite o armazenamento de valores de dados


2000 sql_variant BLOB
de diferentes tipos de dados.

Armazena os resultados temporariamente para


2000 table none
usuários posteriores.

De comprimento variável de dados não


BLOB SUB_TYPE
6.5 text Unicode com um comprimento máximo de
TEXT
2 31 - 1 (2,147,483,647) caracteres.

Um número único de todo o banco de


6.5 timestamp INTEGER dados. No Firebird, você terá que gerenciar a
singularidade através de geradores.

Dados inteiros de 0 a 255. O Firebird não


6.5 tinyint SMALLINT
possui um tipo de dados tão pequeno.

Dados binários de comprimento variável com


6.5 varbinary CHAR
um comprimento máximo de 8.000 bytes.

Dados não-Unicode de comprimento variável


com um máximo de 8.000 caracteres. O
6.5 varchar VARCHAR
Firebird pode armazenar até 32.765
caracteres. Em 6.5, o máximo foi de 255.

Um identificador globalmente exclusivo


(GUID). No Firebird, você terá que gerar os
7 uniqueidentifier CHAR(38)
valores com funções definidas pelo usuário
(UDFs).

CHAR Dados inteiros com um valor 1 ou 0. Normalmente, substituído


6.5 pouco
(1) pelas constantes 'T' e 'F'.
*Disponível em língua inglesa em https://www.firebirdsql.org/pdfmanual/html/migration-mssql-data-types.html

2.6 ACCESS

Microsoft Access (nome completo Microsoft Office Access), também


conhecido por MSAccess, é um sistema de gerenciamento de banco de dados da
Microsoft, incluído no pacote do Microsoft Office Professional, que combina o
Microsoft Jet Database Engine com uma interface gráfica do utilizador (graphical
user interface). Ele permite o desenvolvimento rápido de, RAD - Rapid Application
Development) que envolvem tanto de dados como também a interface a ser utilizada
pelos usuários. Microsoft Access é capaz de usar dados guardados em qualquer
recipiente de dados compatível com ODBC.
O Access 2003 na sua versão 11 traz maior integração com browser, além da
20

linguagem VBA, marcação em XML e incorporação da linguagem SQL nas consultas


de tabelas do banco.
A tabela a seguir mostra os tipos de dados do Microsoft Access, tipos de
dados usados para criar tabelas e tipos de dados SQL ODBC.

Tipo de dados do Tipo de dados


Microsoft Access (CREATETABLE) Tipo de dados ODBC SQL

BIGBINARY [1]+ LONGBINARY SQL_LONGVARBINARY

BINARY BINARY SQL_BINARY

BIT BIT SQL_BIT

CONTADOR CONTADOR SQL_INTEGER

CURRENCY CURRENCY SQL_NUMERIC

DATA/HORA DATETIME SQL_TIMESTAMP

GUID GUID SQL_GUID

BINÁRIO LONGO LONGBINARY SQL_LONGVARBINARY

TEXTO LONGO LONGTEXT SQL_WLONGVARCHAR


SQL_LONGVARCHAR [2] [3]

MEMORANDO LONGTEXT SQL_WLONGVARCHAR


SQL_LONGVARCHAR [2] [3]

NÚMERO (tamanho do ÚNICO SQL_REAL


campo = único)

NÚMERO (tamanho do DOUBLE SQL_DOUBLE


campo = duplo)

NÚMERO (tamanho do BYTE NÃO ATRIBUÍDO SQL_TINYINT


campo = BYTE)

NÚMERO (tamanho do CURTO SQL_SMALLINT


campo = inteiro)

NÚMERO (tamanho do LONG SQL_INTEGER


campo = inteiro longo)
21

Tipo de dados do Tipo de dados


Microsoft Access (CREATETABLE) Tipo de dados ODBC SQL

NUMERIC NUMERIC SQL_NUMERIC

OLE LONGBINARY SQL_LONGVARBINARY

TEXT VARCHAR SQL_WVARCHAR SQL_VARCHAR


[1] [2]

ARBINARY VARBINARY SQL_VARBINARY

[1] somente aplicativos de acesso 4.0. Comprimento máximo de bytes 4000.


Comportamento semelhante ao LONGBINARY.
[2] somente aplicativos ANSI.
[3] Unicode e acesso 4.0 aplicativos somente.

Observação

SQLGetTypeInfo retorna tipos de dados ODBC. Ela não retornará todos os


tipos de dados do Microsoft Access se mais de um tipo do Microsoft Access é
mapeado para o mesmo tipo de dados SQL ODBC. Todas as conversões no
Apêndice D do referência do programador de ODBC têm suporte para os tipos de
dados SQL listados na tabela anterior.
A tabela a seguir mostra as limitações nos tipos de dados do Microsoft
Access.

Tipo de dados Descrição

BINARY, VARBINARY e Criar uma coluna BINARY, VARBINARY ou VARCHAR zero ou uma
VARCHAR coluna 510 bytes realmente retorna um comprimento
especificado.

BYTE Mesmo que um campo de número de acesso da Microsoft com


um FieldSize igual a bytes é não assinado, um número negativo
pode ser inserido no campo usando o driver do Microsoft Access.

VARCHAR, Um literal de cadeia de caracteres pode conter qualquer


LONGVARCHAR e caractere ANSI (decimal de 1 a 255). Use duas aspas simples
22

Tipo de dados Descrição

CHAR consecutivas (") para representar uma aspa simples (').

Procedimentos devem ser usados para passar dados de caractere


ao usar caracteres especiais em uma coluna de tipo de dados de
caractere.

DATE Valores de data devem ser delimitados de acordo com o formato


de data canônica ODBC ou delimitados pelo delimitador de
data/hora ("#"). Caso contrário, o Microsoft Access tratará o
valor como uma expressão aritmética e não gerará um erro ou
aviso.

Por exemplo, a data de "5 de março de 1996" devem ser


representados como {d ' 1996-03-05'} ou # #03/05/1996; Caso
contrário, se apenas 05/03/1993 é enviado, o Microsoft Access
avaliará essa como 3 dividido por 5 dividido por 1996. Esse valor
é arredondado para cima até o inteiro 0, e desde o dia zero
mapeia para 1899-12-31, esta é a data usada.

Um caractere de pipe (|) não pode ser usado em um valor de


data, mesmo se atrás entre aspas.

GUID Tipo de dados limitado para o Microsoft Access 4.0.

NUMERIC Tipo de dados limitado para o Microsoft Access 4.0.

*Disponível em https://docs.microsoft.com/pt-br/sql/odbc/microsoft/microsoft-access-data-types

2.7 POSTGRESQL

PostgreSQL é um sistema gerenciador de banco de dados objeto relacional


(SGBDOR), desenvolvido como projeto de código aberto.
Hoje, o PostgreSQL é um dos SGBDs (Sistema Gerenciador de Bancos de
Dados) de código aberto mais avançados, contando com recursos como:

• Consultas complexas
• Chaves estrangeiras
• Integridade transacional
• Controle de concorrência multi-versão
• Suporte ao modelo híbrido objeto-relacional
• Ele tem facilidade de Acesso
23

• Gatilhos
• Visões
• Linguagem Procedural em várias linguagens (PL/pgSQL, PL/Python,
PL/Java, PL/Perl) para Procedimentos armazenados
• Indexação por texto
• Estrutura para guardar dados Georeferenciados PostGIS

Os tipos de dados númericos inteiros são :

Tipo Tamanho Faixa

smallint 2 bytes -32768 to +32767

integer 4 bytes -2147483648 to +2147483647

bigint 8 bytes -9223372036854775808 to 9223372036854775807

Os tipos de dados números fracionários são:

Tipo Tamanho Faixa

decimal variable no limit

numeric variable no limit

real 4 bytes 6 decimal digits precision

double precision 8 bytes 15 decimal digits precision

Os tipos de dados caracteres são:


24

Tipo Descrição

caracter varying(n) comprimento variável com limite

varchar(n) comprimento variável com limite

character(n) comprimento fixo, completado com bracos

char(n) comprimento fixo, completado com bracos

text comprimento variável não limitado

Os tipo de dados data e hora são:

Tipo Descrição

Timestamp without Time Zone tanto data quanto hora

Timestamp with Time Zone tanto data quanto hora

Interval intervalos de tempo

Date somente datas

Time without Time Zone somente a hora do dia

Time with Time Zone somente a hora do dia

Os valores literais válidos para verdadeiro é:

‘t’, ‘true’, ‘y’, ‘yes’, ‘1’

Os valores literais válidos para falso é:

‘f’, ‘false’, ‘n’, ‘no’, ‘0’


25

Agora vou mostrar os tipos de dados no Sql Server.

Os tipos de dados numéricos inteiros são :

Tipo Faixa

tinyint 0 até 256

smallint –32.768 até 32.767

int -2.147.483.648 até 2.147.483.647

bigint -9223372036854775808 to 9223372036854775807

Os tipos de dados números fracionários são:

Tipo Faixa

decimal – 999999,99 até 999999,99

smallmoney -214.748,3648 até 214.748,3647

money -922.337.203.685.477,5808 até 922.337.203.685.477,5807

real -3.40E até 3.40E +38

float -1.79E + 308 até 1.79e +308

Os tipos de dados caracteres são:


26

Tipo Descrição

nvarchar(n) até 4000 carac., comprimento variável com limite

varchar(n) até 8000 carac., comprimento variável com limite

nchar(n) até 8000 carac., comprimento fixo, completado com brancos

char(n) até 8000 carac., comprimento fixo, completado com bracos

text até 2.147.483.647 caracteres

ntext até 1.073.741.323 caracteres

Os tipo de dados data e hora são:

Tipo Descrição

hora e data variando de 1/1/1900 até 6/6/2079, precisão de hora é até os


smalldatetime
segundos.

hora e data variando de 1/1/1753 até 31/12/9999, precisão de hora é até os


datetime
centésimos de segundos.

O tipo de dado booleano é:

Tipo Descrição

bit somente pode assumir os valores 0 ou 1.

*Disponível em https://www.devmedia.com.br/tipos-de-dados-no-postgresql-e-sql-server/23362
27

3 CONCLUSÃO

Com a globalização, os meios de comunicação são cada vez mais


sofisticados e a tecnologia muda a cada momento. Precisamos manipular dados e
transformá-los em informações precisas para tomar decisões sem erros, que fazem
gerar lucros e crescimento. Se não tiver como guardar essas informações para
formar estratégias, com certeza os objetivos não serão atingidos. O banco de dados
precisa dar o suporte às operações diárias da empresa, auxiliando o trabalho e
produzindo resultados. Esses dados, os tipos de dados, são classificados em
diferentes categorias e permitem N formatos.
Os tipos de dados definem os tipos de informação que podem ser inseridos
em um campo. Somente dados do mesmo tipo do campo poderão ser inseridos. Os
tipos suportados por um banco de dados podem variar de SGBD para SGBD, ou
seja, cada banco de dados pode adotar um modelo, mas normalmente são muito
parecidos.
O que se conclui na elaboração deste trabalho, é que de certa forma não
existe o melhor banco de dados para determinada linguagem, e sim existe o melhor
banco de dados para determinada aplicação, negócio e etc.
A experiência de realizar este trabalho aumentou consideravelmente o
conhecimento entre as formas de aplicação dos dados em diferentes SGBDs.
28

4 REFERÊNCIAS

THE POSTGRESQL GLOBAL DEVELOPMENT GROUP. . Relations


PostgreSQL. 2018. Disponível em: <https://www.postgresql.org/about/news/1712//>.
Acesso em: 01 mar. 2018.

ORACLE CORPORATION AND/OR ITS AFFILIATES. . MySQL


Documentation. 2018. Disponível em: <https://dev.mysql.com/doc/>. Acesso em: 28
fev. 2018.

TECHNET, Microsoft. Tipos de Dados. 2017. Disponível em:


<https://technet.microsoft.com/pt-br/library/ms172424(v=sql.110).aspx>. Acesso em:
27 jan. 2018.

MARTINS, Andressa Alves. Trabalhando com Tabelas e Tipos de Dados. 2014.


Disponível em: <https://estudandopara70433.wordpress.com/2011/05/17/lio-1-
trabalhando-com-tabelas-e-tipos-de-dados/>. Acesso em: 26 fev. 2018.

PEDERSEN, Alf A.. SQL Server Overview. 2014. Disponível em:


<http://www.databasedesign-resource.com/sql-server-overview.html>. Acesso em:
26 fev. 2018.

KAWAMOTO, Dawn. Ellison takes trip down memory lane at Oracle


OpenWorld. 2007. Disponível em: <https://www.cnet.com/news/ellison-takes-trip-
down-memory-lane-at-oracle-openworld/>. Acesso em: 01 mar. 2018.

CORPORATION, Oracle. Getting to Know Oracle 8: Release 2 (8.1.6). 1999.


Disponível em: <https://docs.oracle.com/cd/A87860_01/doc/server.817/a76962.pdf>.
Acesso em: 28 fev. 2018.

CAFETEIRA, Alexandre. Banco de dados Oracle - Tipos de dados. 2013.


Disponível em: <http://www.alexandre.technology/2013/08/banco-de-dados-oracle-
tipos-de-dados.html>. Acesso em: 02 fev. 2018.
29

CORPORATION, Oracle. Oracle MySQL: O Banco de Dados de Código Aberto


mais Popular. Disponível em: <https://www.oracle.com/br/mysql/index.html>. Acesso
em: 03 fev. 2018.

PASSOS, Tiago. Principais tipos de dados no MySQL. 2010. Disponível em:


<http://blog.tiagopassos.com/2010/04/07/principais-tipos-de-campos-no-mysql/>.
Acesso em: 01 fev. 2018.

ARAUJO, Professor Carlos. Tipos de dados no SQLite. 2010. Disponível em:


<http://professorcarlos.blogspot.com.br/2010/05/tipos-de-dado-no-sqlite.html>.
Acesso em: 01 fev. 2018.

HIPP, D. Richard. Datatypes In SQLite Version 3. Disponível em:


<https://www.sqlite.org/datatype3.html>. Acesso em: 01 fev. 2018.

ORG, Firebird Sql. DATA TYPES. Disponível em:


<https://www.firebirdsql.org/pdfmanual/html/migration-mssql-data-types.html>.
Acesso em: 28 fev. 2018.

MENDES, Edson; MEDIA, Dev. Tipos de dados no Postgresql e Sql


Server. Disponível em: <https://www.devmedia.com.br/tipos-de-dados-no-
postgresql-e-sql-server/23362>. Acesso em: 01 fev. 2018.