2012-04-16 4 views
0

私はSQLiteの世界で始めて、フィールド定義を見ています SQLiteのフィールドにはVarchar/Chartextフィールドの間に違いはないように思えますか?また、フィールドの長さの設定に影響はありますか?SQLiteのフィールド定義

CompanyName varchar (40) NOT NULL , 

そして最後に、私はデフォルトとして1またはTrueを使用するブール型のフィールドにデフォルト値を与えるとしたら?

答えて

0

VARCHAR/CharとsQLiteのテキストフィールドの間に違いはないように思えますか?

はい、あなたは正しいです。それらはすべてsqliteと同じです。

また、フィールドの長さを設定しても影響はありませんか?

また、上層が何らかの形で長さをチェック/強制するのを止めるものは何もないことに注意してください。

私はブール型のフィールドにデフォルト値を与えるとしたら、私はデフォルトとして1または 真を使うのでしょうか?以下に実証されるよう

1(またはゼロ以外の数値):約

sqlite> select 1 where True; 
Error: no such column: True 
sqlite> select 1 where 1; 
1 
sqlite> select 1 where "True"; 
sqlite> select 1 where "False"; 
sqlite> select 1 where 0; 
sqlite> select 1 where -1; 
1 

備考SQLiteの

SQLiteのと真/偽1および偽とで真発現します0:

sqlite> select 3 > 2; 
1 
sqlite> select 3 < 2; 
0 

trueまたはfalseと判断されるものは、c omplicated。私はちょうどdocumentation引用します:

がブール値にSQL式の結果を変換するには、SQLiteの は最初CAST の式と同じように数値に結果をキャスト。 NULLまたはゼロ値(整数値0または実数値0.0) はfalseとみなされます。その他の値はすべて真と見なされます。

たとえば、値NULL、0.0、0、 '英語'および '0'はすべて がfalseとみなされます。値1、1.0、0.1、-0.1および '1english'は、 が真とみなされます。

関連する問題