답변:
따옴표 붙은 식별자라고하며 파서에게 텍스트를 리터럴 문자열로 처리하도록 지시합니다. 키워드 나 공백이 포함 된 열이나 테이블이있을 때 유용합니다. 예를 들어 다음은 작동하지 않습니다.
CREATE TABLE my table (id INT);
그러나 다음은
CREATE TABLE `my table` (id INT);
또한 COUNT
예약 키워드 이므로 다음과 같은 오류가 발생 합니다.
SELECT count FROM some_table
그러나 다음은 올바르게 구문 분석됩니다.
SELECT `count` FROM some_table
이것이 도움이되기를 바랍니다.
객체 식별자 주위에 무언가를 사용하려면 최소한 표준 큰 따옴표를 사용하십시오. "
이것은 MySQL, PostgreSQL, SQL Server, Oracle 등에서 작동합니다. MySQL의 경우 기본 구성에 따라 SQL 모드 ansi_quotes 가 필요할 수 있습니다 .
SET sql_mode = 'ANSI_QUOTES';
Backticks`는 MySQL에서만 사용되며 다른 브랜드의 DBMS에서는 작동하지 않는 SQL 유형을 배웁니다.
이름이 예약 된 열이 있으면 도움이 될 수 있습니다.
예 : 다음과 같은 문장을 쿼리 할 수 있습니다.
select * from tablename group by `group`;
내 관점에서 @ Mr.Brownstone 답변은 부분적으로 만 정확합니다.
백틱 `
은 MySQL에서 문자열이 아닌 식별자를 나타내는 리터럴을 구분하는 데 사용됩니다.
공백, 예약어 등 일반적으로 허용되지 않는 문자를 식별자로 사용할 수 있습니다. 예를 들면 다음과 같습니다.
SELECT * FROM `Strange table name`;
또한 존재하지 않는 열을 선택하는 것과 같은 잘못된 일이 있는지 파서가 알 수 있도록하는 것이 중요합니다. 예를 들면 다음과 같습니다.
SELECT notexistingcolumn FROM atable;
만약 atable
존재하지만 notexistingcolumn
열 (경고 발광 아마와) 값으로 선택 "notexistingcolumn"는 리터럴 문자열로 해석됩니다 존재하지 않습니다.
대신 다음을 사용하는 경우 :
SELECT `notexistingcolumn` FROM `atable`;
notexistingcolumn
존재하지 않는 열의 이름 임을 인식 하고 오류를 발생시킵니다.
필자는 별칭을 포함하여 백틱으로 식별자를 둘러싸고 식별자에 예약어와 이상한 문자를 사용하지 않는 것이 항상 바람직하다고 생각합니다.
https://dev.mysql.com/doc/refman/8.0/en/identifiers.html 에서 MySQL의 백틱에 대한 자세한 내용을 읽을 수 있습니다 .