mysql data types what are different data types mysql
Aprenda sobre os diferentes tipos de dados MySQL, ou seja, numérico, string, tipo de dados de data, JSON, booleano, etc. com exemplos:
Neste tutorial, aprenderemos sobre os diferentes tipos de dados que são suportados pelo MySQL. Os tipos de dados são especificados em cada coluna quando uma tabela é criada e também durante a atualização / alteração da tabela para adicionar uma nova coluna à tabela existente
Aprenderemos sobre os tipos de dados em três categorias diferentes, ou seja, tipo de dados numérico, tipos de dados String e tipos de dados Datetime.
O que você aprenderá:
Tipos de dados MySQL
Pré-requisitos
Estaremos aprendendo todos os tipos de dados com exemplos de trabalho em MySQL. Portanto, é recomendado ter o MySQL instalado para executar as consultas junto com os detalhes para uma melhor compreensão do conceito.
Além disso, você pode criar um banco de dados de amostra denominado sql_data_types que conteria todas as tabelas que usaríamos para exemplos.
create database sql_data_types; use sql_data_types;
Tipos de dados numéricos
Os tipos de dados numéricos podem ser divididos em 3 tipos:
- Tipos de dados inteiros
- Tipos de pontos fixos
- Tipos de ponto flutuante
Vamos discutir cada um deles:
Tipos de dados inteiros
Esses tipos de dados suportam números inteiros sem qualquer representação decimal. Existem vários subtipos como - INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT
INT:
Sintaxe:
INT((width)) (UNSIGNED) (ZEROFILL)
Fatos:
Descrição | Faixa | Memória | Opções |
---|---|---|---|
MEDIUMBLOB | 0-16.777.215 (16 MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
Tipo numérico mais comumente usado. Armazena números inteiros DEFAULT - valores sem sinal | –2.147.483.648 a 2.147.483.647 | 4 bytes | Se usado com a opção UNSIGNED - o intervalo muda para 0 a 4.294.967.295 A opção de largura pode ser usada com ZEROFILL para preencher as entradas com zero para valores menores que a largura |
Exemplos:
Vamos criar uma tabela com 1 coluna tendo tipo de dados INT e opções diferentes.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
Saída do comando SELECT:
CREATE TABLE numbers_int_options(int_col_with_options INT(4) ZEROFILL ); INSERT into numbers_int_options values(1),(123),(1234),(12345); select * from numbers_int_options;
Resultado do comando acima:
Outras variações de INT:
Existem várias opções disponíveis para INT, dependendo dos requisitos específicos. Normalmente, eles são usados quando a memória ou o espaço são uma preocupação, mas para todos os fins práticos, INT é o mais amplamente usado.
As diferentes variações do tipo de dados INT que estão disponíveis estão listadas abaixo:
Tipo de dados | Faixa | Exemplo | Memória / Bytes usados |
---|---|---|---|
TINYINT | -128 - 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | 1 |
SMALLINT | -32768 - 32767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | dois |
MEDIUMINT | -8388608 - 8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 3 |
BIGINT | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
Tipos de ponto flutuante
Tipos de ponto flutuante são tipos de valor aproximados e isso depende do no. da precisão do ponto decimal especificado durante a declaração do tipo de coluna.
Existem 2 tipos de tipos de dados de ponto flutuante: FLOAT e DOUBLE que suportam diferentes intervalos e consomem memória / armazenamento.
FLUTUANTE E DUPLO
De acordo com a nova sintaxe recomendada - a precisão FLOAT e DOUBLE podem ser especificadas usando apenas tipos de dados FLOAT.
Sintaxe:
FLOAT(p)
Aqui, p -> precisão
Fatos:
Descrição | Memória | Opções | Exemplos |
---|---|---|---|
FLOAT / DOUBLE representa números de ponto flutuante com valores aproximados Ou seja quando o MySQL armazena esses valores, esses valores são aproximados para a precisão mais próxima de acordo com o tipo declarado. A precisão entre 0-23 representa o tipo FLOAT, enquanto 24 a 53 geraria um tipo duplo consumindo 8 bytes | -Precisão - 0-23 => 4 bytes -Precisão -24-53 => 8 bytes | - Os números dos pontos flutuantes podem ser ASSINADOS, bem como NÃO ASSINADOS -FLOAT é geralmente preciso até 7 casas decimais, enquanto DOUBLE é preciso até 14 casas decimais -Há também outra forma não padronizada de declarar FLOAT e DOUBLE com a especificação de pontos de precisão FLOAT (n, d) - onde n é o total de dígitos ed é o número de casas decimais | -Crie tabela com uma coluna tipo de dados DOUBLE CREATE TABLE numbers_double (double_col FLOAT (30)); -Crie a tabela com uma coluna tipo de dados DOUBLE e dígitos de precisão de 5 CREATE TABLE numbers_double (double_col DOUBLE (20,5)); |
Vejamos alguns exemplos de recuperação de valores de tipos duplos:
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
Saída da instrução SELECT:
Podemos ver aqui que os valores são armazenados em até 5 casas decimais conforme especificado durante a declaração do tipo de dados.
Tipos de pontos fixos
Esses tipos de dados são usados para armazenar um valor exato com precisão determinada. Esses tipos de dados são geralmente usados quando o armazenamento de precisão exata é necessário. Por exemplo, contas bancárias é um requisito manter saldos com 2 casas decimais, precisamos que os dados sejam armazenados com precisão exata.
DECIMAL / NUMÉRICO
Sintaxe:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
Fatos:
Descrição | Faixa | Memória | Opções |
---|---|---|---|
DECIMAL é um tipo de dado numérico no MySQL e armazena valores exatos com a precisão especificada. A escala ou largura padrão para o tipo de dados DECIMAL é de 10 e 0 de precisão. Observe que os tipos de DECIMAL e NUMERIC podem ser usados alternadamente. | Depende do intervalo especificado Por exemplo DECIMAL (5,2) teria um intervalo de -999,99 a 999,99 | Formato binário dos usuários do MySQL para armazenar o tipo de dados DECIMAL - Requer quatro bytes para cada 9 dígitos - Então por exemplo, se tivermos DECIMAL (14,2) - exigiria um total de - 9 (4) + 2 (1) => 7 bytes | - O valor máximo da largura pode ser 265 - O número de decimais é opcional e o valor padrão é 0 |
Exemplo:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
Tipos de dados DateTime
Os tipos de dados DateTime no MySQL, como o nome sugere, são usados para armazenar valores de data e hora no banco de dados MySQL.
Existem 2 tipos temporais suportados pelo MySQL - DATETIME e TIMESTAMP
Vamos discutir ambos nas seções abaixo.
DATA HORA
Sintaxe:
DATETIME(n)
Aqui, n -> precisão / parte fracionária da parte dos segundos (a precisão máxima suportada é 6).
Fatos:
Descrição | Faixa | Memória | Exemplos |
---|---|---|---|
Usado para armazenar data e hora na coluna MySQL Quando questionado, os dados da coluna exibem data e hora no formato abaixo: AAAA-MM-DD HH: MM: SS | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 | 5 bytes Quando uma parte fracionária é incluída, para cada 2 dígitos fracionários, um byte extra é consumido. | CREATE table datetime_example(date_col DATETIME); // RESULTADO date_col 2020-08-08 22:22:53 |
TIMESTAMP
Sintaxe:
TIMESTAMP(n)
Aqui, n -> precisão / parte fracionária da parte dos segundos (a precisão máxima suportada é 6)
Fatos:
Descrição | Faixa | Memória | Exemplos |
---|---|---|---|
Outro tipo de dados temporais usado para armazenar data e hora. Isso armazena data e hora como UTC também com um intervalo limitado entre 1970 e 2038 | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 4 bytes | CREATE table timestamp_example(ts_col TIMESTAMP); RESULTADO ts_col 2020-08-08 22:19:11 |
Tipos de dados de string
Os tipos de dados de string, como o nome sugere, são usados para armazenar strings / textos ou blobs de informações textuais no banco de dados. Dependendo do caso de uso, existem diferentes tipos de dados disponíveis -CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET & BLOB
Vamos entender cada um desses diferentes tipos de dados com exemplos.
CHAR E VARCHAR
Ambos os tipos são usados para armazenar valores String nas colunas do MySQL, mas eles diferem em como os valores são armazenados e recuperados.
CHAR e VARCHAR são declarados com comprimento, que indica o comprimento máximo da String que você deseja armazenar na coluna.
Sintaxe:
CHAR(n) VARCHAR(n)
Aqui, n -> max no. de caracteres a serem armazenados pela coluna
Fatos:
Modelo | Descrição | Faixa | Exemplos |
---|---|---|---|
CARACTERES Sintaxe - CHAR (n) | CHAR pode armazenar String de comprimento ‘n’ conforme definido durante a declaração. Se a string tiver menos de n caracteres, ela será preenchida com espaços. | O comprimento do tipo de dados CHAR pode variar de 0 a 255 Dependendo do comprimento, o consumo de memória varia de 0 a 255 bytes. | CREATE TABLE string_example(char_col CHAR(50)); |
VARCHAR Sintaxe - VARCHAR (n) | VARCHAR permite que você armazene Strings de comprimento variável e consuma memória em relação ao tamanho real da String armazenada em vez do valor máximo que é especificado durante a definição da coluna. | O comprimento do tipo de dados VARCHAR pode variar de 0 a 65535 Dependendo do comprimento, o consumo de memória varia de 0 a 65535 bytes. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
BINÁRIO E VARBINÁRIO
Semelhante a CHAR e VARCHAR - esses tipos de dados armazenam Strings, mas em formato Binário.
O comprimento dos tipos de dados BINARY e VARBINARY é medido em bytes, em oposição ao número de caracteres nos tipos de dados CHAR e VARCHAR.
Sintaxe:
BINARY(n) VARBINARY(n)
Aqui, n -> max no. de bytes a serem armazenados pela coluna.
Fatos:
Modelo | Descrição | Faixa | Exemplos |
---|---|---|---|
BINÁRIO Sintaxe - BINARY (n) | BINARY pode armazenar ‘n’ bytes binários. Para valores menores que n, eles são preenchidos à direita com 0 byte e armazenados | O comprimento do tipo de dados BINÁRIO pode variar de 0 a 255 Dependendo do comprimento, o consumo de memória varia de 0 a 255 bytes. | CREATE TABLE binary_string(binary_col BINARY(50)); |
VARBINÁRIO Sintaxe - VARBINARY (n) | VARBINARY permite que você armazene Strings binários de comprimento variável até ‘n comprimento (conforme especificado na definição da coluna) | O comprimento do tipo de dados VARBINARY pode variar de 0 a 65535 Dependendo do comprimento, o consumo de memória varia de 0 a 65535 bytes. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
Vamos entender o tipo de dados BINARY em mais detalhes. Vamos criar uma tabela com uma coluna de cada tipo de dados binary e varbinary e inspecionar o conteúdo.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
Agora vimos a saída como BLOB, o que significa - B inário eu mau OB ject - e estes nada mais são do que representação binária / hexadecimal dos valores String que inserimos nas colunas.
Agora vamos inspecionar os valores dessas strings binárias e ver como eles são armazenados.
Primeiro, vamos ver o valor presente em ‘binary_col’, que é do tipo de dados BINÁRIO.
Vamos entender quais são os valores que estão sendo armazenados - Se você observar os valores nas 5 primeiras entradas - ou seja, a primeira linha e as 5 primeiras colunas (0-4)
Estas são apenas as representações HEX para os caracteres da String ‘olá’ que armazenamos.
Agora, uma vez que é um tipo de dados BINÁRIO de comprimento 50, podemos ver que o restante dos bytes são preenchidos com valores '00', que nada mais é do que representação de byte para o dígito '0'.
Veja o valor presente em ‘varbinary_col’, que é do tipo de dados VARBINARY.
Aqui, para VARBINARY, você pode ver que os valores são preenchidos apenas para um comprimento de 5, que é equivalente ao comprimento da String de armazenamos. Não há preenchimento de Zero, embora tenhamos declarado uma coluna VARBINARY de comprimento 50.
BLOB E TEXTO
Os tipos de dados BLOB e TEXT são semelhantes aos tipos de dados BINARY e CHAR, com a distinção de que eles podem suportar tamanhos maiores em comparação com suas contrapartes básicas.
É importante notar que o BLOB armazena dados como Strings Binárias, enquanto o tipo de dados TEXT armazena como Strings não binários. Além disso, todos esses tipos de dados não requerem a especificação do comprimento ao mencionar o tipo de dados. Eles são inerentemente de comprimento variável por natureza e consomem memória apenas com relação à que é armazenada como o valor real da coluna.
Os tipos de dados BLOB são geralmente usados para armazenar arquivos como imagens, documentos PDF, etc. como cadeias binárias de forma segura e eficiente.
Detalhes sobre as diferentes variantes dos tipos de dados BLOB e TEXT são listados abaixo:
Modelo | Faixa | Descrição | Exemplos |
---|---|---|---|
TINYTEXT | 0-255 (255 bytes) | O intervalo é o mesmo que VARCHAR - usado para armazenar pequenas informações como títulos, nomes de autores, etc. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
TEXTO | 0-65535 (64 KB) | Este tipo de dados é suficiente para armazenar texto para um artigo de pequeno a médio porte. | CREATE TABLE text_example(text_col TEXT); |
MEDIUMTEXT | 0-16.777.215 (16 MB) | Este tipo de dados pode ser suficiente para armazenar texto para um livro inteiro | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
LONGTEXT | 0 - 4.294.967.295 (4GB) | LONGTEXT raramente é usado especificamente nos casos em que MEDIUMTEXT não é suficiente. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
TINYBLOB | 0-255 (255 bytes) | Todos os tipos de dados BLOB são usados para armazenar strings binárias e geralmente são preferidos para armazenar arquivos como imagens, documentos PDF ou pequenos aplicativos em si. Dependendo dos requisitos de tamanho, os diferentes tipos de dados BLOB podem ser escolhidos e usados. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
BLOB | 0-65535 (64 KB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 - 4.294.967.295 (4GB) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
ENUM
ENUM é um tipo de dados String que pré-define os valores permitidos que uma coluna pode ter. É semelhante aos tipos de dados ENUM que existem em diferentes linguagens de programação como JAVA, C #, etc.
Os valores ENUM, quando armazenados, são convertidos em números em relação a cada valor da coluna, o que resulta em uma economia considerável de memória para tabelas com um grande número de registros, ou seja, suponha que temos um ENUM com valores - valor1, valor2 e valor3, então o armazenamento real da memória seria numérico índices 1,2,3 nos bastidores.
Sintaxe:
ENUM({comma separated enum values})
Consultas de exemplo:
Crie uma tabela com 2 colunas para armazenar modelos móveis como String e nomes de empresas como tipos de dados ENUM com valores - APPLE, SAMSUNG e NOKIA. Vejamos também as consultas para buscar dados em um determinado valor ENUM.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA')); INSERT INTO mobile_details values ('IPHONE X', 'APPLE'),('GALAXY M1', 'SAMSUNG'), ('GALAXY M2', 1) ;
Na consulta acima, você pode ver que usamos nomes Enum, bem como índices numéricos, durante a inserção.
Vamos tentar consultar todos os dispositivos móveis com a marca ‘SAMSUNG’, bem como consultar o índice numérico de SAMSUNG, que é ‘1’.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
O resultado de ambas as consultas acima será o mesmo mencionado abaixo:
DEFINIR
O tipo de dados MySQL SET é um objeto String que pode ter um ou mais de um valor de um intervalo permitido, conforme descrito durante a definição da coluna. É semelhante a ENUM, mas permite que vários valores da lista definida sejam associados como valores de coluna.
Além disso, os tipos de dados SET são armazenados como índices numéricos começando 2 ^ 0 - ou seja, 1,2,4,8 etc.
Sintaxe:
SET({comma separated list of allowed values})
Exemplo:
Vamos tentar entender o tipo de dados SET com exemplos. Criaremos uma tabela chamada mobile_details com um modelo de coluna do tipo String e uma coluna chamada de sistema operacional compatível, que é um tipo de dado definido e contém uma lista de versões de sistema operacional com suporte.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
Podemos ver que listamos os valores do sistema operacional como parte de uma coluna com tipo de dados SET. Os valores DECIMAIS correspondentes que são atribuídos a estes são listados abaixo:
Agora, se quisermos atribuir o valor SET, por exemplo, ‘Android8, android9’ para uma linha, podemos simplesmente atribuir a adição dos valores decimais atribuídos, ou seja, 12 para ter o mesmo efeito.
Consulte a consulta INSERT acima para atribuição de linha com o nome do modelo ‘GALAXYM1’
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
Resultado do comando acima:
Também podemos consultar a coluna SET em relação à sua representação decimal - suponha que queiramos consultar 'ios9, ios10' - a soma da representação decimal é 3, então podemos consultar como:
SELECT * from mobile_details where supported_os=3
Resultado:
Tipos de dados especiais
BOLEANO
O tipo de dados Booleano MySQL armazena um valor de coluna como TRUE ou FALSE. Este tipo de dados é geralmente adequado para armazenar valores de sinalizadores nas tabelas MySQL. Por exemplo - Uma tabela de conta bancária com uma coluna chamada is_savings_account pode armazenar true ou false.
O valor BOOLEAN é armazenado no MySQL como 1 ou 0 para TRUE e FALSE, respectivamente.
Sintaxe:
columnName BOOLEAN
Exemplo:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
Ao inserir ou recuperar valores para o tipo de dados BOOLEANO, podemos usar TRUE ou FALSE ou suas representações numéricas - ou seja, 1 ou 0.
select * from account_details where is_savings=1;
Resultado do comando acima:
JSON
MySQL oferece suporte a JSON nativo como um tipo de dados para objetos em notação JSON. Ele torna o armazenamento, a consulta e a recuperação fáceis para documentos do tipo JSON, em vez de armazenar como strings de texto ou Blobs binários.
Sintaxe:
columnName JSON
Fatos:
Definição | Faixa | Exemplos |
---|---|---|
O tipo de dados JSON é usado para armazenar documentos que estão no formato JSON. Qualquer coluna definida como JSON geraria um erro se um JSON inválido fosse armazenado por uma consulta INSERT. | O intervalo ou tamanho do tipo de dados JSON é semelhante a LONGTEXT ou LONGBLOB | CREATE TABLE json_example(json_col JSON); |
Exemplo:
O MySQL fornece funções diferentes para consultar dados JSON. Vamos tentar inserir o JSON abaixo e então veremos as funções do MySQL para consultar.
{ 'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson', } } { 'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johson', } }
Vamos ver os comandos para criar a tabela e inserir os dados JSON.
create table json_example(json_col JSON); insert into json_example values( '{'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson' }}'); insert into json_example values( '{'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johnson' }}');
Consulte a tabela e imprima o nome e os campos de e-mail dos dados JSON armazenados nas linhas da tabela.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
Resultado:
perguntas frequentes
P # 1) Como podemos alterar o tipo de dados para uma coluna MySQL uma vez atribuída?
Responda: O tipo de dados da coluna pode ser alterado usando Comando ALTER TABLE .
Considere uma tabela student_info com 2 colunas nome e idade dos tipos VARCHAR e INT respectivamente. Isso pode ser feito usando o seguinte comando CREATE TABLE:
CREATE TABLE student_info(name CHAR(20), age INT);
Existem algumas variações neste comando
como executar um arquivo swf no cromo
- Se quisermos mudar apenas o tipo de dados da coluna - Podemos usar o comando MODIFY junto com ALTER
Na tabela acima, suponha que queremos alterar o tipo de dados da coluna de idade, podemos usar o seguinte comando
ALTER TABLE student_info MODIFY age TINYINT
- Se quisermos mudar o nome da coluna, bem como o tipo de dados da coluna - Podemos usar o comando CHANGE junto com ALTER
Na tabela acima, suponha que desejamos alterar o nome da coluna de ‘nome’ para ‘sname’ e o tipo de dados de CHAR para VARCHAR (50), podemos usar o seguinte comando:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
Q # 2) Qual é o tipo de dados para uma imagem no mysql?
Responda: Para armazenar qualquer um dos tipos de arquivo no MySQL, como imagens, pdf etc. BLOB ou tipo de dados binários é o tipo mais adequado. Existem diferentes variantes de tipo de dados BLOB disponíveis, dependendo do tamanho do arquivo de destino que desejamos armazenar. Podemos usar variantes de BLOB como - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
P # 3) Qual tipo de dados é mais adequado para armazenar documentos no mysql?
Responda: Semelhante ao BLOB para imagens ou arquivos PDF, para armazenar documentos / artigos de texto, o tipo de dados TEXT pode ser usado. Esta é uma extensão do tipo de dados CHAR com suporte para armazenamento extra de caracteres.
As diferentes variantes de tipo de dados TEXT que estão disponíveis são - TEXTO, TINYTEXT, MEDIUMTEXT E LONGTEXT
P # 4) Qual é o tipo de dados para moeda no MySQL?
Responda: Para armazenar dados para valores monetários, o tipo de dados mais adequado é DECIMAL. É usado para armazenar tipos de dados com precisão exata. Por exemplo, um nome de coluna com o tipo DECIMAL (4,2) armazenaria valores no intervalo de -99,99 a 99,99 e retornaria o valor com a mesma precisão na recuperação, ao contrário. aproximação para números de ponto flutuante.
Q # 5) O que acontece se alguém tentar inserir números negativos para colunas inteiras UNSIGNED?
Responda: O MySQL gera um erro para tais instruções de inserção
Vamos tentar criar uma tabela com uma coluna INT com a opção UNSIGNED.
CREATE TABLE int_unsigned(age INT UNSIGNED); INSERT into int_unsigned values(-350);
Error Code: 1264. Out of range value for column 'int_col_with_options' at row 1
P # 6) Como obter dados de data atuais no mysql?
Responda: O MySQL oferece 2 funções de data e hora incorporadas para buscar valores atuais
A função CURDATE () retorna a data atual
SELECT CURDATE();
Resultado
2020-08-10
A função NOW () retorna a data atual com carimbo de data / hora.
SELECT NOW();
Resultado
2020-08-10 00:42:54
P # 7) Fora de CHAR e VARCHAR - qual é o mais adequado?
Responda: VARCHAR significa caractere variável e tem uma vantagem importante de consumir menos memória em comparação com CHAR de mesmo comprimento. Por exemplo, Uma coluna com VARCHAR (50) se armazena strings de comprimento 20 resultaria no consumo de apenas 20 bytes em oposição a um tipo de dados declarado com CHAR (50)
Q # 8) Como atualizar o valor ENUM no MySQL?
Responda: Para atualizar uma coluna ENUM no MySQL, você precisará modificar a menção dos valores da coluna existente para que as entradas existentes permaneçam intactas.
Vamos tentar entender isso com um exemplo.
Suponha que temos uma tabela chamada mobile_details tendo um campo de modelo como String (VARCHAR) e uma coluna de marca como ENUM tendo valores iniciais como ‘APPLE’, SAMSUNG ’e‘ NOKIA ’
Agora, suponha que desejemos adicionar outro nome de marca ‘MOTOROLA’ ao enum existente. Vamos ver as consultas que precisaríamos executar.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
Uma vez criado, você pode obter os detalhes dos valores originais ENUM usando o comando DESCRIBE
DESCRIBE mobile_details;
Agora vamos executar o comando para atualizar o ENUM
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
Podemos executar novamente o comando DESCRIBE para ver se as atualizações foram aplicadas com sucesso.
DESCRIBE mobile_details
Aqui está a saída do comando acima:
Conclusão
Neste tutorial, aprendemos sobre os diferentes tipos de dados que são suportados pelo MySQL.
Aprendemos sobre os tipos de dados de tempo numérico, flutuante, string e data junto com sintaxe e exemplos diferentes.
Os tipos de dados MySQL são os blocos de construção básicos para começar e um dos aspectos mais cruciais durante o design do esquema MySQL.
Leitura recomendada
- Tipos de dados C ++
- Tipos de dados Python
- Tipos de dados e variáveis C # com exemplos
- Tipos, variáveis, constantes e literais de dados PL SQL
- Tipos de dados de array - int Array, array duplo, Array of Strings etc.
- Instrução de exclusão do MySQL - sintaxe de comando de exclusão e exemplos
- MySQL Insert Into Table - sintaxe e exemplos de instruções de inserção
- Tutorial do MySQL JOIN: interno, externo, cruzado, esquerdo, direito e próprio