Índice
1. Sintaxe do tipo de enumeração e coleção
2. Pesquise por tipos de enumeração e coleção
1. tipo minúsculo
Tomamos o tipo tinyint como exemplo para introduzir os tipos da série int.
1) Vamos construir uma tabela simples primeiro:
create table if not exists t1(
num tinyint
);
2) Então observamos diretamente Sanlian para verificar esta tabela:
As ações incluem:
desc t1;
show tables;
show create table t1;
3) Em seguida é a operação de inserção:
A faixa de valores do tinyint é -128 ~ 127, vamos tentar inserir alguns valores agora:
insert into t1 values (-128);
insert into t1 values (127);
insert into t1 values (0);
insert into t1 values (1);
insert into t1 values (-1);
Então vamos ver os dados que acabamos de inserir:
select * from t1;
E se inserirmos um valor incorreto:
O MySQL relatará diretamente um erro e nos impedirá de inserir.
Em seguida, criamos outra tabela e criamos um tipo não assinado:
create table if not exists t1(
num tinyint unsigned
);
Seu intervalo de dados é 0 ~ 255.
Portanto, se inserirmos um número negativo, ele definitivamente reportará um erro:
2. tipo de bit
1) As regras antigas, ou começam pela tabela:
create table if not exists t3(
id int,
online bit(1)
);
2) Veja a tabela:
3) Insira os dados:
insert into t3 (id, online) values (123, 1);
insert into t3 (id, online) values (123, 2);
Um erro é relatado quando 2 é inserido, porque ele suporta apenas um bit:
Podemos modificar seu valor:
alter table t3 modify online bit(10);
Podemos ver que a modificação foi bem-sucedida aqui:
Se não incluirmos o tamanho do bit quando construirmos a tabela, o padrão será 1.
3. Tipo decimal
1. tipo flutuante
1) Como de costume, comece aprendendo com a criação da tabela:
create table if not exists t5(
id int,
salary float(4, 2)
);
2) Observe a tabela:
3) Tente inserir dados:
insert into t5 (id, salary) values (1, 99.99);
insert into t5 (id, salary) values (1, 199.99);
Entre parênteses do tipo float, o primeiro é o seu número de dígitos, escolhemos 4 então o máximo são 4 dígitos,
A segunda é a precisão dele, escolhemos 2 então a casa decimal dele é no máximo 2.
Deve-se observar aqui que, como a precisão requer dois dígitos, a parte inteira pode ter apenas dois dígitos.
Existe outro fenômeno mágico aqui, ou seja, a parte de precisão é calculada de acordo com o arredondamento.
Então 99.994 tem permissão para inserir tais números.
Quando construímos uma tabela, também podemos adicionar unsigned após o tipo float para torná-la unsigned.
Se for o float usado por padrão, ele é configurado por você, então terá uma certa perda de precisão. (cerca de 7 dígitos)
2. Tipo decimal
Em uso, é exatamente igual ao tipo float.
Mas ele tem uma vantagem única sobre o float, então vou dizer aqui:
Quando float armazena alguns números relativamente grandes, haverá um problema de perda de precisão.
Mas o que armazena decimal é o que é.
3. Tipo de string
1. tipo de caractere
1) Crie uma tabela
create table if not exists t8(
id int,
name char(2)
);
2) Inserir dados:
Podemos saber que char (2) significa que o maior comprimento de caractere é 2.
Nota: O char máximo só pode ser 255.
2. tipo varchar
1) Crie uma tabela
create table if not exists t7(
id int,
name varchar(6)
);
2) inserir
Pode-se ver que o comprimento máximo que ele pode inserir é 6. Observe que varchar suporta até 21845.
Que char e varchar parecem iguais, qual é a diferença entre eles?
char é de comprimento fixo (aberto no início), varchar é de comprimento variável (quanto é usado, quanto é aberto)
4. Tipo de data
Existem três tipos de data comuns: date, datetime, timestamp
1) Crie uma tabela
create table if not exists t9(
t1 date,
t2 datetime,
t3 timestamp
);
2) Ver tabela
Timestamp tem um valor padrão, que deve ser o timestamp atual.
3) Insira o valor
Podemos ver que isso foi inserido com sucesso
4) Veja o resultado da inserção
t3 exibe automaticamente a hora atual.
5. enumerar e definir
1. Sintaxe do tipo de enumeração e coleção
valor de enumeração enum é um tipo de rádio
O tipo de coleção definido é um tipo de seleção múltipla
1) Crie uma tabela
create table if not exists t10(
username varchar(20),
sex enum('男', '女'),
hobby set('写代码', '睡觉', '打游戏')
);
2) Ver tabela
3) Insira o valor
Então:
Podemos ver o valor que inserimos.
Deve-se observar aqui que quando você inserir na posição sexual no futuro, você pode inserir apenas o valor de enumeração que ele deu, e o valor de enumeração começa em 1, então você também pode inserir o valor de enumeração para representar o valor que inserimos, como inserir 1 É inserir um homem.
Vamos ver se podemos inserir vários valores na coleção:
Podemos ver que vários valores podem ser inseridos. Deve-se notar aqui que se nada for inserido, será NULL, e se for inserido 0, será uma string vazia, mas os números da coleção são diferentes dos da enumeração. Podemos imaginar os 3 valores Nesta coleção como um binário 000, o bit mais baixo representa o primeiro valor, então inserir 1 é 001, inserir e escrever código:
Se a inserção for 3, a inserção deve estar escrevendo código e dormindo:
Pode-se ver que este é realmente o caso.
Resumo: Enumerações são subscritos, coleções são bitmaps.
2. Pesquise por tipos de enumeração e coleção
Vamos primeiro procurar de acordo com o valor da enumeração:
select * from t10 where sex=1;
select * from t10 where sex=2;
O conjunto é realmente encontrado assim:
select * from t10 where hobby=1;
select * from t10 where hobby=3;
select * from t10 where hobby=7;
Portanto, se quisermos filtrar, por exemplo, descobrir todos os hobbies e dormir, como devemos encontrá-lo?
Como nossa pesquisa acima é uma correspondência estrita, existe uma maneira mais flexível?
6. função find_in_set
Na verdade, as funções podem ser executadas no MySQL:
find_in_set só pode descobrir se um elemento está no conjunto correspondente.
Desta forma podemos:
select * from t10 where find_in_set('睡觉', hobby);
Encontrado com sucesso.
Escreva no final:
O acima é o conteúdo deste artigo, obrigado pela leitura.
Se você acha que ganhou algo, pode dar um like no blogueiro .
Se houver omissões ou erros no conteúdo do artigo, envie uma mensagem privada ao blogueiro ou indique na área de comentários ~