2012-02-28 4 views
0

sqlite 데이터베이스의 'anything'과 'anything'의 차이점은 무엇입니까?
큰 따옴표는 키워드에 해당하는 반면 작은 따옴표는 문자열을 나타내는 데 사용됩니다.
그러나 나는 쿼리의 where 절과 데이터베이스가 해당 쿼리를 허용 할 때 column_name="value"을 사용했습니다. 왜?
감사합니다.sqlite 데이터베이스의 'anything'과 'anything'의 차이점

+0

이 질문에 android 태그가 필요한지 확실하지 않습니다. –

답변

2

sqlite 웹 페이지에서.

http://www.sqlite.org/lang_keywords.html

하는 경우 (예 : '키'또는 '글로브')가 작은 따옴표 키워드 식별자는 허용하지만, 문자열 리터럴이 입니다 다음, 허용되지 않는 맥락에서 사용된다 토큰은 문자열 리터럴 대신에 이라는 식별자로 인식됩니다.

하는 경우 (예 : "키"또는 "글로브")은 큰 따옴표로 키워드가 식별자로 해결 될 수 있지만 리터럴 문자열이 허용되는 경우, 다음 토큰에 이해할 수있는 맥락에서 사용된다 식별자 대신 문자열 리터럴이어야합니다.

1

실제로 '리터럴 문자열'을 의미하는 경우 이중 "따옴표"를 사용하십시오! 나는 오늘 의아해했다 :

sqlite> select * FROM words WHERE word = "id"; 
<nothing> 

대 :

sqlite> select * FROM words WHERE word = 'id'; 
13556|id 

스키마 : id라는 이름의 열이있는 것처럼

sqlite> .schema 
CREATE TABLE words (
id integer primary key, 
word varchar(64) 
); 

, "ID가"라는 이름의 컬럼으로 여기에 해석됩니다 id이 아닌 리터럴 문자열 'id'! 필요하지 않으면 이중 따옴표를 사용하지 않는 것이 좋습니다.

관련 문제