私はSQLiteの世界で始めて、フィールド定義を見ています SQLiteのフィールドにはVarchar
/Char
とtext
フィールドの間に違いはないように思えますか?また、フィールドの長さの設定に影響はありますか?SQLiteのフィールド定義
CompanyName varchar (40) NOT NULL ,
そして最後に、私はデフォルトとして1
またはTrue
を使用するブール型のフィールドにデフォルト値を与えるとしたら?
私はSQLiteの世界で始めて、フィールド定義を見ています SQLiteのフィールドにはVarchar
/Char
とtext
フィールドの間に違いはないように思えますか?また、フィールドの長さの設定に影響はありますか?SQLiteのフィールド定義
CompanyName varchar (40) NOT NULL ,
そして最後に、私はデフォルトとして1
またはTrue
を使用するブール型のフィールドにデフォルト値を与えるとしたら?
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'は、 が真とみなされます。