Nomes de Banco de dados, Tabela, Índice, Coluna e Alias


Nomes de banco de dados, tabela, índice, coluna e apelidos seguem todos as mesmas regras no MariaDB.

Note que as regras foram alteradas desde o MariaDB v3.23.6, quando introduzimos aspas em identificadores (nomes banco de dados, tabela e coluna) com '`'. ''' funcionará também para citar identificadores se você executar no modo ANSI. Leia "Executando o MariaDB no modo ANSI".

Identificador Tamanho máximo (bytes) Caracteres permitidos
Banco de dados 64 Qualquer caractere que é permitido em um nome de diretório exceto '/' ou '.'.
Tabela 64 Qualquer caractere permitido em um nome de arquivo, exceto '/' ou '.'.
Coluna 64 Todos os caracteres.
Alias 255 Todos os caracteres.

Note que em adição ao mostrado acima, você não pode ter ASCII(0) ou ASCII(255) ou o caracter de citação (aspas) em um identificador.

Se o identificador é uma palavra restrita ou contêm caracteres especiais você deve sempre colocá-lo entre ` ao usá-lo:

mysql> SELECT * FROM `select` WHERE `select`.id > 100;

See "Tratamento de Palavras Reservadas no MySQL".

Se você estiver executando o MariaDB no modo MAXDB ou ANSI_QUOTES, ele também pode citar identificadores com aspas duplas:

mysql> CREATE TABLE 'test' (col INT);
ERROR 1064: You have an error in your SQL syntax. (...)
mysql> SET SQL_MODE='ANSI_QUOTES';
mysql> CREATE TABLE 'test' (col INT);
Query OK, 0 rows affected (0.00 sec)

See "Opções de Linha de Comando do mysqld".

Em versões do MariaDB anteriores a 3.23.6, as regras se nomes eram as seguintes:

É recomendado que você não utilize nomes como 1e, porque uma expressão como 1e+1 é ambígua. Ela pode ser interpretada como a expressão 1e + 1 ou como o número 1e+1.

No MariaDB você pode se referir a uma coluna utilizando uma das formas seguintes:

Coluna de referência Significado
nome_campo Coluna nome_campo de qualquer tabela usada na consulta contendo uma coluna com aquele nome.
nome_tabela.nome_campo Coluna nome_campo da tabela nome_tabela do banco de dados atual.
nome_bd.nome_tabela.nome_campo Coluna nome_campo da tabela nome_tabela do banco de dados nome_bd. Esta forma é disponível no MariaDB Versão 3.22 ou posterior.
`nome_coluna` Uma coluna que é uma palavra chave ou contem caracteres especiais.

Você não precisa especificar um prefixo de nome_tabela ou nome_bd.nome_tabela para uma referência de coluna em uma instrução, a menos que a referência seja ambígua. Por exemplo, suponha que cada tabela t1 e t2 contenham uma coluna c, e você deve recuperar c em uma instrução SELECT que utiliza ambas tabelas t1 e t2. Neste caso, c é ambíguo porque ele não é único entre as tabelas usadas na instrução, portanto deve ser indicado qual é a tabela que se deseja escrever, t1.c ou t2.c. De mesma forma, se você for recuperar de uma tabela t em um banco de dados db1 e uma tabela t em um banco de dados db2, você deve se refererir às colunas nestas tabelas como db1.t.nome_campo e db2.t.nome_campo.

A sintaxe .nome_tabela indica a tabela nome_tabela no banco de dados atual. Esta sintaxe é aceitada para compatibilidade ODBC, porque alguns programas ODBC prefixam os nomes das tabelas com um caracter '.'.

Retornar