AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 23129
Accepted
Satish Pandey
Satish Pandey
Asked: 2012-08-26 02:35:40 +0800 CST2012-08-26 02:35:40 +0800 CST 2012-08-26 02:35:40 +0800 CST

Benefícios de usar backtick (`) em consultas MySQL?

  • 772

No MySQL podemos criar consultas com ou sem o `símbolo de acento grave ( ). Exemplo:

  1. SELECT * FROM TEST;
  2. SELECT * FROM `TEST`;

Ambos funcionam bem no mysql-console.

Existe alguma diferença técnica entre eles?

Existe algum benefício usando ( `) sobre consultas simples?

mysql select
  • 5 5 respostas
  • 41420 Views

5 respostas

  • Voted
  1. Best Answer
    World Wide DBA
    2012-08-26T02:42:35+08:002012-08-26T02:42:35+08:00

    Eles são chamados de identificadores entre aspas e dizem ao analisador para tratar o texto entre eles como uma string literal. Eles são úteis para quando você tem uma coluna ou tabela que contém uma palavra-chave ou espaço. Por exemplo, o seguinte não funcionaria:

    CREATE TABLE my table (id INT);
    

    Mas seria o seguinte:

    CREATE TABLE `my table` (id INT);
    

    Além disso, o seguinte receberia um erro, porque COUNTé uma palavra-chave reservada:

    SELECT count FROM some_table
    

    Mas o seguinte seria analisado corretamente:

    SELECT `count` FROM some_table
    

    Espero que isso ajude você.

    • 45
  2. Frank Heikens
    2012-08-26T03:38:10+08:002012-08-26T03:38:10+08:00

    Se você quiser usar algo em torno de identificadores de objeto, use pelo menos as aspas duplas padrão: "

    Isso funciona em MySQL, PostgreSQL, SQL Server, Oracle, etc. etc. Para MySQL você pode precisar do modo SQL ansi_quotes , dependendo da configuração padrão:

    SET sql_mode = 'ANSI_QUOTES';
    

    Backticks ` são usados ​​apenas no MySQL, você aprende um tipo de SQL que não funcionará em nenhuma outra marca de SGBD.

    • 30
  3. Rob Farley
    2012-08-26T02:43:18+08:002012-08-26T02:43:18+08:00

    Isso significa que você pode ter espaços nos nomes das tabelas. Não particularmente atraente, é claro. O mesmo com o SQL Server [].

    • 7
  4. HVNSweeting
    2012-08-26T05:43:06+08:002012-08-26T05:43:06+08:00

    Pode ser útil se você tiver uma coluna com nome reservado,

    por exemplo: Você pode consultar uma declaração como esta:

    select * from tablename group by `group`;
    
    • 3
  5. PhoneixS
    2019-10-24T07:30:25+08:002019-10-24T07:30:25+08:00

    Do meu ponto de vista, a resposta do @Mr.Brownstone está apenas parcialmente correta.

    O backtick `é usado no MySQL para delimitar literais que representam identificadores (não strings).

    Isso permite que você use caracteres normalmente não aceitos como espaços, palavras reservadas, etc. como identificadores. Por exemplo:

    SELECT * FROM `Strange table name`;
    

    Também importante é que ele também permite que o analisador saiba se você está fazendo algo errado, como selecionar uma coluna que não existe. Por exemplo:

    SELECT notexistingcolumn FROM atable;
    

    Se atableexistir, mas notexistingcolumna coluna não existir, ela será interpretada como a string literal "notexistingcolumn" selecionando-a como um valor (e provavelmente emitindo um aviso).

    Em vez disso, se você usar:

    SELECT `notexistingcolumn` FROM `atable`;
    

    Ele reconhecerá que notexistingcolumné o nome de uma coluna que não existe e lançará um erro.

    Eu acho que é sempre preferível cercar os identificadores com acentos graves, incluindo o alias, e tentar evitar o uso de palavras reservadas e caracteres estranhos para identificadores.

    Você pode ler mais sobre o backtick do MySQL .

    • 3

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve