MySQL 문에서 백틱(``)이 자주 표시됩니다. 처음에는 이것이 무엇을 의미하는지 몰랐습니다.
Select * from `member` order by posts desc limit 0,10;
MYSQL의 예약어를 일반어와 구별하기 위한 것이다. 캐릭터가 소개하는 기호.
예: SELECT `select` FROM `test` WHERE select='필드 값'
테스트 테이블에서, 백틱을 사용하지 않으면 MYSQL은 select를 예약어로 간주하여 오류를 발생시킵니다. 따라서 에 MYSQL 예약어가 있으면 을 구별하기 위해 백틱을 추가해야 합니다.
필드 값이 문자 또는 문자열, 그런 다음 따옴표 를 추가합니다. 예: select='field value'
백틱 없이 작성된 테이블은 MYSQL을 포함할 수 없습니다. 예약어, 그렇지 않으면 오류 발생
백틱 `, 숫자 1 왼쪽에 기호.
desc와 같은 예약어는 테이블 이름에 사용할 수 없습니다. 이를 구별하려면 백틱을 추가해야 하지만 테이블 이름을 사용할 때는 백틱을 무시할 수 있습니다.
create table desc에서 오류를 보고했습니다
`desc` 테이블 만들기 성공
테이블 만들기 `test `성공
드롭 테이블 테스트 성공
desc와 같은 필드 이름에는 예약어를 사용할 수 없습니다 , 이때 백틱을 추가해야 하며, 인서트 등을 사용할 때도 백틱을 추가해야 합니다.
`test`(`desc` varchar(255)) 테이블 생성 성공
테스트(desc) 값에 삽입('fxf' ) 실패
테스트(`desc`) 값에 삽입('fxf') 성공
MySQL 공통 예약어
mysql 사용 시 주의사항 , 예약어를 테이블 이름이나 열 이름으로 사용하지 마십시오. 그렇지 않으면 설명할 수 없는 오류가 발생합니다.
앞으로 비슷한 오류가 발생한다면 테이블명 충돌로 인한 것인지, 컬럼명 충돌로 인한 것인지 먼저 생각해 보아야 합니다.참고용으로 인터넷에서 MySQL 예약어 목록을 찾았습니다.
추가 | 모두 | 변경 |
분석 | 그리고 | AS |
ASC | ASENSITIVE | 이전 |
BETWEEN | BIGINT | BINARY |
BLOB | BOTH | BY |
CALL | CASCADE | CASE |
CHANGE | CHAR | CHARACTER |
CHECK | COLLATE | COLUMN |
CONDITION | CONNECTION | 제한 |
계속 | 변환 | 만들기 |
교차 | 현재_날짜 | CURRENT_시간 |
CURRENT_TIMESTAMP | 현재_사용자 | 커서 |
데이터베이스 | 데이터베이스 | DAY_HOUR |
DAY_MICROSECOND | DAY_MINUTE | DAY_SECOND |
DEC | DECIMAL | 선언 |
기본 | 지연 | 삭제 |
설명 | 설명 | 결정성 |
DISTINCT | DISTINCTROW | p |
DOUBLE | 드롭 | 듀얼 |
각 | ELSE | ELSEIF |
ENCLOSED | ESCAPED | EXISTS |
EXIT | 설명 | 거짓 |
가져오기 | FLOAT | FLOAT4 |
FLOAT8 | FOR | FORCE |
FOREIGN | FROM | 전체텍스트 |
이동 | 그랜트 | 그룹 |
HAVING | HIGH_PRIORITY | HOUR_MICROSECOND |
HOUR_MINUTE | HOUR_SECOND | IF |
무시 | IN | INDEX |
INFILE | 내부 | 내부 |
민감 | 삽입 | 내부 |
INT1 | INT2 | INT3 |
INT4 | INT8 | INTEGER |
간격 | INTO | IS |
반복 | 가입 | 키 |
키 | KILL | LABEL |
선두 | 나가기 | 왼쪽 |
좋아요 | 제한 | 선형 |
라인 | 로드 | 현지 시간 |
현지 시간 스탬프 | 잠금 | LONG |
LONGBLOB | LONGTEXT | LOOP |
LOW_PRIORITY | MATCH | MEDIUMBLOB |
MEDIUMINT | MEDIUMTEXT | MIDDLEINT |
MINUTE_MICROSECOND | MINUTE_SECOND | MOD |
MODIFIES | 자연 | NOT |
NO_WRITE_TO_BINLOG | NULL | NUMERIC |
ON | 최적화 | 선택 |
선택 | 또는 | 주문 |
아웃 | 외부 | 아웃파일 |
정밀 | 1차 | 절차 |
퍼지 | RAID0 | 범위 |
읽기 | 읽기 | 실제 |
참조 | REGEXP | 릴리스 |
이름 바꾸기 | 반복 | 교체 |
요구 | 제한 | 반환 |
취소 | 권 | RLIKE |
스키마 | 스키마 | 초_마이크로초 |
선택 | 민감 | 세퍼레이터 |
설정 | SHOW | SMALLINT |
SPATIAL | SPECIFIC | SQL |
SQL예외 | SQLSTATE | SQL경고 |
SQL_BIG_RESULT | SQL_CALC_FOUND_ROWS | SQL_SMALL_RESULT |
SSL | 시작 | STRAIGHT_JOIN |
테이블 | 종료 | 그다음 |
TINYBLOB | TINYINT | TINYTEXT |
TO | TRAILING | TRIGGER |
참 | UNDO | UNION |
UNIQUE | 잠금 해제 | 서명 안됨 |
업데이트 | 사용 | 사용 |
사용 | UTC_DATE | UTC_TIME |
UTC_TIMESTAMP | VALUES | VARBINARY |
VARCHAR | VARCHARACTER | 변동 |
언제 | 어디에서 | 동안 |
WITH | 쓰기 | X509 |
XOR | YEAR_MONTH | ZEROFILL |
注:MySQL允许分关键字用做未引起来的识别符,因为许多以前曾使用过它们。如:액션、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP
所以为了안전起见可以는 表name과 字段名上道加上``입니다.
위 내용은 mysql 문에 역따옴표를 추가해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!