55 perguntas e respostas da entrevista MySQL

1. Uma tabela com uma chave primária de auto-incremento de ID. Após inserir 17 registros, exclua os registros 15, 16 e 17, reinicie o Mysql e insira um registro. O ID deste registro é 18 ou 15?

(1) Se o tipo da tabela for MyISAM, então é 18

Como a tabela MyISAM registrará o ID máximo da chave primária de incremento automático no arquivo de dados, o ID máximo da chave primária de incremento automático não será perdido após a reinicialização do MySQL

(2) Se o tipo da tabela for InnoDB, então é 15

As tabelas InnoDB registram apenas o ID máximo da chave primária de incremento automático na memória, portanto, reiniciar o banco de dados ou executar uma operação OPTIMIZE na tabela fará com que o ID máximo seja perdido

2. Quais são as características técnicas do Mysql?

O software de banco de dados Mysql é um sistema cliente ou servidor que inclui: um servidor SQL multithread com suporte a vários programas e bibliotecas clientes, diferentes back-ends, extensas interfaces de programação de aplicativos e ferramentas de gerenciamento.

3. O que é a tabela Heap?

As tabelas HEAP existem na memória para armazenamento temporário de alta velocidade.

Campos BLOB ou TEXT não são permitidos

Somente operadores de comparação =, <, >, =>, =< podem ser usados

Tabelas HEAP não suportam AUTO_INCREMENT

O índice não pode ser NULL

4. Qual é a porta padrão do servidor Mysql?

A porta padrão para o servidor Mysql é 3306.

5. Em comparação com o Oracle, quais são as vantagens do Mysql?

Mysql é um software de código aberto, pronto para uso, gratuito.

Mysql é portátil

GUI com prompt de comando.

Use o gerenciamento de suporte do navegador de consulta Mysql

6. Como distinguir FLOAT e DOUBLE?

A seguir está a diferença entre FLOAT e DOUBLE:

1) Os números de ponto flutuante são armazenados em FLOAT com precisão de 8 bits e possuem quatro bytes.

2) Os números de ponto flutuante são armazenados em DOUBLE com precisão de 18 bits e oito bytes.

7. Diferença entre CHAR_LENGTH e LENGTH?

CHAR_LENGTH é o número de caracteres e LENGTH é o número de bytes. Esses dois dados são os mesmos para caracteres latinos, mas são diferentes para Unicode e outras codificações.

8. Descreva brevemente os nomes dos quatro níveis de isolamento de transação suportados pelo InnoDB no Mysql e as diferenças entre os níveis.

Os quatro níveis de isolamento definidos pelo padrão SQL são:

read uncommited : lê dados não confirmados

leitura confirmada: leitura suja, leitura não repetível

leitura repetível: relegível

serializable: coisas seriais

9. Qual é o uso de ENUM no Mysql?

ENUM é um objeto string usado para especificar um conjunto predefinido de valores e é usado ao criar uma tabela

Criar tamanho da tabela (nome ENUM('Smail,'Medium','Large');

10. Como definir REGEXP?

REGEXP é correspondência de padrão, em que o padrão correspondente está em qualquer lugar no valor pesquisado.

11. Qual a diferença entre CHAR e VARCHAR?

A seguir estão as diferenças entre CHAR e VARCHAR:

Os tipos CHAR e VARCHAR diferem no armazenamento e na recuperação

O comprimento da coluna CHAR é fixado no comprimento declarado ao criar a tabela e o intervalo de valores de comprimento é de 1 a 255

Quando os valores CHAR são armazenados, eles são preenchidos com espaços em um comprimento específico e os espaços à direita são removidos ao recuperar valores CHAR.

12. Qual pode ser o tipo de string da coluna?

Os tipos de string são:

DEFINIR

BLOB

ENUM

CARACTERES

TEXTO

VARCHAR

13. Como obter a versão atual do Mysql?

SELECT VERSION(); é usado para obter a versão atual do Mysql.

14. Qual mecanismo de armazenamento é usado no Mysql?

O mecanismo de armazenamento é chamado de tipo de tabela e os dados são armazenados em arquivos usando várias técnicas.

A tecnologia envolve:

Mecanismo de armazenamento

níveis de bloqueio

indexação

Capacidades e funções.

15. O que é o driver Mysql?

A seguir estão os drivers disponíveis no Mysql:

controlador PHP

driver JDBC

Driver ODBC

CWRAPPER

driver PYTHON

controlador PERL

motorista ruby

Driver CAP11PHP

ado.net5.mxj

16. O que o TIMESTAMP faz no tipo de dados UPDATE CURRENT_TIMESTAMP?

As colunas TIMESTAMP são atualizadas com Zero quando a tabela é criada. O modificador UPDATE CURRENT_TIMESTAMP atualiza o campo timestamp para a hora atual sempre que outros campos na tabela mudam.

17. Qual é a diferença entre uma chave primária e uma chave candidata?

Cada linha da tabela é identificada exclusivamente por uma chave primária e uma tabela possui apenas uma chave primária.

Uma chave primária também é uma chave candidata. Por convenção, as chaves candidatas podem ser designadas como chaves primárias e podem ser usadas para qualquer referência de chave estrangeira.

18. Como fazer login no Mysql usando shell Unix?

Podemos logar com o seguinte comando:

[dir mysql]/bin/mysql -h hostname -u

19. Para que serve o myisamchk?

Ele é usado para compactar tabelas MyISAM, o que reduz o uso de disco ou memória.

20. Quais são os métodos e comandos para análise de desempenho do servidor de banco de dados MYSQL?

Comandos comuns para visualizar o desempenho do banco de dados no MySQL

21. Como controlar o tamanho máximo da tabela HEAP?

O tamanho da tabela Heal pode ser controlado por uma variável de configuração Mysql chamada max_heap_table_size.

22. Qual é a diferença entre MyISAM Static e MyISAM Dynamic?

Todos os campos no MyISAM Static têm uma largura fixa. As tabelas MyISAM dinâmicas terão campos como TEXT, BLOB, etc. para acomodar tipos de dados de diferentes comprimentos.

MyISAM Static é mais fácil de restaurar em caso de dano.

23. O que é uma tabela federada?

tabelas federadas, que permitem acesso a tabelas localizadas em outros bancos de dados do servidor.

24. Se uma tabela tiver uma coluna definida como TIMESTAMP, o que acontecerá?

O campo timestamp obterá o timestamp atual sempre que a linha for alterada.

25. Quando a coluna é definida como AUTO INCREMENT, o que acontece se o valor máximo for atingido na tabela?

Ele para de incrementar e quaisquer outras inserções irão gerar um erro porque a chave já está em uso.

26. Como posso saber qual autoincremento foi atribuído na última inserção?

LAST_INSERT_ID retornará o último valor atribuído por Auto_increment e não requer a especificação de um nome de tabela.

27. Como você vê todos os índices definidos para a tabela?

Os índices são definidos para tabelas via: SHOW INDEX FROM

28. O que significam % e _ na instrução LIKE?

% corresponde a 0 ou mais caracteres, _ é apenas um caractere na instrução LIKE.

29. Como converter entre timestamp Unix e Mysql?

UNIX_TIMESTAMP é o comando para converter de carimbo de data/hora Mysql para carimbo de data/hora Unix

FROM_UNIXTIME é o comando para converter de carimbo de data/hora Unix para carimbo de data/hora Mysql

30. Qual é o operador de comparação de colunas?

Use os operadores =, <>, <=, <, >=, >, <<, >>, <=>, AND, OR ou LIKE em comparações de colunas em uma instrução SELECT.

31. Como obtemos o número de linhas afetadas pela consulta?

O número de linhas pode ser obtido pelo seguinte código: SELECT COUNT(user_id)FROM users;

32. A consulta Mysql diferencia maiúsculas de minúsculas?

Não distingue entre

SELECT VERSION(), CURRENT_DATE;

Selecione versão(), data_atual;

seleCt vErSiOn(), current_DATE;

Todos esses exemplos são iguais, o Mysql não diferencia maiúsculas de minúsculas.

33. Qual é a diferença entre as operações LIKE e REGEXP?

Os operadores LIKE e REGEXP são usados ​​para representar ^ e %.

SELECT * FROM empregado WHERE emp_name REGEXP “^b”;

SELECT * FROM empregado WHERE emp_name LIKE “%b”;

34. Qual a diferença entre BLOB e TEXT?

1. BLOB é um objeto binário que pode conter uma quantidade variável de dados. Existem quatro tipos de BLOB −

1)TINYBLOB

2)BLOB

3) MEDIUMBLOB e

4) BLOB DE PULMÃO

Eles só podem diferir no comprimento máximo que podem conter um valor.

2. TEXT é um BLOB que não diferencia maiúsculas de minúsculas. Quatro tipos de TEXTO

1) TEXTO MINÚSCULO

2) TEXTO

3) TEXTO MÉDIO

4) TEXTO LONGO

Eles correspondem aos quatro tipos de BLOB e têm o mesmo comprimento máximo e requisitos de armazenamento.

A única diferença entre os tipos BLOB e TEXT é que os valores BLOB são classificados e comparados com distinção entre maiúsculas e minúsculas e os valores TEXT não diferenciam maiúsculas de minúsculas.

35. Qual é a diferença entre mysql_fetch_array e mysql_fetch_object?

1) mysql_fetch_array() - retorna linhas de resultado como um array associativo ou um array regular do banco de dados.

2) mysql_fetch_object - Retorna linhas de resultado do banco de dados como objetos.

36. Como podemos executar o modo batch no mysql?

Os seguintes comandos são usados ​​para executar no modo de lote:

mysql;

mysql mysql.out

37. Onde a tabela MyISAM será armazenada e também fornecerá seu formato de armazenamento?

Cada tabela MyISAM é armazenada em disco em três formatos:

Arquivos ".frm" armazenam definições de tabela

Os arquivos de dados têm uma extensão ".MYD" (MYData)

Os arquivos de índice têm uma extensão ".MYI" (MYIndex)

38. Quais são as diferentes tabelas no Mysql?

Existem 5 tipos de tabelas:

MyISAMGenericName

pilha

mesclar

INNODB

É SOU

MyISAM é o mecanismo de armazenamento padrão para Mysql.

39. O que é ISAM?

ISAM é a abreviação de Indexed Sequential Access Method. Foi desenvolvido pela IBM para armazenar e recuperar dados em sistemas de armazenamento secundário, como fita magnética.

40. O que é InnoDB?

lnnoDB é um mecanismo de armazenamento seguro para transações Innobase Oy desenvolvido pela Oracle Corporation.

41. Como o Mysql otimiza o DISTINCT?

DISTINCT converte para GROUP BY em todas as colunas e é usado em conjunto com a cláusula ORDER BY.

1

SELECT DISTINCT t1.a FROM t1,t2 onde t1.a=t2.a;

42. Como inserir caracteres como números hexadecimais?

Se quiser inserir os caracteres como dígitos hexadecimais, você pode inserir os dígitos hexadecimais com aspas simples e um prefixo (X) ou apenas inserir os dígitos hexadecimais com o prefixo (Ox).

Se o contexto da expressão for uma string, a string de dígitos hexadecimais será convertida automaticamente em uma string.

43. Como exibir as primeiras 50 linhas?

No Mysql, use a seguinte consulta para exibir as primeiras 50 linhas: SELECT*FROMLIMIT 0,50;

44. Quantas colunas podem ser usadas para criar um índice?

Um máximo de 16 colunas indexadas podem ser criadas em qualquer tabela padrão.

45. Qual é a diferença entre NOW() e CURRENT_DATE()?

O comando NOW() é usado para exibir o ano, mês, data, hora, minuto e segundo atuais.

CURRENT_DATE() exibe apenas o ano, mês e dia atuais.

46. ​​Que tipo de objetos podem ser criados usando a instrução CREATE?

Os seguintes objetos são criados usando a instrução CREATE:

BASE DE DADOS

EVENTO

FUNÇÃO

ÍNDICE

PROCEDIMENTO

MESA

ACIONAR

DO UTILIZADOR

VISUALIZAR

47. Quantos TRIGGERS são permitidos em uma tabela Mysql?

Existem seis gatilhos permitidos em uma tabela Mysql, como segue:

ANTES DE INSERIR

DEPOIS DE INSERIR

ANTES DA ATUALIZAÇÃO

APÓS ATUALIZAÇÃO

ANTES DE EXCLUIR

DEPOIS DE EXCLUIR

48. O que é um tipo de string não padrão?

Os seguintes são tipos de string não padrão:

TEXTO MINÚSCULO

TEXTO

TEXTO MÉDIO

TEXTO LONGO

49. O que é uma função SQL geral?

CONCAT(A, B) - Concatena dois valores de string para criar uma única string de saída. Normalmente usado para combinar dois ou mais campos em um.

FORMAT(X, D) - Formata o número X para D dígitos significativos.

CURRDATE(), CURRRTIME() - Retorna a data ou hora atual.

NOW() - Retorna a data e hora atuais como um valor.

MONTH(), DAY(), YEAR(), WEEK(), WEEKDAY() − Extrai os dados fornecidos de um valor de data.

HOUR(), MINUTE(), SECOND() - Extrai dados fornecidos de um valor de tempo.

DATEDIFF(A,B) - Determina a diferença entre duas datas, geralmente usado para calcular a idade

SUBTIMES(A,B) - Determina a diferença entre dois tempos.

FROMDAYS(INT) - Converte um número inteiro de dias em um valor de data.

50. Explique a lista de controle de acesso

ACL (Access Control List) é uma lista de permissões associadas a um objeto. Essa lista é a base do modelo de segurança do servidor Mysql e ajuda a solucionar problemas em que os usuários não conseguem se conectar.

Mysql armazena em cache ACLs (também conhecidas como tabelas de concessão) na memória. Quando um usuário tenta autenticar ou executar um comando, o Mysql verifica as informações e permissões de autenticação ACL em uma ordem predeterminada.

51. O MYSQL suporta transações?

No modo padrão, o MYSQL está no modo de confirmação automática e todas as operações de atualização do banco de dados serão confirmadas imediatamente, portanto, por padrão, o mysql não suporta transações.

Mas se o seu tipo de tabela MYSQL usa tabelas InnoDB ou tabelas BDB, seu MYSQL pode usar o processamento de transações, use SET AUTOCOMMIT=0 para fazer o MYSQL permitir o modo não autocommit, no modo não autocommit, você deve usar COMMIT para confirmar suas alterações ou ROLLBACK para reverter suas alterações.

Os exemplos são os seguintes:

um

INICIAR TRANSAÇÃO;

SELECT @A:=SUM(salário) FROM tabela1 WHERE tipo=1;

UPDATE tabela2 SET resumo=@A WHERE tipo=1;

COMPROMETER-SE;

52. Qual tipo de campo é bom para registrar moeda no mysql

Os tipos NUMERIC e DECIMAL são implementados pelo Mysql como o mesmo tipo, o que é permitido no padrão SQL92. Eles são usados ​​para armazenar valores onde a precisão exata é extremamente importante, como dados relacionados a dinheiro. precisão e escala podem ser (e geralmente são) especificadas ao declarar uma classe como um desses tipos;

Por exemplo:

salário DECIMAL(9,2)

Neste exemplo, 9 (precisão) representa o número total de casas decimais que serão usadas para armazenar o valor e 2 (escala) representa o número de dígitos que serão usados ​​para armazenar o valor após a vírgula.

Então, neste caso, a faixa de valores que podem ser armazenados na coluna salário é de -9999999,99 a 9999999,99.

Em ANSI/ISO SQL92, a sintaxe DECIMAL§ é equivalente a DECIMAL(p,0).

Da mesma forma, a sintaxe DECIMAL é equivalente a DECIMAL(p,0), onde a implementação é permitida para determinar o valor de p. Mysql atualmente não suporta nenhuma dessas variantes dos tipos de dados DECIMAL/NUMERIC.

Isso geralmente não é um problema sério, pois o principal benefício desses tipos vem da capacidade de controlar claramente a precisão e a escala.

Os valores DECIMAL e NUMERIC são armazenados como strings, em vez de números binários de ponto flutuante, para preservar a precisão decimal desses valores.

Um caractere para cada dígito do valor, o ponto decimal (se escala > 0) e o sinal "-" (para valores negativos). Se a escala for 0, os valores DECIMAL e NUMERIC não contêm ponto decimal ou parte fracionária.

Os valores DECIMAL e NUMERIC têm o mesmo intervalo máximo que DOUBLE, mas para uma determinada coluna DECIMAL ou NUMERIC, o intervalo real pode ser limitado pela precisão ou escala da coluna especificada.

Quando tal coluna recebe um valor com mais dígitos após o ponto decimal do que a escala especificada permite, o valor é arredondado de acordo com a escala.

Quando uma coluna DECIMAL ou NUMERIC recebe um valor cujo tamanho excede o intervalo implícito pela precisão e escala especificada (ou padrão), o Mysql armazena os valores de ponto final correspondentes que representam esse intervalo.

53. Em que circunstâncias a tabela de dados MYSQL é facilmente danificada?

A falha repentina de energia do servidor leva à corrupção do arquivo de dados.

Desligamento forçado, sem primeiro fechar o serviço mysql, etc.

54. Quais são as tabelas relacionadas a permissões no mysql?

O servidor Mysql controla o acesso do usuário ao banco de dados por meio da tabela de permissões, que é armazenada no banco de dados mysql e inicializada pelo script mysql_install_db.

Essas tabelas de permissão são user, db, table_priv, column_priv e host.

55. Que tipos de bloqueios existem no Mysql?

MyISAM suporta bloqueios de tabela, InnoDB suporta bloqueios de tabela e bloqueios de linha, o padrão é bloqueios de linha

Bloqueios em nível de tabela: baixa sobrecarga, bloqueio rápido e sem impasses. A granularidade do bloqueio é grande, a probabilidade de conflitos de bloqueio é a mais alta e a quantidade de simultaneidade é a mais baixa

Bloqueios em nível de linha: alta sobrecarga, bloqueio lento e deadlocks. A força do bloqueio é pequena, a probabilidade de conflitos de bloqueio é pequena e a simultaneidade é a mais alta

Acho que você gosta

Origin blog.csdn.net/qq960685827/article/details/128038627
Recomendado
Clasificación