2010-01-02 7 views

답변

107

작은 따옴표는 SQL에서 문자열의 시작과 끝을 나타내는 데 사용됩니다. 큰 따옴표는 일반적으로 SQL에서는 사용되지 않지만 데이터베이스마다 다를 수 있습니다.

작은 따옴표로 묶으십시오.

어쨌든 주요 용도입니다. 응용 프로그램 코드에서 참조하는 열 이름을 데이터베이스에서 실제로 열 이름과 다른 이름으로 지정하려는 열 별칭에 작은 따옴표를 사용할 수 있습니다. 예를 들어 : PRODUCT.idproduct_id로 더 읽기 될 것이다, 그래서 당신은 다음 중 하나를 사용하십시오

  • SELECT PRODUCT.id AS product_id
  • SELECT PRODUCT.id 'product_id'

어느 오라클, SQL 서버, MySQL은 작동 ...하지만 좀 알고 TOAD IDE가 작은 따옴표 접근법을 사용할 때 약간의 슬픔을주는 것 같습니다.

열 별칭에 공백 문자 (예 : product id)가 포함되어 있으면 작은 따옴표를 사용해야하지만 열 별칭이 두 단어 이상인 것은 권장하지 않습니다.

+22

큰 따옴표는 일반적으로 개체 이름 (예 : 열 이름 "이름")에 사용됩니다. 이것은 SQL-92 표준의 일부입니다. – LukLed

+0

@LukLed : 열 * 별칭 *을 의미합니까? 그렇게 말하면 - 나는 단지'AS column_name' 표기법을 보거나 사용했거나 열 참조 후에 별칭을 ** 작은 따옴표 **로 제공 한 경우에만 사용했습니다. 열 별칭에 공백 문자 (권장하지 않음)가 있으면 별칭을 작은 따옴표로 묶어야합니다. –

+17

아니요. 열 이름을 의미했지만 별명도 관련이 있습니다. SQL-92 표준 때문에 별명과 별칭에 큰 따옴표를 사용하는 것이 좋습니다. 'SELECT * FROM USERS 'Users'는 SQL Server에서는 작동하지 않지만 SELECT * US Users "Users"는 않습니다. – LukLed

31

ANSI SQL에서 큰 따옴표는 허용되지 않는 문자를 포함하거나 예약어와 같은 문자를 포함 할 수있는 객체 이름 (예 : 표)을 인용합니다.

작은 따옴표는 문자열을 나타냅니다.

그러나 MySQL은 SQL_MODE가 변경된 경우를 제외하고는 표준을 무시하고 문자열에 대해 상호 교환하여 사용할 수 있습니다.

또한 Sybase와 Microsoft는 식별자 인용에 대괄호를 사용합니다.

그래서 약간 벤더에 따라 다릅니다. 같은 포스트 그레스와 IBM과 같은

다른 데이터베이스는 실제로 ANSI 표준을 준수 :

+4

MySql은 식별자 인용을 위해 백틱 '을 사용합니다. (완료 만) – dar7yl

+0

예 : Postgres 열의 이름을 "날짜"(예약 됨)로 지정하려면 큰 따옴표로 묶어야합니다. – fny

55

작은 따옴표는 상수 또는 날짜/시간 문자열 상수를 구분합니다.

예를 들어 큰 따옴표는 식별자를 구분합니다. 테이블 이름 또는 컬럼 이름. 이는 일반적으로 식별자가 간단한 식별자의 규칙에 맞지 않는 경우에만 필요합니다.

은 참조 :

SET GLOBAL SQL_MODE=ANSI_QUOTES 

당신이 할 수있는 Microsoft SQL Server가 큰 따옴표를 사용

당신은 MySQL이 ANSI 표준에 따라 큰 따옴표를 사용 할 수 있습니다 ANSI 표준 당 :

SET QUOTED_IDENTIFIER ON 
35
  • [S ] 화롯불 따옴표 [S ] trings 용으로; [D] ouble 인용문은 [D] 데이터베이스 식별자입니다.
  • ` 기호가 과 동일하다 " 기호. 당신은 사용할 수 있습니다 "ANSI_QUOTES와 활성화.

    • 따옴표 문자열 (한 가지)
    • 따옴표 테이블 이름과 열 이름 (두 가지)

    이는위한위한 것입니다 :

+4

ANSI_QUOTES가 활성화되어 있는지 여부에 상관없이 역 따옴표 (')를 사용하여 식별자를 구분할 수 있지만 ANSI_QUOTES를 사용하면 "식별자로 해석되기 때문에 큰 따옴표를 사용하여 리터럴 문자열을 인용 할 수 없습니다." ([source] (https://dev.mysql.com/doc/refman/5.6/en/sql-mode.html#sqlmode_ansi_quotes)). (이 모든 것은 MySQL에 대해 이야기하고 있다고 가정합니다.) – Sam

+0

좋은 의견, 고마워요! –

1

나는이 연상 기호를 사용 사양에 따라 100 % 정확하지는 않지만이 니모닉은 나를 (인간) 도와줍니다.

관련 문제