O tipo de dados que pode ser armazenado em uma coluna em uma tabela Oracle é determinado pelo tipo de dados
Você especifica ao criar ou alterar o esquema da tabela. A declaração do tipo de dados determina o tipo de valores permitidos nessa coluna e o Oracle aplica essa restrição.
Aqui está um colapso dos principais fatores:
*
Declaração do tipo de dados: O determinante primário é o `data_type` escolhido durante a criação da tabela (usando` CREATE TABLE`) ou modificação (usando `alter tabela`). Por exemplo:
`` `SQL
Criar funcionários da tabela (
Número de Funcionário_id (6), - Número com Precisão 6
First_Name Varchar2 (20),-String de caracteres de comprimento de variável até 20 caracteres
last_name varchar2 (25) restrição nn_last_name não nulo,-string de caracteres de comprimento variável, não nulo
Email Varchar2 (25),
Hire_date Data, - data e hora
Número do salário (8,2), - Número com precisão 8, 2 casas decimais
...
);
`` `
Neste exemplo, `funcionário_id` só pode conter números,` FIRST_NAME` e `last_name` pode conter as seqüências de caracteres de comprimento de variável,` hire_date` pode conter datas e 'salário` pode manter números com lugares decimais.
*
Tipos de dados internos da Oracle: O Oracle fornece um rico conjunto de tipos de dados internos que atendem a várias necessidades de armazenamento de dados. Alguns dos mais comuns incluem:
*
Tipos de dados de caracteres: * `Varchar2 (tamanho)`:string de caractere de comprimento variável (tipo de caractere recomendado pela Oracle). `size` especifica o comprimento máximo em bytes ou caracteres (dependendo do conjunto de caracteres do banco de dados). Use isso para dados gerais de texto.
* `Nvarchar2 (tamanho)`:string de caracteres nacionais de comprimento variável. Usado para armazenar dados Unicode. `size` especifica o comprimento máximo nos caracteres.
* `Char (tamanho)`:string de caractere de comprimento fixo. Almofadas com espaços para o 'tamanho` especificado. Menos comumente usado que `varchar2`.
* `Nchar (tamanho)`:cordas nacionais de comprimento fixo.
* `Clob`:personagem grande objeto. Para armazenar grandes quantidades de dados de texto (até 4 GB). Armazra os dados reais separadamente, usando um localizador na tabela.
* `Nclob`:caráter nacional grande objeto. CLOB para dados unicode.
*
Tipos de dados numéricos: * `Número (precisão, escala)`:Tipo de dados numéricos de uso geral. `Precision` é o número total de dígitos e` escala` é o número de dígitos à direita do ponto decimal.
* `Number`:Padrões de precisão e escala máxima.
* `Binário_float`:número de ponto flutuante de 32 bits.
* `Binário_double`:número de ponto flutuante de 64 bits.
*
Tipos de dados de data e hora: * `Date`:informações de data e hora das lojas.
* `Timestamp`:lojas Data e hora com segundos fracionários. Existem variantes para o suporte do fuso horário (por exemplo, `Timestamp com fuso horário`,` Timestamp com fuso horário local ').
* `Intervalo ano a mês ':armazena um período de tempo em anos e meses.
* `Intervalo dia a segundo`:armazena um período de tempo em dias, horas, minutos e segundos.
*
Tipos de dados binários: * `BLOB`:objeto grande binário. Para armazenar grandes quantidades de dados binários (até 4 GB), como imagens, áudio ou vídeo. Armazra os dados reais separadamente, usando um localizador na tabela.
* `Bfile`:arquivo binário. Armazra um ponteiro em um arquivo binário armazenado * fora * do banco de dados (no sistema de arquivos do sistema operacional). O banco de dados armazena apenas a localização do arquivo, não o próprio conteúdo do arquivo.
*
ROWID Tipos de dados: * `Rowid`:uma pseudo-coluna que contém o endereço de uma linha em uma tabela. É único no banco de dados e permite o acesso mais rápido a uma linha específica.
* `Urowid`:um ID da linha universal, que pode representar Rowids de tabelas organizadas indexadas.
*
XML Tipo de dados: * `Xmltype`:para armazenar dados XML. O Oracle fornece métodos para consultar e manipular o XML armazenado nesse tipo de dados.
*
JSON Data Type: * `Json`:para armazenar dados JSON. Disponível em versões posteriores do Oracle.
*
Precisão e escala (para número): Ao usar o tipo de dados `número`, os parâmetros` precision` e `escala` são cruciais.
* `Precision`:especifica o número total de dígitos (incluindo antes e depois do ponto decimal).
* `escala`:especifica o número de dígitos à direita do ponto decimal.
Por exemplo, `número (7,2)` permite armazenar números com um máximo de 7 dígitos, com 2 desses dígitos sendo após o ponto decimal. Os valores válidos seriam 12345.67, 123,45 ou 0,01. Os valores inválidos seriam 123456.7 ou 1.234567.
*
conjunto de caracteres de banco de dados: O conjunto de caracteres do banco de dados influencia o armazenamento dos tipos de dados de caracteres (especialmente `varchar2` e` char`). Ele determina o comprimento máximo de uma coluna `varchar2` em termos de *bytes *ou *caracteres *. Nas versões mais antigas, `varchar2 (tamanho)` foi interpretado como bytes. Versões mais recentes do Oracle, com o parâmetro `max_string_size =estendido`, permita que` varchar2 (size) `seja interpretado como caracteres. O uso de conjuntos de caracteres Unicode (como o AL32utf8) permite armazenar caracteres de vários idiomas.
*
Restrições: Embora as restrições não * defina * o tipo de dados, elas podem restringir ainda mais os valores permitidos em uma coluna. Por exemplo:
* `Não null`:garante que uma coluna não possa conter valores nulos.
* `Exclusivo`:garante que todos os valores em uma coluna (ou conjunto de colunas) sejam únicos.
* `Chave primária ':identifica uma coluna (ou conjunto de colunas) como o identificador exclusivo para cada linha da tabela.
* `Chave estrangeira ':estabelece uma relação entre duas tabelas, garantindo que os valores nas colunas (s) (s) (s) (s) (s) (s) (s) (s)
* `Check`:permite definir uma regra personalizada que os valores em uma coluna devem satisfazer. Por exemplo:`Verifique (salário> 0)` Para garantir que os salários sejam sempre positivos.
*
Tipo de dados implícito Conversão: Às vezes, o Oracle pode converter implicitamente tipos de dados durante comparações ou tarefas. Por exemplo, o Oracle pode converter implicitamente uma sequência de caracteres em um número se você estiver comparando -a com uma coluna numérica. No entanto, geralmente é prática melhor usar funções de conversão de tipo de dados explícitas (como 'to_number`, `to_char`,` to_date`) para evitar comportamentos inesperados e garantir a integridade dos dados.
Em resumo, o tipo de dados declarado para uma coluna é o mecanismo de controle fundamental que governa o tipo de dados que você pode armazenar nessa coluna em um banco de dados Oracle. Compreender os tipos de dados da Oracle e suas propriedades é essencial para projetar esquemas de banco de dados eficientes e confiáveis.