Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Ao projetar bancos de dados, qual é a maneira preferida de armazenar vários valores verdadeiros/falsos?


Em SQL Server , existe BIT tipo de dados. Você pode armazenar 0 ou 1 lá, comparar os valores, mas não executar MIN ou MAX .

Em Oracle , basta usar NUMBER ou CHAR(1) .

Em MySQL e PostgreSQL qualquer tipo de dados é implicitamente conversível para BOOLEAN .

Ambos os sistemas suportam BOOLEAN tipo de dados que você pode usar como está, sem os operadores, no WHERE ou ON cláusulas:
SELECT  *
FROM    mytable
WHERE   col1

, o que é impossível no SQL Server e Oracle (você precisa ter algum tipo ou um predicado lá).

Em MySQL , BOOLEAN é um sinônimo para TINYINT(1) .

Em PostgreSQL também (em termos de armazenamento), mas logicamente, não é implicitamente conversível para nenhum outro tipo.