>  기사  >  데이터 베이스  >  mysql 문에 역따옴표를 추가해야 하는 이유는 무엇입니까?

mysql 문에 역따옴표를 추가해야 하는 이유는 무엇입니까?

大家讲道理
大家讲道理원래의
2017-04-16 14:31:582815검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.