「バックエンド ネットワーク MySQL データベース ビデオ チュートリアル」では、データベースの概念と、追加、削除、変更、チェックなど、データベースで一般的に使用されるいくつかの基本的な内容を紹介します。また、データベースのセキュリティに関する知識も含まれています。注射など
コース再生アドレス: http://www.php.cn/course/427.html
先生の教え方:
先生の講義はシンプルで奥深く、わかりやすいです論理的思考力を使用して生徒の注意を引き、理性を使用して教室での指導プロセスを制御することで、層ごとに連動し、厳密な議論と厳密な構造を組織化して分析します。先生の講義を聞くことで、学生は知識を学ぶだけでなく、思考力の訓練も受け、先生の厳格な学問的姿勢に影響を受け、影響を受けます
このビデオでより難しい部分は、データ型の定義と選択です。 :
1. 数値型:
Mysql は、厳密なデータ型 (INTEGER、SMALLINT、DECIMAL、NUMBERIC) および近似数値データ型 (FLOAT、REAL、DOUBLE PRESISION) を含む、標準 SQL のすべての数値型をサポートします。この拡張機能で。拡張後、長さの異なる3つの整数TINYINT、MEDIUMINT、BIGINTが追加され、ビットデータを格納するBIT型が追加されました。
INT 型:
MySQL でサポートされる 5 つの主な整数型は、TINYINT、SMALLINT、MEDIUMINT、INT、および BIGINT です。これらの型はほとんど同じですが、格納される値のサイズが異なるだけです。
MySQL は、オプションの表示幅インジケーターの形式で SQL 標準を拡張し、データベースから値を取得するときに、値を指定された長さまで延長できるようにします。たとえば、フィールドのタイプが INT(6) であると指定すると、データベースから取得するときに 6 桁未満の値が自動的にスペースで埋められます。幅インジケーターを使用しても、フィールドのサイズや格納できる値の範囲には影響しないことに注意してください。許可範囲外の数値をフィールドに保存する必要がある場合、MySQL は、その数値を保存する前に、その数値に最も近い許可範囲の終わりに従ってその数値を切り捨てます。もう 1 つの特別な点は、MySQL が不正な値をテーブルに挿入する前に自動的に 0 に変更することです。
UNSIGNED 修飾子は、フィールドが正の値のみを保持することを指定します。数値の正負の符号を保存する必要がないため、保存時に 1 ビットのスペースを節約できます。これにより、このフィールドに保存できる値の範囲が広がります。 ZEROFILL 修飾子は、出力値を補完するために 0 (スペースではない) を使用できることを指定します。この修飾子を使用して、MySQL データベースに負の値が格納されないようにします。
FLOAT、DOUBLE、および DECIMAL 型:
MySQL でサポートされる 3 つの浮動小数点型は、FLOAT、DOUBLE、および DECIMAL 型です。 FLOAT 数値型は単精度浮動小数点値を表すために使用され、DOUBLE 数値型は倍精度浮動小数点値を表すために使用されます。整数と同様に、これらの型には追加パラメータ (表示幅インジケーターと小数点インジケーター) が必要です。たとえば、ステートメント FLOAT(7,3) は、表示される値が 7 桁 (小数点以下 3 桁) を超えないことを指定します。
小数点以下の桁数が許容範囲を超える値の場合、MySQL は自動的に最も近い値に丸めて挿入します。 DECIMAL データ型は、非常に高い精度が必要な計算に使用され、数値の精度とカウント方法を選択パラメータとして指定できます。ここでの精度は、値に対して保存された有効桁数の合計を指しますが、カウント方法は小数点以下の桁数を示します。たとえば、ステートメント DECIMAL(7,3) は、格納される値が 7 桁を超えず、小数点以下 3 桁を超えないことを指定します。
DECIMAL データ型の精度とカウント方法の修飾子を省略すると、MySQL データベースは、このデータ型として識別されるすべてのフィールドの精度を 10 に設定し、カウント方法を 0 に設定します。 UNSIGNED および ZEROFILL 修飾子は、FLOAT、DOUBLE、および DECIMAL データ型でも使用できます。効果は INT データ型と同じです。
1. CHAR 型と VARCHAR 型:
CHAR 型は固定長文字列に使用され、括弧内にサイズ修飾子を付けて定義する必要があります。このサイズ修飾子の範囲は 0 ~ 255 です。指定した長さより大きい値は切り捨てられ、指定した長さより小さい値はスペースで埋められます。
CHAR型はBINARY修飾子を使用できます。この修飾子を比較演算で使用すると、CHAR は従来の大文字と小文字を区別する方法ではなく、バイナリ形式で演算に参加します。
CHAR 型の変形として VARCHAR 型があります。これは可変長の文字列型であり、0 ~ 255 の範囲のインジケーターも必要です。 CHAR と VARCHGAR の違いは、MYSQL データベースがこのインジケーターを処理する方法です。CHAR はこのサイズを値のサイズとして扱い、長さが不十分でない場合はスペースを埋め込みます。一方、VARCHAR 型はこれを最大値として扱い、文字列を格納するために実際に必要な長さ (さらに、文字列自体の長さを格納するための 1 バイトを追加) を使用して値のみを格納します。したがって、インジケーターの長さより短い VARCHAR 型はスペースで埋められませんが、インジケーターより長い値は切り捨てられます。 VARCHAR 型は実際の内容に基づいて格納される値の長さを動的に変更できるため、フィールドに必要な文字数が不明な場合に VARCHAR 型を使用すると、ディスク領域を大幅に節約し、格納効率を向上させることができます。 VARCHAR 型は、BINARY 修飾子を使用する場合の CHAR 型と同じです。
2. TEXT タイプと BLOB タイプ:
フィールドの長さの要件が 255 を超える場合、MySQL は TEXT と BLOB の 2 つのタイプを提供します。これらはすべて、保存されたデータのサイズに基づいて異なるサブタイプを持ちます。これらの大きなデータは、テキスト ブロックや、画像やサウンド ファイルなどのバイナリ データ タイプを保存するために使用されます。 TEXT 型と BLOB 型の間では、分類と比較に違いがあります。 BLOB 型では大文字と小文字が区別されますが、TEXT では大文字と小文字が区別されません。サイズ修飾子は、さまざまな BLOB および TEXT サブタイプでは使用されません。指定された型でサポートされる最大範囲を超える値は自動的に切り捨てられます。
3. 日付と時刻の型:
日付と時刻の型の値を扱う場合、MySQL には 5 つの異なるデータ型から選択できます。これらは、単純な日付と時刻のタイプと、日付と時刻の混合タイプに分類できます。必要な精度に応じて、各サブタイプ内でサブタイプを使用できます。MySQL には、さまざまな入力形式を標準形式に変換する機能が組み込まれています。
1. DATE、TIME、および TEAR タイプ:
MySQL は、単純な日付値を格納するために DATE および TEAR タイプを使用し、時間値を格納するために TIME タイプを使用します。これらの型は、区切り文字のない文字列または整数のシーケンスとして記述することができます。文字列として記述する場合、DATE 型の値は区切り文字としてハイフンで区切る必要があり、TIME 型の値は区切り文字としてコロンで区切る必要があります。
コロン区切り文字のない TIME 型の値は、MySQL によってタイムスタンプではなく期間として認識されることに注意してください。
MySQL は、日付の年の 2 桁の値、または SQL ステートメントの TEAR 型に入力された 2 桁の値の最大解釈も実行します。すべての TEAR タイプの値は 4 つの数字で保存する必要があるためです。 MySQL は、2 桁の年を 4 桁の値に変換しようとします。 00 ~ 69 の範囲の値を 2000 ~ 2069 の範囲に変換します。 70 ~ 99 の範囲の値を 1970 ~ 1979 に変換します。 MySQL によって自動的に変換された値がニーズを満たさない場合は、4 桁の年を入力します。
2. DATEYIME および TIMESTAMP タイプ:
日付と時刻のデータ型に加えて、MySQL は DATEYIME と TIMESTAMP という 2 つの混合タイプもサポートします。日付と時刻を単一の値として保存できます。どちらのタイプも、現在の日付と時刻を含むタイムスタンプを自動的に保存するために一般的に使用され、大量のデータベース トランザクションを実行する必要があり、デバッグやレビューの目的で監査証跡を確立する必要があるアプリケーションでうまく機能します。 TIMESTAMP 型のフィールドに明示的に値を割り当てていないか、null 値が割り当てられている場合。 MySQL は、システムの現在の日付と時刻を自動的に設定します。
3. 複合タイプ:
MySQL は、SQL 仕様を拡張する 2 つの複合データ タイプ、ENUM と SET もサポートします。これらの型は技術的には文字列型ですが、異なるデータ型として扱うことができます。 ENUM タイプではコレクションから 1 つの値のみを取得できますが、SET タイプではコレクションから任意の数の値を取得できます。
4. ENUM タイプ:
ENUM タイプでは、セット内で 1 つの値のみを取得できます。これは、単一のオプションに似ています。人間の性別など、相互に排他的なデータを扱う場合に理解しやすくなります。 ENUM タイプのフィールドは、コレクションから値を取得することも、null 値を使用することもできます。それ以外の場合は、入力により MySQL によってフィールドに空の文字列が挿入されます。さらに、挿入された値の大文字と小文字がコレクション内の値の大文字と小文字が一致しない場合、MySQL は挿入された値の大文字と小文字を自動的に使用して、コレクションの大文字と小文字が一致する値に変換します。
ENUM タイプはシステム内部に数値として保存でき、1 から始まる数値でインデックスが付けられます。 ENUM タイプには最大 65536 個の要素を含めることができ、そのうちの 1 つはエラー情報を保存するために MySQL によって予約されており、このエラー値はインデックス 0 または空の文字列で表されます。 MySQL は、ENUM 型コレクションに表示される値を正当な入力であると見なし、その他の入力は失敗します。これは、空の文字列または対応する数値インデックス 0 を含む行を検索することで、エラーのあるレコードの場所を簡単に見つけることができることを示しています。
5.セットタイプ:
SET タイプは ENUM タイプと似ていますが、同じではありません。 SET タイプは、事前定義されたコレクションから任意の数の値を取得できます。また、ENUM タイプと同様に、SET タイプのフィールドに事前定義されていない値を挿入しようとすると、MySQL は空の文字列を挿入します。正当な要素と違法な要素の両方を含むレコードを挿入すると、MySQL は正当な要素を保持し、違法な要素を削除します。
SET タイプには最大 64 個の要素を含めることができます。 SET 要素では、値は、対応する要素を表す「ビット」の離散シーケンスとして格納されます。ビットは、要素の順序付けられたコレクションを作成するためのシンプルかつ効率的な方法です。また、重複した要素も削除されるため、SET 型に 2 つの同一の要素を含めることはできません。 SET タイプのフィールドから不正なレコードを見つけるには、空の文字列またはバイナリ値 0 を含む行を探すだけです。
各データ型の目的、物理ストレージ、表現範囲などの概要を理解することによって。このようにして、特定のアプリケーションに直面する場合、対応する特性に応じて適切なデータ型を選択できるため、アプリケーションを満たすことに基づいて、より少ないストレージコストでより高いデータベースパフォーマンスを達成するよう努めることができます。
以上がBackend.com MySQL データベース ビデオ チュートリアル リソースの推奨事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。