답변:
작은 따옴표는 SQL에서 문자열의 시작과 끝을 나타내는 데 사용됩니다. 큰 따옴표는 일반적으로 SQL에서 사용되지 않지만 데이터베이스마다 다를 수 있습니다.
작은 따옴표를 사용하십시오.
그것은 어쨌든 주요 용도입니다. 열 별칭에 작은 따옴표를 사용할 수 있습니다. 응용 프로그램 코드에서 참조하는 열 이름이 실제로 데이터베이스에서 열이 호출되는 것과 다른 이름이되도록합니다. 예를 들어 : PRODUCT.id
가보다 읽기 쉽기 product_id
때문에 다음 중 하나를 사용합니다.
SELECT PRODUCT.id AS product_id
SELECT PRODUCT.id 'product_id'
Oracle, SQL Server, MySQL에서 작동하지만 TOAD IDE가 작은 따옴표 접근 방식을 사용할 때 약간의 슬픔을주는 것으로 나타났습니다.
열 별칭에 공백 문자가 포함 된 경우 작은 따옴표를 사용해야 product id
하지만 열 별칭이 두 단어 이상인 것은 권장되지 않습니다.
SELECT * FROM USERS 'Users'
SQL Server에서는 작동하지 않지만 작동 SELECT * FROM USERS "Users"
합니다.
SELECT PRODUCT.id 'product_id'
할 수 없습니다 오라클에서 작동합니다. 작은 따옴표는 문자 리터럴 에만 사용됩니다 . (표준) SQL의 식별자에는 사용할 수 없습니다 (일부 DBMS는 인용 된 식별자와 관련하여 SQL 표준을 무시하지만)
어떤 경우에 무엇을 사용해야하는지 기억하는 간단한 규칙 :
MySQL과 MariaDB에서 ` (역 따옴표) 기호는 동일하다 " 기호. 당신이 사용할 수있는 " 당신이 때 SQL_MODE
한 ANSI_QUOTES
수있었습니다.
작은 따옴표는 문자열 상수 또는 날짜 / 시간 상수를 구분합니다.
큰 따옴표는 테이블 이름 또는 열 이름과 같은 식별자를 구분합니다. 이는 일반적으로 식별자가 간단한 식별자 규칙에 맞지 않을 때만 필요합니다.
또한보십시오:
ANSI 표준에 따라 MySQL에서 큰 따옴표를 사용하도록 할 수 있습니다.
SET GLOBAL SQL_MODE=ANSI_QUOTES
Microsoft SQL Server가 ANSI 표준에 따라 큰 따옴표를 사용하도록 할 수 있습니다.
SET QUOTED_IDENTIFIER ON
ANSI SQL에서 큰 따옴표는 오브젝트 이름 (예 : 테이블)을 인용하여 다르게 허용되지 않는 문자를 포함하거나 예약어와 동일 할 수 있습니다 (실제로 피하십시오).
작은 따옴표는 문자열입니다.
그러나 MySQL은 SQL_MODE가 변경되지 않는 한 표준을 잊어 버리고 문자열에 대해 상호 교환 가능하게 사용할 수 있습니다.
또한 Sybase와 Microsoft는 식별자 인용에 대괄호를 사용합니다.
따라서 벤더마다 다릅니다.
Postgres 및 IBM과 같은 다른 데이터베이스는 실제로 ANSI 표준을 준수합니다. :)
차이점은 사용법에 있습니다. 작은 따옴표는 주로 WHERE, HAVING 및 CONCAT, STRPOS, POSITION 등과 같은 일부 내장 SQL 함수에서 문자열을 참조하는 데 사용됩니다.
사이에 공백이있는 별명을 사용하려는 경우 큰 따옴표를 사용하여 해당 별명을 참조 할 수 있습니다.
예를 들어
(select account_id,count(*) "count of" from orders group by 1)sub
다음은 accounts_id를 외래 키로 주문 테이블의 하위 쿼리로, 각 계정이 주문한 수량을 알기 위해 집계합니다. 여기서는 목적을 위해 하나의 열에 임의의 이름을 "count"로 지정했습니다.
이제 "count of"가 20보다 큰 행을 표시하는 외부 쿼리를 작성해 봅시다.
select "count of" from
(select account_id,count(*) "count of" from orders group by 1)sub where "count of" >20;
동일한 테이블을 공통 테이블 표현식에도 적용 할 수 있습니다.