web-dev-qa-db-ja.com

SQLite3整数の最大値

  1. sqlite3のINTEGERデータ型の最大値は何ですか?
  2. データベースにIPアドレスをどのように保存しますか?
  3. 何が添付されていますか?
  4. SQL DDLを使用して特定のデータベースに属するテーブルを作成する方法は?
  5. このエラーは何についてですか?

システムカタログのリスト中にエラーが発生しました:そのようなテーブルはありません:temp.sqlite_masterステートメントを実行できません

  1. Sqlite3テキストデータ型はUnicodeをサポートしていますか?ありがとう。
46
nicholas
  1. http://www.sqlite.org/datatype3.html を見てください最小値は-(263)== -9223372036854775808、最大値は263 -1 == 9223372036854775807
  2. 私はあなたがvarcharを使うべきだと思うでしょう
  3. http://www.sqlite.org/lang_attach.html
  4. http://www.sqlite.org/lang_createtable.html
  5. 助けになるかもしれません SQLite 'no such table'エラー

一般的には、 sqliteのドキュメントを確認してください

84

整数。値は符号付き整数で、値の大きさに応じて1、2、3、4、6、または8バイトで保存されます。

たとえば、INTEGERストレージクラスには、長さの異なる6つの異なる整数データ型が含まれます。これにより、ディスク上で違いが生じます。ただし、INTEGER値がディスクからメモリに読み込まれて処理されるとすぐに、最も一般的なデータ型(8バイトの符号付き整数)に変換されます。

from http://www.sqlite.org/datatype3.html

他の理由がない限り、TEXTを使用してIPアドレスを保存できます。

6
dheerosaur

2番目の質問について:

2つの方法でDBにIPアドレスを保存できます。

  1. 文字列として。これは、IPv4とIPv6の両方をサポートし、IPアドレス変換の追加の手間を必要としないため、推奨されます。
  2. 整数として。 IPは基本的に4バイトで、すべて1つの整数値にマージできます。ただし、本当に必要ですか?これにより、必要なときにいつでも文字列に変換したり、文字列から変換したりするのに苦労します。
3
bezmax

Sqlite3テキストデータ型はUnicodeをサポートしていますか?

はいといいえ。

はい、SQLiteではTEXTデータをUTF-8またはUTF-16で保存できます。 ( PRAGMA ENCODING を使用して、内部形式を選択します。)

いいえ、組み込みのLOWERおよびUPPER関数はASCII文字にのみ影響します。ただし、 関数の再定義 および- collat​​ions このサポートを追加するには、これを行うSQLiteに ICU拡張 があります。

2
dan04
  • データベースにIPアドレスをどのように保存しますか?

最も簡単な方法は、文字列形式(たとえば、「127.0.0.1」または「::1”)それから、それらを手動で読むことができ、アドレス構造への再解析(必要な場合)は簡単です。 SQLiteは文字列(TEXTタイプを使用)を好み、それらを効率的に処理します。

2
Donal Fellows