집 >데이터 베이스 >MySQL 튜토리얼 >SQL 열 이름에서 특수 문자를 어떻게 이스케이프합니까?
SQL 열 이름의 특수 문자 탐색
SQL 데이터베이스는 테이블과 열의 이름을 지정하는 데 상당한 유연성을 제공합니다. 그러나 특정 문자는 특정 SQL 함수용으로 예약되어 있습니다. 예를 들어 마침표(.)는 테이블 이름과 열 이름 사이를 구분하는 역할을 합니다. 열 이름에 마침표를 직접 포함하면 데이터베이스에서 잘못 해석될 수 있습니다.
해결책은 구분 기호를 사용하여 특수 문자를 효과적으로 이스케이프 처리하는 것입니다. 열 이름을 따옴표로 묶으면 마침표가 구분 기호가 아니라 이름의 일부임을 데이터베이스에 알립니다. 다음 예에서는 "first.name"이라는 열이 있는 테이블을 만듭니다.
<code class="language-sql">CREATE TABLE people ( "first.name" VARCHAR(255) );</code>
SQL 표준 및 구분 기호 사용법
SQL:1999 표준에서는 식별자를 구분하기 위해 큰따옴표("")를 권장합니다. 이를 통해 일반적으로 따옴표가 없는 식별자에서 허용되지 않는 문자를 이스케이프할 수 있습니다. 예:
<code class="language-sql">CREATE TABLE "table name" ( column_name VARCHAR(255) );</code>
데이터베이스별 고려 사항
SQL 표준이 존재하지만 기본 동작은 데이터베이스 시스템에 따라 다릅니다. MySQL과 SQLite는 큰따옴표를 구분 기호로 지원하지만 기본적으로는 지원하지 않습니다. MySQL에는 ANSI 모드가 필요하고, SQLite는 PRAGMA identifiers=ON
이 동작을 활성화해야 합니다.
SQL Server도 큰따옴표를 허용하지만 마찬가지로 QUOTED_IDENTIFIER
옵션을 ON
로 설정해야 합니다.
요약
SQL에서 열 이름을 이스케이프 처리하는 표준이 있지만 데이터베이스 시스템의 기본 설정이 다른 경우가 많습니다. MySQL, SQLite 및 SQL Server는 모두 큰따옴표를 구분 기호로 지원하지만 이 기능을 활성화하려면 특정 구성이 필요합니다. 올바른 방법은 항상 데이터베이스 설명서를 참조하세요.
위 내용은 SQL 열 이름에서 특수 문자를 어떻게 이스케이프합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!