私が見たすべてのSQL方言は、テーブルを定義するときにサポートするいくつかのデータ型の整数引数を指定することを許可するか、または要求するために使用されます。しかし、私は、これらの数値が意味するものと、それらを適切に選択する方法についての包括的な情報(少なくともMySQLとSQLiteの場合)を見つけることはできませんでした...SQL DDL型パラメータの選択方法は?
答えて
INT(11) VARCHAR(255)の場合、通常、テーブルから格納された(または取得された)値の長さです。
http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html
「M」は、それをサポートするすべてのタイプの名前の後の括弧内にあります。
また、これらの数値は、保存期間と選択期間の両方に影響する可能性があることに注意してください。たとえば、列をVARCHAR(100)として定義すると、各値に予約されている実際の領域は255になります。ただし、SELECTで取得する値は100文字にトリムされます。また、VARCHAR(256)を定義すると、正しく覚えていれば最大65535文字を予約します。
INT(5)と同じです。それでも、2147483647(符号付き整数の最大値)までの値を格納するための領域を予約しますが、入力/出力を5桁にトリムします。
私はそれが値の長さであることを知っていますが、私はそれがいかに驚異的に測定されているかについてはわかりませんでした。私はそれがバイトまたはINTのための特別な単位であると仮定していました。私はそれを制約したくないので、-2147483648から2147483647までの標準整数を格納し、可能な限りテーブル定義(異なるDBMSに同じ型宣言を使用する)を統一するだけです。 MySQL、SQLite3、MS SQL ServerにINTまたはINTEGERを使用することはできますか?それとも長さを指定する必要がありますか? – Ivan
とにかく、クロスDBMS DDLの作成はあまり良い考えではないと思います。あなたは間違いなく間違いに遭遇します。異なるSQL実装に異なるタイプを使用することさえしたい場合もあります。クロスDBMSデータベース配備ツールを作成したい場合は、そのためのユーティリティを作成する必要があります。それぞれのタイプを個別に調べて、現在作業しているDBMSのタイプに使用するコードを決める。 –
しかし、整数についてはどうですか? 'INT'はMySQL、SQLite3、MS SQL Serverで同じことを意味すると思いますが、'(11) 'を省略するとデータが失われることはありませんか? – Ivan
- 1. コンストラクタ/パラメータ注入の選択方法は?
- 2. SQL Liteのアイテムの選択方法は?
- 3. jmh設定パラメータの選択方法
- 4. linqからsqlへのカスタム選択パラメータ
- 5. データ選択時のSQL Serverストアドプロシージャdatetimeパラメータ
- 6. 型パラメータの問題:「パラメータ化された型から選択できません」
- 7. 前のパラメータの選択に基づいてSSRSでパラメータの値を選択する方法は?
- 8. レポートビルダのパラメータを使用して列を選択する方法
- 9. Revitですべてのパラメータを選択する方法は?
- 10. SSRSですべてのパラメータ値を選択する方法は?
- 11. MSSQLとSQLのデータ型の選択肢はありますか?
- 12. oracle sqlでuser_tab_columnsを選択して列を選択する方法は?
- 13. SQL文で選択されていないレコードを選択する方法は?
- 14. SQL DDLからエンティティリレーションシップダイアグラムを生成する方法は?
- 15. sqlは2つのパラメータで別個に選択します
- 16. データセット内の列のデータ型を選択する方法
- 17. SqlDataSourceコントロール:選択のパラメータ()
- 18. C#SQL ServerでSQLパラメータを使用して選択する
- 19. プライマリキーの選択方法は?
- 20. UITextFieldの選択方法は?
- 21. コンストラクタテンプレートの選択方法は?
- 22. MVC3 DDLのような自動ポストバックの選択
- 23. サーバントAPI型レベルルーティング(typeclasses) - 選択するインスタンスを選択する方法(:<|>)?
- 24. SQLトレースのようにストアドプロシージャ内のすべての渡されたパラメータ値をSQLで選択する方法
- 25. LINQ - 型引数は、選択
- 26. CListCtrl - 選択方法の選択
- 27. Pythonのパラメータ型に基づいて関数を選択する
- 28. SQLで一意のサブシーケンスを選択する方法は?
- 29. SQLで2つのテーブルを選択する方法は?
- 30. アクティブな選択パラメータ
例を挙げることができますか? –
INTEGER(11)。 Navicat(GUI DBツール)を使用してMySQLからデータベースをコピーしたところ、INTEGER(11)として定義された整数列を持つ新しいSQLiteデータベースが得られました。どうして?なぜINTEGERだけではないのですか? – Ivan
DBMSに依存しない(制御可能な)方法でスキーマ定義を管理するには、Liquibaseを調べるとよいでしょう。 –